diff options
| author | Jason R. Coombs <jaraco@jaraco.com> | 2020-07-26 10:35:02 -0400 |
|---|---|---|
| committer | Jason R. Coombs <jaraco@jaraco.com> | 2020-07-26 10:35:02 -0400 |
| commit | dcc71f773576c19a3658735879893515b056ece5 (patch) | |
| tree | 2ebc5e39593fb475a7fc957f9965339b5b9ae60a /_distutils_hack/__init__.py | |
| parent | 1e53a2c14e7e0f788c9df2a542ac10f6b2f511d7 (diff) | |
| download | python-setuptools-git-dcc71f773576c19a3658735879893515b056ece5.tar.gz | |
Rename _distutils_importer to _distutils_hack, as it supplies more than just an importer.
Diffstat (limited to '_distutils_hack/__init__.py')
| -rw-r--r-- | _distutils_hack/__init__.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/_distutils_hack/__init__.py b/_distutils_hack/__init__.py new file mode 100644 index 00000000..3ad70100 --- /dev/null +++ b/_distutils_hack/__init__.py @@ -0,0 +1,45 @@ +import sys +import os + + +def enabled(): + """ + Allow selection of distutils by environment variable. + """ + which = os.environ.get('SETUPTOOLS_USE_DISTUTILS', 'stdlib') + return which == 'local' + + +class DistutilsMetaFinder: + def find_spec(self, fullname, path, target=None): + if path is not None or fullname != "distutils": + return None + + return self.get_distutils_spec() + + def get_distutils_spec(self): + import importlib.util + + class DistutilsLoader(importlib.util.abc.Loader): + + def create_module(self, spec): + return importlib.import_module('._distutils', 'setuptools') + + def exec_module(self, module): + pass + + return importlib.util.spec_from_loader('distutils', DistutilsLoader()) + + +DISTUTILS_FINDER = DistutilsMetaFinder() + + +def add_shim(): + sys.meta_path.insert(0, DISTUTILS_FINDER) + + +def remove_shim(): + try: + sys.path.remove(DISTUTILS_FINDER) + except ValueError: + pass |
