diff options
author | Zac Medico <zmedico@gentoo.org> | 2010-12-15 23:24:16 -0800 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2010-12-15 23:24:16 -0800 |
commit | 93ffb57b06de7046309174d94e4bb6b6f1467c3c (patch) | |
tree | 8c297dc3f0f42e0f2665d5776f42318ff133d04d | |
parent | 9a193d42032005396800eb30e550691513529c79 (diff) | |
download | portage-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.py | 14 |
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) |