diff --git a/jedi/evaluate/imports.py b/jedi/evaluate/imports.py index fe9ac9b3..9a958c40 100644 --- a/jedi/evaluate/imports.py +++ b/jedi/evaluate/imports.py @@ -424,13 +424,6 @@ def import_module(evaluator, import_names, sys_path): # further imports. parent_module = list(bases)[0] - # This is a huge exception, we follow a nested import - # ``os.path``, because it's a very important one in Python - # that is being achieved by messing with ``sys.modules`` in - # ``os``. - if import_names == ('os', 'path'): - return parent_module.py__getattribute__('path') - try: method = parent_module.py__path__ except AttributeError: diff --git a/jedi/plugins/stdlib.py b/jedi/plugins/stdlib.py index 44420940..0c02297f 100644 --- a/jedi/plugins/stdlib.py +++ b/jedi/plugins/stdlib.py @@ -77,6 +77,19 @@ class StdlibPlugin(BasePlugin): return wrapper + def import_module(self, callback): + def wrapper(evaluator, import_names, sys_path): + # This is a huge exception, we follow a nested import + # ``os.path``, because it's a very important one in Python + # that is being achieved by messing with ``sys.modules`` in + # ``os``. + if import_names == ('os', 'path'): + return callback(evaluator, ('os',), sys_path).py__getattribute__('path') + return callback(evaluator, import_names, sys_path) + + + return wrapper + def _follow_param(evaluator, arguments, index): try: