From b68a59daef7263060d03874fd9ce8e7a4ccc8ddd Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Tue, 9 Sep 2014 15:58:20 +0200 Subject: [PATCH] Fix the last remaining issues of the first part of the NamePart switch. --- jedi/api/__init__.py | 1 + jedi/api/classes.py | 1 + jedi/cache.py | 2 +- jedi/evaluate/helpers.py | 1 - jedi/evaluate/representation.py | 6 ++++++ 5 files changed, 9 insertions(+), 2 deletions(-) diff --git a/jedi/api/__init__.py b/jedi/api/__init__.py index 684165bf..bc1786e2 100644 --- a/jedi/api/__init__.py +++ b/jedi/api/__init__.py @@ -388,6 +388,7 @@ class Script(object): if goto_path: definitions = set(self._prepare_goto(goto_path)) + definitions = resolve_import_paths(definitions) names = [s if isinstance(s, pr.Name) else s.name for s in definitions if s is not imports.ImportWrapper.GlobalNamespace] defs = [classes.Definition(self._evaluator, name.names[-1]) diff --git a/jedi/api/classes.py b/jedi/api/classes.py index 791fc6f6..94f2e14d 100644 --- a/jedi/api/classes.py +++ b/jedi/api/classes.py @@ -507,6 +507,7 @@ class Completion(BaseDefinition): the ``foo.docstring(fast=False)`` on every object, because it parses all libraries starting with ``a``. """ + definition = self._definition if isinstance(definition, pr.Import): i = imports.ImportWrapper(self._evaluator, definition) if len(i.import_path) > 1 or not fast: diff --git a/jedi/cache.py b/jedi/cache.py index fd95670c..dae5c085 100644 --- a/jedi/cache.py +++ b/jedi/cache.py @@ -243,7 +243,7 @@ def save_parser(path, name, parser, pickling=True): class ParserPickling(object): - version = 16 + version = 17 """ Version number (integer) for file system cache. diff --git a/jedi/evaluate/helpers.py b/jedi/evaluate/helpers.py index a2dfa2cb..29eb19b2 100644 --- a/jedi/evaluate/helpers.py +++ b/jedi/evaluate/helpers.py @@ -305,7 +305,6 @@ class FakeImport(pr.Import): class FakeName(pr.Name): def __init__(self, name_or_names, parent=None, start_pos=(0, 0)): - start_pos = 0, 0 if isinstance(name_or_names, list): names = [(n, start_pos) for n in name_or_names] else: diff --git a/jedi/evaluate/representation.py b/jedi/evaluate/representation.py index 5c194d27..556e072d 100644 --- a/jedi/evaluate/representation.py +++ b/jedi/evaluate/representation.py @@ -291,6 +291,12 @@ class InstanceElement(use_metaclass(CachedMetaClass, pr.Base)): return [get_instance_el(self._evaluator, self.instance, command, self.is_class_var) for command in self.var.expression_list()] + @property + @underscore_memoization + def name(self): + name = self.var.name + return helpers.FakeName(unicode(name), self, name.start_pos) + def __iter__(self): for el in self.var.__iter__(): yield get_instance_el(self._evaluator, self.instance, el,