diff options
Diffstat (limited to 'setuptools/extern/__init__.py')
-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() |