diff options
author | Jason R. Coombs <jaraco@jaraco.com> | 2016-01-02 15:23:48 -0500 |
---|---|---|
committer | Jason R. Coombs <jaraco@jaraco.com> | 2016-01-02 15:23:48 -0500 |
commit | 24647f385e3776f64c711b0a82fea18849e0f139 (patch) | |
tree | ee61ecff2fc247540fedb5289e84ced1f5461304 | |
parent | e56e119124db9fe04672df34f775946d864dd4e9 (diff) | |
download | python-setuptools-bitbucket-24647f385e3776f64c711b0a82fea18849e0f139.tar.gz |
Combine separate VendorImporters into a single one in pkg_resources.extern
-rw-r--r-- | pkg_resources/__init__.py | 1 | ||||
-rw-r--r-- | pkg_resources/extern/__init__.py | 1 | ||||
-rw-r--r-- | setuptools/extern/__init__.py | 45 |
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() |