From 6ea3f2ada87177559188bfc9148af1b2384f38c6 Mon Sep 17 00:00:00 2001 From: Ian Cordasco Date: Sat, 28 Feb 2015 20:13:45 -0600 Subject: [PATCH] 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 --- requests/packages/__init__.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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")]) -- 2.34.1