From 032286920266c268d4bef757ceba106c6b3a6aed Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Wed, 30 Apr 2014 17:09:46 +0200 Subject: [PATCH] catch ModuleNotFound for a special imports usage --- jedi/api/classes.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/jedi/api/classes.py b/jedi/api/classes.py index 8225d859..7455809d 100644 --- a/jedi/api/classes.py +++ b/jedi/api/classes.py @@ -301,6 +301,9 @@ class BaseDefinition(object): @memoize_default() def _follow_statements_imports(self): + """ + Follow both statements and imports, as far as possible. + """ stripped = self._definition if isinstance(stripped, pr.Name): stripped = stripped.parent @@ -503,8 +506,11 @@ class Completion(BaseDefinition): if self._definition.isinstance(pr.Import) and self._definition.alias is None: i = imports.ImportPath(self._evaluator, self._definition, True) import_path = i.import_path + (unicode(self._name),) - return imports.get_importer(self._evaluator, import_path, - i._importer.module).follow(self._evaluator) + try: + return imports.get_importer(self._evaluator, import_path, + i._importer.module).follow(self._evaluator) + except imports.ModuleNotFound: + pass return super(Completion, self)._follow_statements_imports() @memoize_default()