summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2010-12-15 23:24:16 -0800
committerZac Medico <zmedico@gentoo.org>2010-12-15 23:24:16 -0800
commit93ffb57b06de7046309174d94e4bb6b6f1467c3c (patch)
tree8c297dc3f0f42e0f2665d5776f42318ff133d04d
parent9a193d42032005396800eb30e550691513529c79 (diff)
downloadportage-93ffb57b06de7046309174d94e4bb6b6f1467c3c.tar.gz
portage-93ffb57b06de7046309174d94e4bb6b6f1467c3c.tar.bz2
portage-93ffb57b06de7046309174d94e4bb6b6f1467c3c.zip
getbinpkg.py: use local HTTPSConnection importv2.2.0_alpha9
Use local import since https typically isn't needed, and this way we can usually avoid triggering the global scope http.client ImportError handler (like during stage1 -> stage2 builds where USE=ssl is disabled for python).
-rw-r--r--pym/portage/getbinpkg.py14
1 files changed, 12 insertions, 2 deletions
diff --git a/pym/portage/getbinpkg.py b/pym/portage/getbinpkg.py
index c8a0edc4d..b225eab7f 100644
--- a/pym/portage/getbinpkg.py
+++ b/pym/portage/getbinpkg.py
@@ -43,13 +43,11 @@ else:
try:
try:
from http.client import HTTPConnection as http_client_HTTPConnection
- from http.client import HTTPSConnection as http_client_HTTPSConnection
from http.client import BadStatusLine as http_client_BadStatusLine
from http.client import ResponseNotReady as http_client_ResponseNotReady
from http.client import error as http_client_error
except ImportError:
from httplib import HTTPConnection as http_client_HTTPConnection
- from httplib import HTTPSConnection as http_client_HTTPSConnection
from httplib import BadStatusLine as http_client_BadStatusLine
from httplib import ResponseNotReady as http_client_ResponseNotReady
from httplib import error as http_client_error
@@ -161,6 +159,18 @@ def create_conn(baseurl,conn=None):
if not conn:
if protocol == "https":
+ # Use local import since https typically isn't needed, and
+ # this way we can usually avoid triggering the global scope
+ # http.client ImportError handler (like during stage1 -> stage2
+ # builds where USE=ssl is disabled for python).
+ try:
+ try:
+ from http.client import HTTPSConnection as http_client_HTTPSConnection
+ except ImportError:
+ from httplib import HTTPSConnection as http_client_HTTPSConnection
+ except ImportError:
+ raise NotImplementedError(
+ _("python must have ssl enabled for https support"))
conn = http_client_HTTPSConnection(host)
elif protocol == "http":
conn = http_client_HTTPConnection(host)