From f72816a702ca32fa7e3fcbd140e4721ea3103a58 Mon Sep 17 00:00:00 2001 From: David Halter Date: Tue, 6 Aug 2013 18:44:34 +0430 Subject: [PATCH] fix builtin module imports, fixes davidhalter/jedi-vim#152 --- jedi/imports.py | 11 ++++++++--- test/completion/imports.py | 4 ++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/jedi/imports.py b/jedi/imports.py index b9ce1db9..bed6fd0c 100644 --- a/jedi/imports.py +++ b/jedi/imports.py @@ -149,13 +149,18 @@ class ImportPath(pr.Base): Get the names of all modules in the search_path. This means file names and not names defined in the files. """ + def generate_name(name): + return pr.Name(self.GlobalNamespace, [(name, inf_pos)], + inf_pos, inf_pos, self.import_stmt) + if not search_path: search_path = self.sys_path_with_modifications() names = [] + inf_pos = float('inf'), float('inf') for module_loader, name, is_pkg in pkgutil.iter_modules(search_path): - inf_pos = (float('inf'), float('inf')) - names.append(pr.Name(self.GlobalNamespace, [(name, inf_pos)], - inf_pos, inf_pos, self.import_stmt)) + names.append(generate_name(name)) + # add builtin module names + names += [generate_name(name) for name in sys.builtin_module_names] return names def sys_path_with_modifications(self): diff --git a/test/completion/imports.py b/test/completion/imports.py index 83f7d5e9..95be6668 100644 --- a/test/completion/imports.py +++ b/test/completion/imports.py @@ -67,6 +67,10 @@ def scope_nested2(): #? [] import_tree.rename1 +def builtin_test(): + #? ['math'] + import math + # ----------------- # std lib modules # -----------------