improve `proxy_manager_for` re-usability by subclass
authorBen Bass <benbass@codedstructure.net>
Sun, 18 May 2014 19:10:35 +0000 (20:10 +0100)
committerBen Bass <benbass@codedstructure.net>
Sun, 18 May 2014 19:10:35 +0000 (20:10 +0100)
requests/adapters.py

index 6b8f4d3bc3cf85531a271e269c7a238629270f52..995d8f80a54cbb1acb6db269b8befacf82eb497a 100644 (file)
@@ -118,12 +118,16 @@ 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 <requests.adapters.HTTPAdapter>`.
+    def proxy_manager_for(self, proxy, **proxy_kwargs):
+        """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 <requests.adapters.HTTPAdapter>`.
 
         :param proxy: The proxy to return a urllib3 ProxyManager for.
+        :param proxy_kwargs: Extra keyword arguments used to configure the Proxy Manager.
+        :returns: ProxyManager
         """
         if not proxy in self.proxy_manager:
             proxy_headers = self.proxy_headers(proxy)
@@ -132,7 +136,8 @@ class HTTPAdapter(BaseAdapter):
                                             proxy_headers=proxy_headers,
                                             num_pools=self._pool_connections,
                                             maxsize=self._pool_maxsize,
-                                            block=self._pool_block)
+                                            block=self._pool_block,
+                                            **proxy_kwargs)
 
         return self.proxy_manager[proxy]