summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2016-01-26 14:42:03 -0500
committerJason R. Coombs <jaraco@jaraco.com>2016-01-26 14:42:03 -0500
commit66b3a623dd256def923ddde303b8c95592d0223b (patch)
tree49e678de1601fa618d8af9f7cfbabd17a3325c3e
parent397d759e48bc93597c535c2335c9da37178721a5 (diff)
downloadpython-setuptools-git-66b3a623dd256def923ddde303b8c95592d0223b.tar.gz
Adapt resolution of classes from importlib.machinery. Restores compatibility for PyPy3 where importlib.machinery exists but FileFinder and SourceFileLoader aren't implemented.
-rw-r--r--pkg_resources/__init__.py11
1 files changed, 5 insertions, 6 deletions
diff --git a/pkg_resources/__init__.py b/pkg_resources/__init__.py
index b4f910c6..f15becbb 100644
--- a/pkg_resources/__init__.py
+++ b/pkg_resources/__init__.py
@@ -1727,10 +1727,9 @@ class DefaultProvider(EggProvider):
@classmethod
def _register(cls):
- register_loader_type(type(None), cls)
-
- if importlib_machinery is not None:
- register_loader_type(importlib_machinery.SourceFileLoader, cls)
+ loader_cls = getattr(importlib_machinery, 'SourceFileLoader',
+ type(None))
+ register_loader_type(loader_cls, cls)
DefaultProvider._register()
@@ -2138,7 +2137,7 @@ def find_on_path(importer, path_item, only=False):
break
register_finder(pkgutil.ImpImporter, find_on_path)
-if importlib_machinery is not None:
+if hasattr(importlib_machinery, 'FileFinder'):
register_finder(importlib_machinery.FileFinder, find_on_path)
_declare_state('dict', _namespace_handlers={})
@@ -2255,7 +2254,7 @@ def file_ns_handler(importer, path_item, packageName, module):
register_namespace_handler(pkgutil.ImpImporter, file_ns_handler)
register_namespace_handler(zipimport.zipimporter, file_ns_handler)
-if importlib_machinery is not None:
+if hasattr(importlib_machinery, 'FileFinder'):
register_namespace_handler(importlib_machinery.FileFinder, file_ns_handler)