summaryrefslogtreecommitdiff
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
commit24647f385e3776f64c711b0a82fea18849e0f139 (patch)
treeee61ecff2fc247540fedb5289e84ced1f5461304
parente56e119124db9fe04672df34f775946d864dd4e9 (diff)
downloadpython-setuptools-bitbucket-24647f385e3776f64c711b0a82fea18849e0f139.tar.gz
Combine separate VendorImporters into a single one in pkg_resources.extern
-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()