From: Ben Bass Date: Sat, 17 May 2014 22:15:51 +0000 (+0100) Subject: Factor out HTTPAdapter.proxy_manager_for for #2048 X-Git-Tag: v2.4.0~34^2~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f97e78726e7efe64b9a3db27707ec579e859ef06;p=services%2Fpython-requests.git Factor out HTTPAdapter.proxy_manager_for for #2048 --- diff --git a/requests/adapters.py b/requests/adapters.py index eb7a2d2..6b8f4d3 100644 --- a/requests/adapters.py +++ b/requests/adapters.py @@ -118,6 +118,24 @@ class HTTPAdapter(BaseAdapter): self.poolmanager = PoolManager(num_pools=connections, maxsize=maxsize, block=block) + def proxy_manager_for(self, proxy): + """Return urllib3 ProxyManager for the given proxy. This method should + not be called from user code, and is only exposed for use when + subclassing the :class:`HTTPAdapter `. + + :param proxy: The proxy to return a urllib3 ProxyManager for. + """ + if not proxy in self.proxy_manager: + proxy_headers = self.proxy_headers(proxy) + self.proxy_manager[proxy] = proxy_from_url( + proxy, + proxy_headers=proxy_headers, + num_pools=self._pool_connections, + maxsize=self._pool_maxsize, + block=self._pool_block) + + return self.proxy_manager[proxy] + def cert_verify(self, conn, url, verify, cert): """Verify a SSL certificate. This method should not be called from user code, and is only exposed for use when subclassing the @@ -204,17 +222,8 @@ class HTTPAdapter(BaseAdapter): if proxy: proxy = prepend_scheme_if_needed(proxy, 'http') - proxy_headers = self.proxy_headers(proxy) - - if not proxy in self.proxy_manager: - self.proxy_manager[proxy] = proxy_from_url( - proxy, - proxy_headers=proxy_headers, - num_pools=self._pool_connections, - maxsize=self._pool_maxsize, - block=self._pool_block) - - conn = self.proxy_manager[proxy].connection_from_url(url) + proxy_manager = self.proxy_manager_for(proxy) + conn = proxy_manager.connection_from_url(url) else: # Only scheme should be lower case parsed = urlparse(url)