Support manual proxy configuration for simple urlopen() operations.
This change is similar to the supplied patch, but does not save the opener
when a proxy configuration is specified.
This closes SF patch #523415.
diff --git a/Lib/urllib.py b/Lib/urllib.py
index d028d7a..2d53c12 100644
--- a/Lib/urllib.py
+++ b/Lib/urllib.py
@@ -63,15 +63,20 @@
# Shortcut for basic usage
_urlopener = None
-def urlopen(url, data=None):
+def urlopen(url, data=None, proxies=None):
"""urlopen(url [, data]) -> open file-like object"""
global _urlopener
- if not _urlopener:
- _urlopener = FancyURLopener()
- if data is None:
- return _urlopener.open(url)
+ if proxies is not None:
+ opener = FancyURLopener(proxies=proxies)
+ elif not _urlopener:
+ opener = FancyURLopener()
+ _urlopener = opener
else:
- return _urlopener.open(url, data)
+ opener = _urlopener
+ if data is None:
+ return opener.open(url)
+ else:
+ return opener.open(url, data)
def urlretrieve(url, filename=None, reporthook=None, data=None):
global _urlopener
if not _urlopener: