From 93ffb57b06de7046309174d94e4bb6b6f1467c3c Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Wed, 15 Dec 2010 23:24:16 -0800 Subject: getbinpkg.py: use local HTTPSConnection import 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). --- pym/portage/getbinpkg.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'pym/portage/getbinpkg.py') 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) -- cgit v1.2.3-1-g7c22