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 | 2dc55bc1a9904ffd44d4cd5a3c83c7a1f12c75ec (patch) | |
tree | 754d0ab503b455ee6e3ae9c16c388eabe71598a1 /setuptools/extern | |
parent | a76f5c03136f0c69e8c366bf4069ec8d89d85da7 (diff) | |
download | external_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
Diffstat (limited to 'setuptools/extern')
-rw-r--r-- | setuptools/extern/__init__.py | 45 |
1 files changed, 1 insertions, 44 deletions
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() |