From: Tom Christie Date: Sun, 2 Aug 2020 11:42:36 +0000 (+0100) Subject: Setting `app=...` or `transport=...` should bypass environment proxies. (#1122) X-Git-Tag: 0.14.0~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0e7730bcccf51a6ca5b66d2dc6cab40f2a1660a3;p=thirdparty%2Fhttpx.git Setting `app=...` or `transport=...` should bypass environment proxies. (#1122) * Setting app= or transport= should bypass proxies * Tweak --- diff --git a/httpx/_client.py b/httpx/_client.py index 4110fd7d..e4b212b4 100644 --- a/httpx/_client.py +++ b/httpx/_client.py @@ -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,