From: Ian Cordasco Date: Sun, 1 Mar 2015 02:13:45 +0000 (-0600) Subject: Only alias the imports for vendored dependencies X-Git-Tag: v2.6.0~9^2~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6ea3f2ada87177559188bfc9148af1b2384f38c6;p=services%2Fpython-requests.git Only alias the imports for vendored dependencies While discussion the issue, Donald Stufft (@dstufft) and I realized the simplest solution is to simply add an alias per vendored dependency. The resulting changes are simple and effective. It prevents the issue in 2.5.2 and 2.5.3 where the following would work: from requests.packages import webbrowser This now appropriately raises an ImportError. Closes #2465 --- diff --git a/requests/packages/__init__.py b/requests/packages/__init__.py index ec6a9e0..7b2a091 100644 --- a/requests/packages/__init__.py +++ b/requests/packages/__init__.py @@ -27,9 +27,10 @@ import sys class VendorAlias(object): - def __init__(self): + def __init__(self, package_name): + self._package_name = package_name self._vendor_name = __name__ - self._vendor_pkg = self._vendor_name + "." + self._vendor_pkg = self._vendor_name + "." + self._package_name def find_module(self, fullname, path=None): if fullname.startswith(self._vendor_pkg): @@ -92,4 +93,4 @@ class VendorAlias(object): return module -sys.meta_path.append(VendorAlias()) +sys.meta_path.extend([VendorAlias("urllib3"), VendorAlias("chardet")])