Anonymous avatar Anonymous committed dfbbf85

actions: use stdmods for finding standard modules

Comments (0)

Files changed (1)

rope/refactor/importutils/actions.py

 import os
 import sys
 
-from rope.base import pyobjects, exceptions
+from rope.base import pyobjects, exceptions, stdmods
 from rope.refactor import occurrences
 from rope.refactor.importutils import importinfo
 
             self.in_project.add(import_stmt)
         elif _is_future(info):
             self.future.add(import_stmt)
-        elif imported_name.split('.')[0] in SortingVisitor.standard_modules():
+        elif imported_name.split('.')[0] in stdmods.standard_modules():
             self.standard.add(import_stmt)
         else:
             self.third_party.add(import_stmt)
 
-    @classmethod
-    def standard_modules(cls):
-        if not hasattr(cls, '_standard_modules'):
-            import inspect
-            result = set(sys.builtin_module_names)
-            lib_path = os.path.dirname(inspect.getsourcefile(os))
-            dynload_path = os.path.join(lib_path, 'lib-dynload')
-            if os.path.exists(lib_path):
-                for name in os.listdir(lib_path):
-                    path = os.path.join(lib_path, name)
-                    if os.path.isdir(path):
-                        if '-' not in name:
-                            result.add(name)
-                    else:
-                        if name.endswith('.py'):
-                            result.add(name[:-3])
-            if os.path.exists(dynload_path):
-                for name in os.listdir(dynload_path):
-                    path = os.path.join(dynload_path, name)
-                    if os.path.isfile(path):
-                        if name.endswith('.so') or name.endswith('.dll'):
-                            result.add(os.path.splitext(name)[0])
-            cls._standard_modules = result
-        return cls._standard_modules
-
 
 class LongImportVisitor(ImportInfoVisitor):
 
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.