added broken copy method
--HG--
branch : trunk
diff --git a/jinja2/nodes.py b/jinja2/nodes.py
index 72edeb6..911f9fc 100644
--- a/jinja2/nodes.py
+++ b/jinja2/nodes.py
@@ -112,6 +112,30 @@
for result in child.find_all(node_type):
yield result
+ def copy(self):
+ """Return a deep copy of the node."""
+ result = object.__new__(self.__class__)
+ for field, value in self.iter_fields():
+ if isinstance(value, Node):
+ new_value = value.copy()
+ elif isinstance(value, list):
+ new_value = []
+ for item in new_value:
+ if isinstance(item, Node):
+ item = item.copy()
+ else:
+ item = copy(item)
+ new_value.append(item)
+ else:
+ new_value = copy(new_value)
+ setattr(result, field, new_value)
+ for attr in self.attributes:
+ try:
+ setattr(result, attr, getattr(self, attr))
+ except AttributeError:
+ pass
+ return result
+
def set_ctx(self, ctx):
"""Reset the context of a node and all child nodes. Per default the
parser will all generate nodes that have a 'load' context as it's the