From 66b3a623dd256def923ddde303b8c95592d0223b Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Tue, 26 Jan 2016 14:42:03 -0500 Subject: Adapt resolution of classes from importlib.machinery. Restores compatibility for PyPy3 where importlib.machinery exists but FileFinder and SourceFileLoader aren't implemented. --- pkg_resources/__init__.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'pkg_resources') 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) -- cgit v1.2.3