summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEevee (Alex Munroe) <amunroe@yelp.com>2014-04-08 11:55:18 -0700
committerEevee (Alex Munroe) <amunroe@yelp.com>2014-07-01 17:33:00 -0700
commitbbc107fb2afed934eef85c3682aa4b3a20cbe450 (patch)
treee68d5ad87b3088cd43249f2f9f4079730ae1a6a9
parent68efc111d35ab4a1bf31e0c95ee188e019bf3e37 (diff)
downloadastroid-git-bbc107fb2afed934eef85c3682aa4b3a20cbe450.tar.gz
Miscellaneous node rebuilder microoptimizations.
-rw-r--r--rebuilder.py3
-rw-r--r--scoped_nodes.py9
2 files changed, 8 insertions, 4 deletions
diff --git a/rebuilder.py b/rebuilder.py
index cef00f8c..c581eb98 100644
--- a/rebuilder.py
+++ b/rebuilder.py
@@ -292,7 +292,8 @@ class TreeRebuilder(object):
newnode.starargs = self.visit(node.starargs, newnode)
if node.kwargs is not None:
newnode.kwargs = self.visit(node.kwargs, newnode)
- newnode.args.extend(self.visit(child, newnode) for child in node.keywords)
+ for child in node.keywords:
+ newnode.args.append(self.visit(child, newnode))
return newnode
def visit_class(self, node, parent):
diff --git a/scoped_nodes.py b/scoped_nodes.py
index f5d1c428..60185717 100644
--- a/scoped_nodes.py
+++ b/scoped_nodes.py
@@ -336,13 +336,17 @@ class Module(LocalsDictNodeNG):
return
if sys.version_info < (2, 8):
- def absolute_import_activated(self):
+ @cachedproperty
+ def _absolute_import_activated(self):
for stmt in self.locals.get('absolute_import', ()):
if isinstance(stmt, From) and stmt.modname == '__future__':
return True
return False
else:
- absolute_import_activated = lambda self: True
+ _absolute_import_activated = True
+
+ def absolute_import_activated(self):
+ return self._absolute_import_activated
def import_module(self, modname, relative_only=False, level=None):
"""import the given module considering self as context"""
@@ -574,7 +578,6 @@ class Function(Statement, Lambda):
self.locals = {}
self.args = []
self.body = []
- self.decorators = None
self.name = name
self.doc = doc
self.extra_decorators = []