aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2016-01-02 15:23:48 -0500
committerJason R. Coombs <jaraco@jaraco.com>2016-01-02 15:23:48 -0500
commit2dc55bc1a9904ffd44d4cd5a3c83c7a1f12c75ec (patch)
tree754d0ab503b455ee6e3ae9c16c388eabe71598a1
parenta76f5c03136f0c69e8c366bf4069ec8d89d85da7 (diff)
downloadexternal_python_setuptools-2dc55bc1a9904ffd44d4cd5a3c83c7a1f12c75ec.tar.gz
external_python_setuptools-2dc55bc1a9904ffd44d4cd5a3c83c7a1f12c75ec.tar.bz2
external_python_setuptools-2dc55bc1a9904ffd44d4cd5a3c83c7a1f12c75ec.zip
Combine separate VendorImporters into a single one in pkg_resources.extern
--HG-- branch : feature/issue-229
-rw-r--r--pkg_resources/__init__.py1
-rw-r--r--pkg_resources/extern/__init__.py1
-rw-r--r--setuptools/extern/__init__.py45
3 files changed, 2 insertions, 45 deletions
diff --git a/pkg_resources/__init__.py b/pkg_resources/__init__.py
index 82382962..f55c8abe 100644
--- a/pkg_resources/__init__.py
+++ b/pkg_resources/__init__.py
@@ -87,7 +87,6 @@ try:
except ImportError:
pass
-
from pkg_resources.extern import packaging
__import__('pkg_resources.extern.packaging.version')
__import__('pkg_resources.extern.packaging.specifiers')
diff --git a/pkg_resources/extern/__init__.py b/pkg_resources/extern/__init__.py
index b7f87ee9..944967c2 100644
--- a/pkg_resources/extern/__init__.py
+++ b/pkg_resources/extern/__init__.py
@@ -1,5 +1,6 @@
import sys
+
class VendorImporter:
"""
A PEP 302 meta path importer for finding optionally-vendored
diff --git a/setuptools/extern/__init__.py b/setuptools/extern/__init__.py
index e1400238..7a0c5780 100644
--- a/setuptools/extern/__init__.py
+++ b/setuptools/extern/__init__.py
@@ -1,48 +1,5 @@
-import sys
+from pkg_resources.extern import VendorImporter
-class VendorImporter:
- """
- A PEP 302 meta path importer for finding optionally-vendored
- or otherwise naturally-installed packages from root_name.
- """
- def __init__(self, root_name, vendored_names=(), vendor_pkg=None):
- self.root_name = root_name
- self.vendored_names = set(vendored_names)
- self.vendor_pkg = vendor_pkg or root_name.replace('extern', '_vendor')
-
- @property
- def search_path(self):
- yield self.vendor_pkg + '.'
- yield ''
-
- def find_module(self, fullname, path=None):
- root, base, target = fullname.partition(self.root_name + '.')
- if root:
- return
- if not any(map(target.startswith, self.vendored_names)):
- return
- return self
-
- def load_module(self, fullname):
- root, base, target = fullname.partition(self.root_name + '.')
- for prefix in self.search_path:
- try:
- __import__(prefix + target)
- mod = sys.modules[fullname] = sys.modules.pop(prefix + target)
- return mod
- except ImportError:
- pass
- else:
- raise ImportError(
- "The '{target}' package is required; "
- "normally this is bundled with this package so if you get "
- "this warning, consult the packager of your "
- "distribution.".format(**locals())
- )
-
- def install(self):
- if self not in sys.meta_path:
- sys.meta_path.append(self)
names = 'six',
VendorImporter(__name__, names).install()