From 5edd2274b2f9e8a617e289b33de5cd20175f96f6 Mon Sep 17 00:00:00 2001 From: Albertas Agejevas Date: Sun, 27 Jul 2014 13:43:20 +0200 Subject: [PATCH] Fix an exception in the flask ext code. --- jedi/evaluate/imports.py | 3 ++- test/test_evaluate/test_imports.py | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/jedi/evaluate/imports.py b/jedi/evaluate/imports.py index 8eb20670..018447a5 100644 --- a/jedi/evaluate/imports.py +++ b/jedi/evaluate/imports.py @@ -345,7 +345,8 @@ class _Importer(object): def follow_file_system(self): # Handle "magic" Flask extension imports: # ``flask.ext.foo`` is really ``flask_foo`` or ``flaskext.foo``. - if [part._string for part in self.import_path[:2]] == ['flask', 'ext']: + if len(self.import_path) > 2 and \ + [part._string for part in self.import_path[:2]] == ['flask', 'ext']: orig_path = tuple(self.import_path) part = orig_path[2] pos = (part._line, part._column) diff --git a/test/test_evaluate/test_imports.py b/test/test_evaluate/test_imports.py index 86ccba79..2946e7fd 100644 --- a/test/test_evaluate/test_imports.py +++ b/test/test_evaluate/test_imports.py @@ -52,3 +52,7 @@ def test_flask_ext(script, name): """flask.ext.foo is really imported from flaskext.foo or flask_foo. """ assert name in [c.name for c in jedi.Script(script).completions()] + + +def test_flask_regression(): + jedi.Script("from flask.ext.").completions()