diff --git a/jedi/api/interpreter.py b/jedi/api/interpreter.py index eaf3a63d..6702cf80 100644 --- a/jedi/api/interpreter.py +++ b/jedi/api/interpreter.py @@ -27,11 +27,11 @@ class MixedModuleContext(Context): self.evaluator = evaluator self._namespaces = namespaces - raise NotImplementedError("module names") self._namespace_objects = [NamespaceObject(n) for n in namespaces] self._module_context = ModuleContext( evaluator, tree_module, path=path, + string_names=('__main__',), code_lines=code_lines ) self.tree_node = tree_module diff --git a/jedi/evaluate/compiled/mixed.py b/jedi/evaluate/compiled/mixed.py index 64f0105f..82e0703c 100644 --- a/jedi/evaluate/compiled/mixed.py +++ b/jedi/evaluate/compiled/mixed.py @@ -203,16 +203,17 @@ def _create(evaluator, access_handle, parent_context, *args): if parent_context.tree_node.get_root_node() == module_node: module_context = parent_context.get_root_context() 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( evaluator, module_node, path=path, + string_names=string_names, code_lines=code_lines, ) - # TODO this __name__ is probably wrong. - name = compiled_object.get_root_context().py__name__() 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_node, diff --git a/jedi/evaluate/sys_path.py b/jedi/evaluate/sys_path.py index 8fb24781..d015d846 100644 --- a/jedi/evaluate/sys_path.py +++ b/jedi/evaluate/sys_path.py @@ -151,9 +151,9 @@ def _get_paths_from_buildout_script(evaluator, buildout_script_path): return from jedi.evaluate.context import ModuleContext - raise NotImplementedError("No module string_names, yet") module = ModuleContext( evaluator, module_node, buildout_script_path, + string_names=None, code_lines=get_cached_code_lines(evaluator.grammar, buildout_script_path), ) for path in check_sys_path_modifications(module):