diff options
| author | Claudiu Popa <pcmanticore@gmail.com> | 2016-01-04 10:43:36 +0200 |
|---|---|---|
| committer | Claudiu Popa <pcmanticore@gmail.com> | 2016-01-04 10:45:53 +0200 |
| commit | 0a55e866e32548ea2de39db529802c22f2041b7f (patch) | |
| tree | d14056a1cb178461ce5cbfe12cb8f145b94f4f1c | |
| parent | 95f8a878bd496af39b700de2748fc315289a11cc (diff) | |
| download | astroid-git-0a55e866e32548ea2de39db529802c22f2041b7f.tar.gz | |
Add .builtins() method to the manager, for retrieving the builtins module. Close #300
| -rw-r--r-- | astroid/brain/brain_builtin_inference.py | 2 | ||||
| -rw-r--r-- | astroid/interpreter/lookup.py | 2 | ||||
| -rw-r--r-- | astroid/interpreter/objects.py | 6 | ||||
| -rw-r--r-- | astroid/interpreter/util.py | 2 | ||||
| -rw-r--r-- | astroid/manager.py | 7 | ||||
| -rw-r--r-- | astroid/tests/unittest_manager.py | 4 | ||||
| -rw-r--r-- | astroid/tree/node_classes.py | 14 |
7 files changed, 24 insertions, 13 deletions
diff --git a/astroid/brain/brain_builtin_inference.py b/astroid/brain/brain_builtin_inference.py index 0d1e890d..fef4183c 100644 --- a/astroid/brain/brain_builtin_inference.py +++ b/astroid/brain/brain_builtin_inference.py @@ -82,7 +82,7 @@ def _extend_str(class_node, rvalue): method.parent = class_node def extend_builtins(class_transforms): - builtin_ast = MANAGER.astroid_cache[BUILTINS] + builtin_ast = MANAGER.builtins() for class_name, transform in class_transforms.items(): transform(builtin_ast[class_name]) diff --git a/astroid/interpreter/lookup.py b/astroid/interpreter/lookup.py index 11991eb5..d8e5931a 100644 --- a/astroid/interpreter/lookup.py +++ b/astroid/interpreter/lookup.py @@ -145,7 +145,7 @@ def builtin_lookup(name): """ from astroid import MANAGER # TODO(cpopa) needs to be removed. - builtin_astroid = MANAGER.ast_from_module(six.moves.builtins) + builtin_astroid = MANAGER.builtins() if name == '__dict__': return builtin_astroid, () stmts = builtin_astroid.locals.get(name, ()) diff --git a/astroid/interpreter/objects.py b/astroid/interpreter/objects.py index 7af5b687..b097273b 100644 --- a/astroid/interpreter/objects.py +++ b/astroid/interpreter/objects.py @@ -363,7 +363,7 @@ class Generator(BaseInstance): @decorators.cachedproperty def _proxied(self): - builtins = MANAGER.astroid_cache[BUILTINS] + builtins = MANAGER.builtins() return builtins.getattr(types.GeneratorType.__name__)[0] @@ -376,7 +376,7 @@ class FrozenSet(base.BaseContainer, Instance): @decorators.cachedproperty def _proxied(self): - builtins = MANAGER.astroid_cache[BUILTINS] + builtins = MANAGER.builtins() return builtins.getattr('frozenset')[0] @@ -441,7 +441,7 @@ class Super(base.NodeNG): @decorators.cachedproperty def _proxied(self): - builtins = MANAGER.astroid_cache[BUILTINS] + builtins = MANAGER.builtins() return builtins.getattr('super')[0] def pytype(self): diff --git a/astroid/interpreter/util.py b/astroid/interpreter/util.py index b6613484..93ff831b 100644 --- a/astroid/interpreter/util.py +++ b/astroid/interpreter/util.py @@ -227,7 +227,7 @@ def is_supertype(type1, type2): def _object_type(node, context=None): context = context or contextmod.InferenceContext() - builtins_ast = MANAGER.astroid_cache[BUILTINS] + builtins_ast = MANAGER.builtins() for inferred in node.infer(context=context): if isinstance(inferred, treeabc.ClassDef): diff --git a/astroid/manager.py b/astroid/manager.py index ed1c2739..533d102a 100644 --- a/astroid/manager.py +++ b/astroid/manager.py @@ -205,6 +205,13 @@ class AstroidManager(object): self.astroid_cache[modname] = mock_ast return mock_ast + def builtins(self): + """Get the builtins module + + This module is special since it's always built. + """ + return self.astroid_cache[six.moves.builtins.__name__] + def register_failed_import_hook(self, hook): """Registers a hook to resolve imports that cannot be found otherwise. diff --git a/astroid/tests/unittest_manager.py b/astroid/tests/unittest_manager.py index cdc03e64..12674516 100644 --- a/astroid/tests/unittest_manager.py +++ b/astroid/tests/unittest_manager.py @@ -173,6 +173,10 @@ class AstroidManagerTest(resources.SysPathSetup, self.manager.ast_from_module_name('foo.bar.baz') del self.manager._failed_import_hooks[0] + def test_builtins(self): + builtins_module = self.manager.builtins() + self.assertEqual(builtins_module.name, BUILTINS) + class BorgAstroidManagerTC(unittest.TestCase): diff --git a/astroid/tree/node_classes.py b/astroid/tree/node_classes.py index 07237384..f2261450 100644 --- a/astroid/tree/node_classes.py +++ b/astroid/tree/node_classes.py @@ -550,7 +550,7 @@ class Const(base.NodeNG, objects.BaseInstance): @decorators.cachedproperty def _proxied(self): - builtins = MANAGER.astroid_cache[BUILTINS] + builtins = MANAGER.builtins() return builtins.getattr(type(self.value).__name__)[0] @@ -564,7 +564,7 @@ class NameConstant(Const): # @decorators.cachedproperty # def _proxied(self): # return self - # # builtins = MANAGER.astroid_cache[BUILTINS] + # # builtins = MANAGER.builtins() # # return builtins.getattr(str(self.value))[0] @@ -677,7 +677,7 @@ class Dict(base.NodeNG, objects.BaseInstance): @decorators.cachedproperty def _proxied(self): - builtins = MANAGER.astroid_cache[BUILTINS] + builtins = MANAGER.builtins() return builtins.getattr('dict')[0] @@ -956,7 +956,7 @@ class List(base.BaseContainer, AssignedStmtsMixin, objects.BaseInstance): @decorators.cachedproperty def _proxied(self): - builtins = MANAGER.astroid_cache[BUILTINS] + builtins = MANAGER.builtins() return builtins.getattr('list')[0] @@ -1044,7 +1044,7 @@ class Set(base.BaseContainer, objects.BaseInstance): @decorators.cachedproperty def _proxied(self): - builtins = MANAGER.astroid_cache[BUILTINS] + builtins = MANAGER.builtins() return builtins.getattr('set')[0] @@ -1069,7 +1069,7 @@ class Slice(base.NodeNG): @decorators.cachedproperty def _proxied(self): - builtins = MANAGER.astroid_cache[BUILTINS] + builtins = MANAGER.builtins() return builtins.getattr('slice')[0] def pytype(self): @@ -1196,7 +1196,7 @@ class Tuple(base.BaseContainer, AssignedStmtsMixin, objects.BaseInstance): @decorators.cachedproperty def _proxied(self): - builtins = MANAGER.astroid_cache[BUILTINS] + builtins = MANAGER.builtins() return builtins.getattr('tuple')[0] |
