More public API tightening (#1065)

This commit is contained in:
Tom Christie 2020-07-17 11:19:24 +01:00 committed by GitHub
parent e107e0f842
commit a89d4ad625
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 36 additions and 36 deletions

View File

@ -82,7 +82,7 @@ class BaseClient:
self.trust_env = trust_env
self.netrc = NetRCInfo()
def get_proxy_map(
def _get_proxy_map(
self, proxies: typing.Optional[ProxiesTypes], trust_env: bool,
) -> typing.Dict[str, Proxy]:
if proxies is None:
@ -454,9 +454,9 @@ class Client(BaseClient):
trust_env=trust_env,
)
proxy_map = self.get_proxy_map(proxies, trust_env)
proxy_map = self._get_proxy_map(proxies, trust_env)
self.transport = self.init_transport(
self._transport = self._init_transport(
verify=verify,
cert=cert,
http2=http2,
@ -465,8 +465,8 @@ class Client(BaseClient):
app=app,
trust_env=trust_env,
)
self.proxies: typing.Dict[str, httpcore.SyncHTTPTransport] = {
key: self.init_proxy_transport(
self._proxies: typing.Dict[str, httpcore.SyncHTTPTransport] = {
key: self._init_proxy_transport(
proxy,
verify=verify,
cert=cert,
@ -477,7 +477,7 @@ class Client(BaseClient):
for key, proxy in proxy_map.items()
}
def init_transport(
def _init_transport(
self,
verify: VerifyTypes = True,
cert: CertTypes = None,
@ -505,7 +505,7 @@ class Client(BaseClient):
http2=http2,
)
def init_proxy_transport(
def _init_proxy_transport(
self,
proxy: Proxy,
verify: VerifyTypes = True,
@ -529,12 +529,12 @@ class Client(BaseClient):
http2=http2,
)
def transport_for_url(self, url: URL) -> httpcore.SyncHTTPTransport:
def _transport_for_url(self, url: URL) -> httpcore.SyncHTTPTransport:
"""
Returns the transport instance that should be used for a given URL.
This will either be the standard connection pool, or a proxy.
"""
if self.proxies and not should_not_be_proxied(url):
if self._proxies and not should_not_be_proxied(url):
is_default_port = (url.scheme == "http" and url.port == 80) or (
url.scheme == "https" and url.port == 443
)
@ -548,11 +548,11 @@ class Client(BaseClient):
"all",
)
for proxy_key in proxy_keys:
if proxy_key and proxy_key in self.proxies:
transport = self.proxies[proxy_key]
if proxy_key and proxy_key in self._proxies:
transport = self._proxies[proxy_key]
return transport
return self.transport
return self._transport
def request(
self,
@ -684,7 +684,7 @@ class Client(BaseClient):
Sends a single request, without handling any redirections.
"""
transport = self.transport_for_url(request.url)
transport = self._transport_for_url(request.url)
try:
with map_exceptions(HTTPCORE_EXC_MAP):
@ -897,8 +897,8 @@ class Client(BaseClient):
)
def close(self) -> None:
self.transport.close()
for proxy in self.proxies.values():
self._transport.close()
for proxy in self._proxies.values():
proxy.close()
def __enter__(self) -> "Client":
@ -992,9 +992,9 @@ class AsyncClient(BaseClient):
trust_env=trust_env,
)
proxy_map = self.get_proxy_map(proxies, trust_env)
proxy_map = self._get_proxy_map(proxies, trust_env)
self.transport = self.init_transport(
self._transport = self._init_transport(
verify=verify,
cert=cert,
http2=http2,
@ -1003,8 +1003,8 @@ class AsyncClient(BaseClient):
app=app,
trust_env=trust_env,
)
self.proxies: typing.Dict[str, httpcore.AsyncHTTPTransport] = {
key: self.init_proxy_transport(
self._proxies: typing.Dict[str, httpcore.AsyncHTTPTransport] = {
key: self._init_proxy_transport(
proxy,
verify=verify,
cert=cert,
@ -1015,7 +1015,7 @@ class AsyncClient(BaseClient):
for key, proxy in proxy_map.items()
}
def init_transport(
def _init_transport(
self,
verify: VerifyTypes = True,
cert: CertTypes = None,
@ -1043,7 +1043,7 @@ class AsyncClient(BaseClient):
http2=http2,
)
def init_proxy_transport(
def _init_proxy_transport(
self,
proxy: Proxy,
verify: VerifyTypes = True,
@ -1067,12 +1067,12 @@ class AsyncClient(BaseClient):
http2=http2,
)
def transport_for_url(self, url: URL) -> httpcore.AsyncHTTPTransport:
def _transport_for_url(self, url: URL) -> httpcore.AsyncHTTPTransport:
"""
Returns the transport instance that should be used for a given URL.
This will either be the standard connection pool, or a proxy.
"""
if self.proxies and not should_not_be_proxied(url):
if self._proxies and not should_not_be_proxied(url):
is_default_port = (url.scheme == "http" and url.port == 80) or (
url.scheme == "https" and url.port == 443
)
@ -1086,11 +1086,11 @@ class AsyncClient(BaseClient):
"all",
)
for proxy_key in proxy_keys:
if proxy_key and proxy_key in self.proxies:
transport = self.proxies[proxy_key]
if proxy_key and proxy_key in self._proxies:
transport = self._proxies[proxy_key]
return transport
return self.transport
return self._transport
async def request(
self,
@ -1225,7 +1225,7 @@ class AsyncClient(BaseClient):
Sends a single request, without handling any redirections.
"""
transport = self.transport_for_url(request.url)
transport = self._transport_for_url(request.url)
try:
with map_exceptions(HTTPCORE_EXC_MAP):
@ -1438,8 +1438,8 @@ class AsyncClient(BaseClient):
)
async def aclose(self) -> None:
await self.transport.aclose()
for proxy in self.proxies.values():
await self._transport.aclose()
for proxy in self._proxies.values():
await proxy.aclose()
async def __aenter__(self) -> "AsyncClient":

View File

@ -24,12 +24,12 @@ def test_proxies_parameter(proxies, expected_proxies):
client = httpx.AsyncClient(proxies=proxies)
for proxy_key, url in expected_proxies:
assert proxy_key in client.proxies
proxy = client.proxies[proxy_key]
assert proxy_key in client._proxies
proxy = client._proxies[proxy_key]
assert isinstance(proxy, httpcore.AsyncHTTPProxy)
assert proxy.proxy_origin == httpx.URL(url).raw[:3]
assert len(expected_proxies) == len(client.proxies)
assert len(expected_proxies) == len(client._proxies)
PROXY_URL = "http://[::1]"
@ -79,10 +79,10 @@ PROXY_URL = "http://[::1]"
)
def test_transport_for_request(url, proxies, expected):
client = httpx.AsyncClient(proxies=proxies)
transport = client.transport_for_url(httpx.URL(url))
transport = client._transport_for_url(httpx.URL(url))
if expected is None:
assert transport is client.transport
assert transport is client._transport
else:
assert isinstance(transport, httpcore.AsyncHTTPProxy)
assert transport.proxy_origin == httpx.URL(expected).raw[:3]
@ -126,9 +126,9 @@ def test_proxies_environ(monkeypatch, client_class, url, env, expected):
monkeypatch.setenv(name, value)
client = client_class()
transport = client.transport_for_url(httpx.URL(url))
transport = client._transport_for_url(httpx.URL(url))
if expected is None:
assert transport == client.transport
assert transport == client._transport
else:
assert transport.proxy_origin == httpx.URL(expected).raw[:3]