1
0
forked from VimPlug/jedi

Care for import aliases better.

This commit is contained in:
Dave Halter
2014-11-19 12:45:39 +01:00
parent 1c240e75d3
commit e630eeb397
3 changed files with 29 additions and 2 deletions

View File

@@ -1077,6 +1077,12 @@ class Import(Simple):
raise NotImplementedError
def path_for_name(self, name):
try:
# The name may be an alias. If it is, just map it back to the name.
name = self.aliases()[name]
except KeyError:
pass
for path in self._paths():
if name in path:
return path[:path.index(name) + 1]
@@ -1108,6 +1114,11 @@ class ImportFrom(Import):
def get_defined_names(self):
return [alias or name for name, alias in self._as_name_tuples()]
def aliases(self):
"""Mapping from alias to its corresponding name."""
return dict((alias, name) for name, alias in self._as_name_tuples()
if alias is not None)
def _as_name_tuples(self):
last = self.children[-1]
if last == ')':
@@ -1152,6 +1163,10 @@ class ImportName(Import):
else:
return [self.children[1:]]
def aliases(self):
raise NotImplementedError
return []
class KeywordStatement(Simple):
"""