diff --git a/jedi/api/__init__.py b/jedi/api/__init__.py index 22a417d1..a84fb2bb 100644 --- a/jedi/api/__init__.py +++ b/jedi/api/__init__.py @@ -133,12 +133,12 @@ class Script(object): def get_completions(user_stmt, bs): if user_stmt is None: module = self._parser.module() - importer = helpers.check_error_statements( + importer, only_modules = helpers.check_error_statements( self._evaluator, module, self._pos ) #print(importer.completion_names(self._evaluator, True)) if importer is not None: - names = importer.completion_names(self._evaluator, True) + names = importer.completion_names(self._evaluator, only_modules) return [(name, module) for name in names] elif isinstance(user_stmt, pr.Import): # TODO this paragraph is necessary, but not sure it works. diff --git a/jedi/api/helpers.py b/jedi/api/helpers.py index c69fd1ca..a1b004a8 100644 --- a/jedi/api/helpers.py +++ b/jedi/api/helpers.py @@ -50,6 +50,7 @@ def importer_from_error_statement(evaluator, module, error_statement, pos): names = [] level = 0 + only_modules = True for typ, nodes in error_statement.stack: if typ == 'dotted_name': names += check_dotted(nodes) @@ -61,5 +62,7 @@ def importer_from_error_statement(evaluator, module, error_statement, pos): level += len(node.value) elif isinstance(node, pt.Name) and node.end_pos < pos: names.append(node) + elif node == 'import' and node.end_pos < pos: + only_modules = False - return imports.get_importer(evaluator, names, module, level) + return imports.get_importer(evaluator, names, module, level), only_modules