From: Armin Ronacher Date: Mon, 19 May 2008 06:37:19 +0000 (+0200) Subject: temporary identifiers are prefixed with "t_" now and the _node_setup_finished hack... X-Git-Tag: 2.0rc1~42 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=8a1d27f1c66633c0f6f4fd885f6ac76e926ddfc3;p=jinja2.git temporary identifiers are prefixed with "t_" now and the _node_setup_finished hack went away --HG-- branch : trunk --- diff --git a/jinja2/compiler.py b/jinja2/compiler.py index 8dd31df..e0f02f3 100644 --- a/jinja2/compiler.py +++ b/jinja2/compiler.py @@ -355,7 +355,7 @@ class CodeGenerator(NodeVisitor): def temporary_identifier(self): """Get a new unique identifier.""" self._last_identifier += 1 - return 't%d' % self._last_identifier + return 't_%d' % self._last_identifier def buffer(self, frame): """Enable buffering for the frame from that point onwards.""" diff --git a/jinja2/lexer.py b/jinja2/lexer.py index 2719dcc..61e1bca 100644 --- a/jinja2/lexer.py +++ b/jinja2/lexer.py @@ -92,10 +92,7 @@ class Token(tuple): return tuple.__new__(cls, (lineno, intern(str(type)), value)) def __str__(self): - from jinja.lexer import keywords, reverse_operators - if self.type in keywords: - return self.type - elif self.type in reverse_operators: + if self.type in reverse_operators: return reverse_operators[self.type] elif self.type is 'name': return self.value diff --git a/jinja2/nodes.py b/jinja2/nodes.py index 960a540..969d785 100644 --- a/jinja2/nodes.py +++ b/jinja2/nodes.py @@ -48,10 +48,6 @@ _cmpop_to_func = { } -# if this is `True` no new Node classes can be created. -_node_setup_finished = False - - class Impossible(Exception): """Raised if the node could not perform a requested action.""" @@ -62,8 +58,6 @@ class NodeType(type): automatically forwarded to the child.""" def __new__(cls, name, bases, d): - if __debug__ and _node_setup_finished: - raise TypeError('Can\'t create custom node types.') for attr in 'fields', 'attributes': storage = [] storage.extend(getattr(bases[0], attr, ())) @@ -808,5 +802,7 @@ class Break(Stmt): """Break a loop.""" -# and close down -_node_setup_finished = True +# make sure nobody creates custom nodes +def _failing_new(*args, **kwargs): + raise TypeError('can\'t create custom node types') +NodeType.__new__ = staticmethod(_failing_new); del _failing_new