summaryrefslogtreecommitdiff
path: root/_distutils_hack
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2020-08-15 14:59:37 -0400
committerJason R. Coombs <jaraco@jaraco.com>2020-08-15 15:04:10 -0400
commit3d404fd3268b0fb7d84916779ca2e282f4586396 (patch)
tree50c0f29eeed4312f0cfe229e02a75cf95285e0ff /_distutils_hack
parent77eeb77f48484a6e227275a9a8cc7d4c322596f7 (diff)
downloadpython-setuptools-git-3d404fd3268b0fb7d84916779ca2e282f4586396.tar.gz
Refactor to use lookups and consolidate behaviors.
Diffstat (limited to '_distutils_hack')
-rw-r--r--_distutils_hack/__init__.py20
1 files changed, 8 insertions, 12 deletions
diff --git a/_distutils_hack/__init__.py b/_distutils_hack/__init__.py
index bdb365d5..074bd5e9 100644
--- a/_distutils_hack/__init__.py
+++ b/_distutils_hack/__init__.py
@@ -66,14 +66,14 @@ def do_override():
class DistutilsMetaFinder:
def find_spec(self, fullname, path, target=None):
- self._disable_for_pip(fullname, path)
-
- if path is not None or fullname != "distutils":
- return None
+ if path is not None:
+ return
- return self.get_distutils_spec()
+ method_name = 'spec_for_{fullname}'.format(**locals())
+ method = getattr(self, method_name, lambda: None)
+ return method()
- def get_distutils_spec(self):
+ def spec_for_distutils(self):
import importlib.util
class DistutilsLoader(importlib.util.abc.Loader):
@@ -86,17 +86,13 @@ class DistutilsMetaFinder:
return importlib.util.spec_from_loader('distutils', DistutilsLoader())
- def _disable_for_pip(self, fullname, path):
+ def spec_for_pip(self):
"""
Ensure stdlib distutils when running under pip.
See pypa/pip#8761 for rationale.
"""
- if path is not None or fullname != "pip":
- return
-
- # pip is being imported the first time.
clear_distutils()
- self.get_distutils_spec = lambda: None
+ self.spec_for_distutils = lambda: None
DISTUTILS_FINDER = DistutilsMetaFinder()