diff options
| author | Jason R. Coombs <jaraco@jaraco.com> | 2016-01-26 14:42:03 -0500 |
|---|---|---|
| committer | Jason R. Coombs <jaraco@jaraco.com> | 2016-01-26 14:42:03 -0500 |
| commit | 66b3a623dd256def923ddde303b8c95592d0223b (patch) | |
| tree | 49e678de1601fa618d8af9f7cfbabd17a3325c3e | |
| parent | 397d759e48bc93597c535c2335c9da37178721a5 (diff) | |
| download | python-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__.py | 11 |
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) |
