Sophie

Sophie

distrib > Mageia > 3 > i586 > media > core-release-src > by-pkgid > ba00a0698b89d38abf40749a829ae4c2 > files > 1

python-pip-1.3.1-2.mga3.src.rpm

From 60b0401b0a894ede64ae6f2f0d0b072a761fd4fb Mon Sep 17 00:00:00 2001
From: Marcus Smith <qwcode@gmail.com>
Date: Tue, 12 Mar 2013 14:20:23 -0700
Subject: [PATCH] fix proxy support

---
 pip/download.py     | 10 +++++++---
 tests/test_proxy.py | 42 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 49 insertions(+), 3 deletions(-)

diff --git a/pip/download.py b/pip/download.py
index e48ab67..cd23d5c 100644
--- a/pip/download.py
+++ b/pip/download.py
@@ -129,6 +129,7 @@ class URLOpener(object):
     """
     def __init__(self):
         self.passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
+        self.proxy_handler = None
 
     def __call__(self, url):
         """
@@ -186,6 +187,11 @@ def get_opener(self, *args, **kwargs):
         Build an OpenerDirector instance based on the scheme, whether ssl is
         importable and the --insecure parameter.
         """
+
+        args = list(args)
+        if self.proxy_handler:
+            args.extend([self.proxy_handler, urllib2.CacheFTPHandler])
+
         if kwargs.get('scheme') == 'https':
             if ssl:
                 https_handler = VerifiedHTTPSHandler()
@@ -211,9 +217,7 @@ def setup(self, proxystr='', prompting=True):
         self.prompting = prompting
         proxy = self.get_proxy(proxystr)
         if proxy:
-            proxy_support = urllib2.ProxyHandler({"http": proxy, "ftp": proxy, "https": proxy})
-            opener = urllib2.build_opener(proxy_support, urllib2.CacheFTPHandler)
-            urllib2.install_opener(opener)
+            self.proxy_handler = urllib2.ProxyHandler({"http": proxy, "ftp": proxy, "https": proxy})
 
     def parse_credentials(self, netloc):
         if "@" in netloc:
-- 
1.8.1.6