]> granicus.if.org Git - python/commitdiff
Remove more usage of APIs deprecated by PEP 451.
authorEric Snow <ericsnowcurrently@gmail.com>
Tue, 7 Jan 2014 03:42:59 +0000 (20:42 -0700)
committerEric Snow <ericsnowcurrently@gmail.com>
Tue, 7 Jan 2014 03:42:59 +0000 (20:42 -0700)
Lib/idlelib/EditorWindow.py
Lib/pkgutil.py
Lib/pyclbr.py

index eaf68cb7541190b441c55b54d06248423619a3b4..f855bc6de3fc5089b993d4693917797833795262 100644 (file)
@@ -659,20 +659,20 @@ class EditorWindow(object):
             return
         # XXX Ought to insert current file's directory in front of path
         try:
-            loader = importlib.find_loader(name)
+            spec = importlib.find_spec(name)
         except (ValueError, ImportError) as msg:
             tkMessageBox.showerror("Import error", str(msg), parent=self.text)
             return
-        if loader is None:
+        if spec is None:
             tkMessageBox.showerror("Import error", "module not found",
                                    parent=self.text)
             return
-        if not isinstance(loader, importlib.abc.SourceLoader):
+        if not isinstance(spec.loader, importlib.abc.SourceLoader):
             tkMessageBox.showerror("Import error", "not a source-based module",
                                    parent=self.text)
             return
         try:
-            file_path = loader.get_filename(name)
+            file_path = spec.loader.get_filename(name)
         except AttributeError:
             tkMessageBox.showerror("Import error",
                                    "loader does not support get_filename",
index 405a03dc70f469c576988b2ac5067f5666aec749..7beae1203a0cf35a6ed471fde26098895295e10c 100644 (file)
@@ -554,13 +554,14 @@ def extend_path(path, name):
 
         finder = get_importer(dir)
         if finder is not None:
+            portions = []
+            if hasattr(finder, 'find_spec'):
+                spec = finder.find_spec(final_name)
+                if spec is not None:
+                    portions = spec.submodule_search_locations or []
             # Is this finder PEP 420 compliant?
-            if hasattr(finder, 'find_loader'):
-                loader, portions = finder.find_loader(final_name)
-            else:
-                # No, no need to call it
-                loader = None
-                portions = []
+            elif hasattr(finder, 'find_loader'):
+                _, portions = finder.find_loader(final_name)
 
             for portion in portions:
                 # XXX This may still add duplicate entries to path on
index 9ec05ee80b27a9e55d6700cc2f2c4f123af99658..a8d2b1fe5602cfabb64d15168b55062e268ef09b 100644 (file)
@@ -140,13 +140,14 @@ def _readmodule(module, path, inpackage=None):
         search_path = path
     else:
         search_path = path + sys.path
-    loader = importlib.find_loader(fullmodule, search_path)
-    fname = loader.get_filename(fullmodule)
+    # XXX This will change once issue19944 lands.
+    spec = importlib.find_spec(fullmodule, search_path)
+    fname = spec.loader.get_filename(fullmodule)
     _modules[fullmodule] = dict
-    if loader.is_package(fullmodule):
+    if spec.loader.is_package(fullmodule):
         dict['__path__'] = [os.path.dirname(fname)]
     try:
-        source = loader.get_source(fullmodule)
+        source = spec.loader.get_source(fullmodule)
         if source is None:
             return dict
     except (AttributeError, ImportError):