diff --git a/jedi/api/helpers.py b/jedi/api/helpers.py index 407ae738..f00f60d4 100644 --- a/jedi/api/helpers.py +++ b/jedi/api/helpers.py @@ -28,14 +28,14 @@ def get_on_import_stmt(evaluator, user_context, user_stmt, is_like_search=False) import_names = user_stmt.get_all_import_names() kill_count = -1 cur_name_part = None - for i in import_names: - if user_stmt.alias == i: + for name in import_names: + if user_stmt.alias_name_part == name: continue - for name_part in i.names: - if name_part.end_pos >= user_context.position: - if not cur_name_part: - cur_name_part = name_part - kill_count += 1 + + if name.end_pos >= user_context.position: + if not cur_name_part: + cur_name_part = name + kill_count += 1 context = user_context.get_context() just_from = next(context) == 'from' diff --git a/jedi/api/usages.py b/jedi/api/usages.py index e6684299..dc771254 100644 --- a/jedi/api/usages.py +++ b/jedi/api/usages.py @@ -70,11 +70,10 @@ def usages(evaluator, definitions, mods): if isinstance(stmt, pr.Import): count = 0 imps = [] - for i in stmt.get_all_import_names(): - for name_part in i.names: - count += 1 - if unicode(name_part) == search_name: - imps.append((count, name_part)) + for name in stmt.get_all_import_names(): + count += 1 + if unicode(name) == search_name: + imps.append((count, name)) for used_count, name_part in imps: i = imports.ImportWrapper(evaluator, stmt, kill_count=count - used_count, diff --git a/jedi/evaluate/__init__.py b/jedi/evaluate/__init__.py index 0dddcbeb..d4ff0218 100644 --- a/jedi/evaluate/__init__.py +++ b/jedi/evaluate/__init__.py @@ -323,7 +323,7 @@ class Evaluator(object): if stmt.alias_name_part == call_path[0]: return [call_path[0]] - names = stmt.get_all_import_name_parts() + names = stmt.get_all_import_names() # Filter names that are after our Name removed_names = len(names) - names.index(call_path[0]) - 1 i = imports.ImportWrapper(self, stmt, kill_count=removed_names) diff --git a/jedi/evaluate/helpers.py b/jedi/evaluate/helpers.py index 29eb19b2..f39de8ae 100644 --- a/jedi/evaluate/helpers.py +++ b/jedi/evaluate/helpers.py @@ -226,7 +226,7 @@ def get_module_name_parts(module): for stmt_or_import in statements_or_imports: if isinstance(stmt_or_import, pr.Import): for name in stmt_or_import.get_all_import_names(): - name_parts.update(name.names) + name_parts.add(name) else: # Running this ensures that all the expression lists are generated # and the parents are all set. (Important for Lambdas) Howeer, this diff --git a/jedi/parser/representation.py b/jedi/parser/representation.py index 45d0bed2..a380b73f 100644 --- a/jedi/parser/representation.py +++ b/jedi/parser/representation.py @@ -831,20 +831,6 @@ class Import(Simple): return [self.namespace] def get_all_import_names(self): - n = [] - if self.from_ns: - n.append(self.from_ns) - if self.namespace: - n.append(self.namespace) - if self.alias: - n.append(self.alias) - return n - - def get_all_import_name_parts(self): - """ - TODO refactor and use this method, because NamePart will not exist in - the future. - """ n = [] if self.from_ns: n += self.from_ns.names