From bbc107fb2afed934eef85c3682aa4b3a20cbe450 Mon Sep 17 00:00:00 2001 From: "Eevee (Alex Munroe)" Date: Tue, 8 Apr 2014 11:55:18 -0700 Subject: Miscellaneous node rebuilder microoptimizations. --- rebuilder.py | 3 ++- scoped_nodes.py | 9 ++++++--- 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 = [] -- cgit v1.2.1