1
0
forked from VimPlug/jedi

Fix interpreter issues with modules

This commit is contained in:
Dave Halter
2018-09-04 01:02:00 +02:00
parent f432a0b7c4
commit 6036ea60d1
3 changed files with 7 additions and 6 deletions

View File

@@ -27,11 +27,11 @@ class MixedModuleContext(Context):
self.evaluator = evaluator self.evaluator = evaluator
self._namespaces = namespaces self._namespaces = namespaces
raise NotImplementedError("module names")
self._namespace_objects = [NamespaceObject(n) for n in namespaces] self._namespace_objects = [NamespaceObject(n) for n in namespaces]
self._module_context = ModuleContext( self._module_context = ModuleContext(
evaluator, tree_module, evaluator, tree_module,
path=path, path=path,
string_names=('__main__',),
code_lines=code_lines code_lines=code_lines
) )
self.tree_node = tree_module self.tree_node = tree_module

View File

@@ -203,16 +203,17 @@ def _create(evaluator, access_handle, parent_context, *args):
if parent_context.tree_node.get_root_node() == module_node: if parent_context.tree_node.get_root_node() == module_node:
module_context = parent_context.get_root_context() module_context = parent_context.get_root_context()
else: else:
raise NotImplementedError('module misses string_names arg') # TODO this __name__ is probably wrong.
name = compiled_object.get_root_context().py__name__()
string_names = tuple(name.split('.'))
module_context = ModuleContext( module_context = ModuleContext(
evaluator, module_node, evaluator, module_node,
path=path, path=path,
string_names=string_names,
code_lines=code_lines, code_lines=code_lines,
) )
# TODO this __name__ is probably wrong.
name = compiled_object.get_root_context().py__name__()
if name is not None: if name is not None:
imports.add_module_to_cache(evaluator, name, module_context) evaluator.module_cache.add(string_names, ContextSet(module_context))
tree_context = module_context.create_context( tree_context = module_context.create_context(
tree_node, tree_node,

View File

@@ -151,9 +151,9 @@ def _get_paths_from_buildout_script(evaluator, buildout_script_path):
return return
from jedi.evaluate.context import ModuleContext from jedi.evaluate.context import ModuleContext
raise NotImplementedError("No module string_names, yet")
module = ModuleContext( module = ModuleContext(
evaluator, module_node, buildout_script_path, evaluator, module_node, buildout_script_path,
string_names=None,
code_lines=get_cached_code_lines(evaluator.grammar, buildout_script_path), code_lines=get_cached_code_lines(evaluator.grammar, buildout_script_path),
) )
for path in check_sys_path_modifications(module): for path in check_sys_path_modifications(module):