Setting app=... or transport=... should bypass environment proxies. (#1122)

* Setting app= or transport= should bypass proxies

* Tweak
This commit is contained in:
Tom Christie 2020-08-02 12:42:36 +01:00 committed by GitHub
parent e5f87434a5
commit 0e7730bccc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -89,10 +89,10 @@ class BaseClient:
return self._trust_env
def _get_proxy_map(
self, proxies: typing.Optional[ProxiesTypes], trust_env: bool,
self, proxies: typing.Optional[ProxiesTypes], allow_env_proxies: bool,
) -> typing.Dict[str, typing.Optional[Proxy]]:
if proxies is None:
if trust_env:
if allow_env_proxies:
return {
key: None if url is None else Proxy(url=url)
for key, url in get_environment_proxies().items()
@ -473,7 +473,8 @@ class Client(BaseClient):
)
limits = pool_limits
proxy_map = self._get_proxy_map(proxies, trust_env)
allow_env_proxies = trust_env and app is None and transport is None
proxy_map = self._get_proxy_map(proxies, allow_env_proxies)
self._transport = self._init_transport(
verify=verify,
@ -1003,7 +1004,8 @@ class AsyncClient(BaseClient):
)
limits = pool_limits
proxy_map = self._get_proxy_map(proxies, trust_env)
allow_env_proxies = trust_env and app is None and transport is None
proxy_map = self._get_proxy_map(proxies, allow_env_proxies)
self._transport = self._init_transport(
verify=verify,