summaryrefslogtreecommitdiff
path: root/setuptools/extern/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'setuptools/extern/__init__.py')
-rw-r--r--setuptools/extern/__init__.py45
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()