A utility function to fetch environment proxies
authorRohan Jain <crodjer@gmail.com>
Fri, 4 May 2012 05:11:57 +0000 (10:41 +0530)
committerRohan Jain <crodjer@gmail.com>
Fri, 4 May 2012 05:14:01 +0000 (10:44 +0530)
This adds support for lowercase environment proxy variables (which are
quite popular too). It returns proxies in a format compatible with
request's proxy parameter.
Moreover, it can be used in the request models for proxy defaults.

Signed-off-by: Rohan Jain <crodjer@gmail.com>
requests/utils.py

index ecfee47b38604afbc4dc403c3c0477246210de7b..8365cc36999b0037e3d818ffa3ae1ac86765f3e8 100644 (file)
@@ -446,3 +446,19 @@ def requote_uri(uri):
     # Then quote only illegal characters (do not quote reserved, unreserved,
     # or '%')
     return quote(unquote_unreserved(uri), safe="!#$%&'()*+,/:;=?@[]~")
+
+def get_environ_proxies():
+    """Return a dict of environment proxies."""
+
+    proxy_keys = [
+        'all',
+        'http',
+        'https',
+        'ftp',
+        'socks',
+        'no'
+    ]
+
+    get_proxy = lambda k: os.environ.get(k) or os.environ.get(k.upper())
+    proxies = [(key, get_proxy(key + '_proxy')) for key in proxy_keys]
+    return dict([(key, val) for (key, val) in proxies if val])