summaryrefslogtreecommitdiff
path: root/pkg_resources
diff options
context:
space:
mode:
Diffstat (limited to 'pkg_resources')
-rw-r--r--pkg_resources/__init__.py19
1 files changed, 11 insertions, 8 deletions
diff --git a/pkg_resources/__init__.py b/pkg_resources/__init__.py
index e6487be0..deea96b9 100644
--- a/pkg_resources/__init__.py
+++ b/pkg_resources/__init__.py
@@ -2098,16 +2098,19 @@ def _handle_ns(packageName, path_item):
if importer is None:
return None
- # capture warnings due to #1111
- with warnings.catch_warnings():
- warnings.simplefilter("ignore")
+ # use find_spec (PEP 451) and fall-back to find_module (PEP 302)
+ try:
+ loader = importer.find_spec(packageName).loader
+ except AttributeError:
try:
- loader = importer.find_module(packageName)
+ # capture warnings due to #1111
+ with warnings.catch_warnings():
+ warnings.simplefilter("ignore")
+ loader = importer.find_module(packageName)
except AttributeError:
- try:
- loader = importer.find_spec(packageName).loader
- except:
- loader = None
+ # not a system module
+ loader = None
+
if loader is None:
return None
module = sys.modules.get(packageName)