mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-08 06:44:46 +08:00
fixed remainig problems with imports. detected with py3k
This commit is contained in:
13
functions.py
13
functions.py
@@ -240,6 +240,13 @@ def get_definition(source, line, column, source_path):
|
||||
:return: list of Definition objects, which are basically scopes.
|
||||
:rtype: list
|
||||
"""
|
||||
def resolve_import_paths(scopes):
|
||||
for s in scopes.copy():
|
||||
if isinstance(s, imports.ImportPath):
|
||||
scopes.remove(s)
|
||||
scopes.update(resolve_import_paths(set(s.follow())))
|
||||
return scopes
|
||||
|
||||
pos = (line, column)
|
||||
f = modules.ModuleWithCursor(source_path, source=source, position=pos)
|
||||
goto_path = f.get_path_under_cursor()
|
||||
@@ -253,11 +260,7 @@ def get_definition(source, line, column, source_path):
|
||||
else:
|
||||
scopes = set(_prepare_goto(pos, source_path, f, goto_path))
|
||||
|
||||
for s in scopes.copy():
|
||||
if isinstance(s, imports.ImportPath):
|
||||
scopes.remove(s)
|
||||
evaluate.statement_path = []
|
||||
scopes.update(evaluate.goto([s]))
|
||||
scopes = resolve_import_paths(scopes)
|
||||
|
||||
# add keywords
|
||||
scopes |= keywords.get_keywords(string=goto_path, pos=pos)
|
||||
|
||||
@@ -89,9 +89,8 @@ class ImportPath(object):
|
||||
for s, scope_names in evaluate.get_names_for_scope(scope,
|
||||
include_builtin=False):
|
||||
for n in scope_names:
|
||||
if not isinstance(n.parent(), parsing.Import) \
|
||||
and (self.import_stmt.from_ns is None \
|
||||
or self.is_partial_import):
|
||||
if self.import_stmt.from_ns is None \
|
||||
or self.is_partial_import:
|
||||
# from_ns must be defined to access module
|
||||
# values plus a partial import means that there
|
||||
# is something after the import, which
|
||||
|
||||
Reference in New Issue
Block a user