Fix sys_path propagation for builtins load_module

This commit is contained in:
Dave Halter
2017-12-18 20:15:52 +01:00
parent aa40ef3140
commit 6780eba157
4 changed files with 9 additions and 8 deletions

View File

@@ -28,8 +28,8 @@ def get_special_object(evaluator, identifier):
)
def load_module(evaluator, path=None, name=None):
access_path = evaluator.compiled_subprocess.load_module(path=path, name=name)
def load_module(evaluator, **kwargs):
access_path = evaluator.compiled_subprocess.load_module(**kwargs)
if access_path is None:
return None
return create_from_access_path(evaluator, access_path)

View File

@@ -118,8 +118,9 @@ def create_access(evaluator, obj):
return evaluator.compiled_subprocess.get_or_create_access_handle(obj)
def load_module(evaluator, path=None, name=None):
sys_path = list(evaluator.project.sys_path)
def load_module(evaluator, path=None, name=None, sys_path=None):
if sys_path is None:
sys_path = list(evaluator.project.sys_path)
if path is not None:
dotted_path = dotted_from_fs_path(path, sys_path=sys_path)
else:

View File

@@ -6,8 +6,8 @@ def get_sys_path():
return sys.path
def load_module(evaluator, path=None, name=None):
return access.load_module(evaluator, path=path, name=name)
def load_module(evaluator, **kwargs):
return access.load_module(evaluator, **kwargs)
def get_compiled_method_return(evaluator, id, attribute, *args, **kwargs):

View File

@@ -380,7 +380,7 @@ class Importer(object):
elif module_file is not None or module_path.endswith(('.py', '.zip', '.egg')):
module = _load_module(self._evaluator, module_path, code, sys_path, parent_module)
else:
module = compiled.load_module(self._evaluator, path=module_path)
module = compiled.load_module(self._evaluator, path=module_path, sys_path=sys_path)
if module is None:
# The file might raise an ImportError e.g. and therefore not be
@@ -491,7 +491,7 @@ def _load_module(evaluator, path=None, code=None, sys_path=None, parent_module=N
from jedi.evaluate.context import ModuleContext
return ModuleContext(evaluator, module_node, path=path)
else:
return compiled.load_module(evaluator, path)
return compiled.load_module(evaluator, path=path, sys_path=sys_path)
def add_module(evaluator, module_name, module):