1
0
forked from VimPlug/jedi

somehow temporary solution to enable completion of __file__

This commit is contained in:
Dave Halter
2014-07-01 15:10:32 +02:00
parent f7a384bf18
commit 8d63e6f6e7
4 changed files with 25 additions and 6 deletions

View File

@@ -205,9 +205,11 @@ class Script(object):
scopes = list(self._prepare_goto(path, True))
except NotFoundError:
scopes = []
scope_names_generator = get_names_of_scope(self._evaluator,
self._parser.user_scope(),
self._pos)
scope = self._parser.user_scope()
if isinstance(scope, pr.Module) \
and not isinstance(scope, interpreter.InterpreterNamespace):
scope = er.ModuleWrapper(self._evaluator, scope)
scope_names_generator = get_names_of_scope(self._evaluator, scope, self._pos)
completions = []
for scope, name_list in scope_names_generator:
for c in name_list:
@@ -286,7 +288,11 @@ class Script(object):
stmt.start_pos = self._pos
else:
stmt.start_pos = user_stmt.start_pos
stmt.parent = self._parser.user_scope()
scope = self._parser.user_scope()
if isinstance(scope, pr.Module) \
and not isinstance(scope, interpreter.InterpreterNamespace):
scope = er.ModuleWrapper(self._evaluator, scope)
stmt.parent = scope
return stmt
def complete(self):

View File

@@ -554,6 +554,10 @@ class ModuleWrapper(use_metaclass(CachedMetaClass, pr.Module)):
@memoize_default()
def _sub_modules(self):
"""
Lists modules in the directory of this module (if this module is a
package).
"""
path = self._module.path
names = []
if path.endswith(os.path.sep + '__init__.py'):

View File

@@ -365,3 +365,13 @@ if foo is not None:
foo = ''.join(foo)
#? str()
foo
# -----------------
# module attributes
# -----------------
# Don't move this to imports.py, because there's a star import.
#? str()
__file__
#? ['__file__']
__file__

View File

@@ -75,9 +75,8 @@ def test_star_import_cache_duration():
# reset values
jedi.settings.star_import_cache_validity = old
length = len(cache._star_import_cache)
assert len(cache._star_import_cache) == 1
cache._star_import_cache = {}
assert length == 1
def test_cache_call_signatures():