Move the os.path hack

This commit is contained in:
Dave Halter
2018-07-23 23:04:14 +02:00
parent c88afb71c9
commit 873558a392
2 changed files with 13 additions and 7 deletions

View File

@@ -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:

View File

@@ -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: