Skip to content

Commit 9a8bf21

Browse files
authored
refactor, move http requester to private helpers (#18970)
1 parent 1579c25 commit 9a8bf21

File tree

8 files changed

+21
-23
lines changed

8 files changed

+21
-23
lines changed

conan/api/conan_api.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
from conan.internal.paths import get_conan_user_home
2929
from conan.internal.api.migrations import ClientMigrator
3030
from conan.internal.model.version_range import validate_conan_version
31+
from conan.internal.rest.conan_requester import ConanRequester
3132

3233

3334
class ConanAPI:
@@ -94,7 +95,6 @@ def reinit(self):
9495
Reinitialize the Conan API. This is useful when the configuration changes.
9596
"""
9697
self._api_helpers.reinit()
97-
self.remotes.reinit()
9898
self.local.reinit()
9999

100100
def migrate(self):
@@ -110,6 +110,8 @@ def __init__(self, conan_api):
110110
self._cli_core_confs = None
111111
self._init_global_conf()
112112
self.hook_manager = HookManager(HomePaths(self._conan_api.home_folder).hooks_path)
113+
# Wraps an http_requester to inject proxies, certs, etc
114+
self._requester = ConanRequester(self.global_conf, self._conan_api.home_folder)
113115

114116
def set_core_confs(self, core_confs):
115117
confs = ConfDefinition()
@@ -134,7 +136,13 @@ def _init_global_conf(self):
134136
def reinit(self):
135137
self._init_global_conf()
136138
self.hook_manager.reinit()
139+
self._requester = ConanRequester(self.global_conf, self._conan_api.home_folder)
137140

138141
@property
139142
def settings_yml(self):
140143
return load_settings_yml(self._conan_api.home_folder)
144+
145+
@property
146+
def requester(self):
147+
return self._requester
148+

conan/api/subapi/config.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def install(self, path_or_url, verify_ssl, config_type=None, args=None,
4242
"""
4343
from conan.internal.api.config.config_installer import configuration_install
4444
cache_folder = self._conan_api.cache_folder
45-
requester = self._conan_api.remotes.requester
45+
requester = self._helpers.requester
4646
configuration_install(cache_folder, requester, path_or_url, verify_ssl,
4747
config_type=config_type, args=args,
4848
source_folder=source_folder, target_folder=target_folder)
@@ -103,7 +103,7 @@ def install_pkg(self, ref, lockfile=None, force=False, remotes=None,
103103

104104
from conan.internal.api.config.config_installer import configuration_install
105105
cache_folder = self._conan_api.cache_folder
106-
requester = self._conan_api.remotes.requester
106+
requester = self._helpers.requester
107107
configuration_install(cache_folder, requester, uri=pkg.conanfile.package_folder,
108108
verify_ssl=False, config_type="dir",
109109
ignore=["conaninfo.txt", "conanmanifest.txt"])

conan/api/subapi/remotes.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
from conan.api.output import ConanOutput
99
from conan.internal.cache.home_paths import HomePaths
1010
from conan.internal.conan_app import ConanBasicApp
11-
from conan.internal.rest.conan_requester import ConanRequester
1211
from conan.internal.rest.remote_credentials import RemoteCredentials
1312
from conan.internal.rest.rest_client_local_recipe_index import add_local_recipes_index_remote, \
1413
remove_local_recipes_index_remote
@@ -35,11 +34,6 @@ def __init__(self, conan_api, api_helpers):
3534
self._api_helpers = api_helpers
3635
self._home_folder = conan_api.home_folder
3736
self._remotes_file = HomePaths(self._home_folder).remotes_path
38-
# Wraps an http_requester to inject proxies, certs, etc
39-
self._requester = ConanRequester(api_helpers.global_conf, self._home_folder)
40-
41-
def reinit(self):
42-
self._requester = ConanRequester(self._api_helpers.global_conf, self._home_folder)
4337

4438
def list(self, pattern=None, only_enabled=True):
4539
"""
@@ -282,10 +276,6 @@ def user_auth(self, remote: Remote, with_user=False, force=False):
282276
user, token, _ = localdb.get_login(remote.url)
283277
return user
284278

285-
@property
286-
def requester(self):
287-
return self._requester
288-
289279

290280
def _load(remotes_file):
291281
if not os.path.exists(remotes_file):

conan/api/subapi/upload.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ def upload_backup_sources(self, files):
155155
output.info("No backup sources files to upload")
156156
return
157157

158-
requester = self._conan_api.remotes.requester
158+
requester = self._api_helpers.requester
159159
uploader = FileUploader(requester, verify=True, config=config, source_credentials=True)
160160
# TODO: For Artifactory, we can list all files once and check from there instead
161161
# of 1 request per file, but this is more general

conan/internal/api/audit/providers.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def __init__(self, conan_api, name, provider_data):
1616
self.url = provider_data["url"]
1717
self.type = provider_data["type"]
1818
self._token = provider_data.get("token")
19-
self._session = conan_api.remotes.requester
19+
self._session = conan_api._api_helpers.requester # noqa
2020
self._query_url = urljoin(self.url, "api/v1/query")
2121

2222
def get_cves(self, refs):
@@ -111,7 +111,7 @@ def __init__(self, conan_api, name, provider_data):
111111
self.url = provider_data["url"]
112112
self.type = provider_data["type"]
113113
self._token = provider_data.get("token")
114-
self._session = conan_api.remotes.requester
114+
self._session = conan_api._api_helpers.requester # noqa
115115
self._query_url = urljoin(self.url, "catalog/api/v0/public/graphql")
116116

117117
def get_cves(self, refs):

conan/internal/conan_app.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ def __init__(self, conan_api):
5151
self.cache = PkgCache(self.cache_folder, global_conf)
5252
# Wraps RestApiClient to add authentication support (same interface)
5353
localdb = LocalDB(cache_folder)
54-
auth_manager = ConanApiAuthManager(conan_api.remotes.requester, cache_folder, localdb,
55-
global_conf)
54+
requester = conan_api._api_helpers.requester # noqa
55+
auth_manager = ConanApiAuthManager(requester, cache_folder, localdb, global_conf)
5656
# Handle remote connections
5757
self.remote_manager = RemoteManager(self.cache, auth_manager, cache_folder)
5858
global_editables = conan_api.local.editable_packages
@@ -72,8 +72,8 @@ def __init__(self, conan_api):
7272

7373
self.pyreq_loader = PyRequireLoader(self, self._global_conf)
7474
cmd_wrap = CmdWrapper(HomePaths(self.cache_folder).wrapper_path)
75-
conanfile_helpers = ConanFileHelpers(conan_api.remotes.requester, cmd_wrap,
76-
self._global_conf, self.cache, self.cache_folder)
75+
requester = conan_api._api_helpers.requester # noqa
76+
conanfile_helpers = ConanFileHelpers(requester, cmd_wrap, self._global_conf, self.cache, self.cache_folder)
7777
self.loader = ConanFileLoader(self.pyreq_loader, conanfile_helpers)
7878

7979

test/integration/command/test_audit.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656

5757
@contextmanager
5858
def proxy_response(status, data, retry_after=60):
59-
with patch("conan.api.conan_api.RemotesAPI.requester") as conanRequesterMock:
59+
with patch("conan.api.conan_api.ConanAPI._ApiHelpers.requester") as conanRequesterMock:
6060
return_status = MagicMock()
6161
return_status.status_code = status
6262
return_status.json = MagicMock(return_value=data)
@@ -350,7 +350,7 @@ def fake_post(url, headers, json): # noqa
350350
return response
351351

352352
with environment_update({"CONAN_AUDIT_PROVIDER_TOKEN_CONANCENTER": "env_token_value"}):
353-
with patch("conan.api.conan_api.RemotesAPI.requester",
353+
with patch("conan.api.conan_api.ConanAPI._ApiHelpers.requester",
354354
new_callable=MagicMock) as requester_mock:
355355
requester_mock.post = fake_post
356356
tc.run("audit list zlib/1.2.11")

test/unittests/client/rest/requester_test.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@ def test_requester_reinit():
1414
conan_api = ConanAPI(tmp_folder)
1515
save(os.path.join(home_path.global_conf_path), "core.net.http:timeout=(10, 20)")
1616
conan_api.reinit()
17-
assert conan_api.remotes.requester._timeout == (10, 20)
17+
assert conan_api._api_helpers.requester._timeout == (10, 20)

0 commit comments

Comments
 (0)