Index: mojo/public/third_party/jinja2/visitor.py |
diff --git a/mojo/public/third_party/jinja2/visitor.py b/mojo/public/third_party/jinja2/visitor.py |
deleted file mode 100644 |
index 413e7c309dc7fc137aa16c24808e9acd8227aad4..0000000000000000000000000000000000000000 |
--- a/mojo/public/third_party/jinja2/visitor.py |
+++ /dev/null |
@@ -1,87 +0,0 @@ |
-# -*- coding: utf-8 -*- |
-""" |
- jinja2.visitor |
- ~~~~~~~~~~~~~~ |
- |
- This module implements a visitor for the nodes. |
- |
- :copyright: (c) 2010 by the Jinja Team. |
- :license: BSD. |
-""" |
-from jinja2.nodes import Node |
- |
- |
-class NodeVisitor(object): |
- """Walks the abstract syntax tree and call visitor functions for every |
- node found. The visitor functions may return values which will be |
- forwarded by the `visit` method. |
- |
- Per default the visitor functions for the nodes are ``'visit_'`` + |
- class name of the node. So a `TryFinally` node visit function would |
- be `visit_TryFinally`. This behavior can be changed by overriding |
- the `get_visitor` function. If no visitor function exists for a node |
- (return value `None`) the `generic_visit` visitor is used instead. |
- """ |
- |
- def get_visitor(self, node): |
- """Return the visitor function for this node or `None` if no visitor |
- exists for this node. In that case the generic visit function is |
- used instead. |
- """ |
- method = 'visit_' + node.__class__.__name__ |
- return getattr(self, method, None) |
- |
- def visit(self, node, *args, **kwargs): |
- """Visit a node.""" |
- f = self.get_visitor(node) |
- if f is not None: |
- return f(node, *args, **kwargs) |
- return self.generic_visit(node, *args, **kwargs) |
- |
- def generic_visit(self, node, *args, **kwargs): |
- """Called if no explicit visitor function exists for a node.""" |
- for node in node.iter_child_nodes(): |
- self.visit(node, *args, **kwargs) |
- |
- |
-class NodeTransformer(NodeVisitor): |
- """Walks the abstract syntax tree and allows modifications of nodes. |
- |
- The `NodeTransformer` will walk the AST and use the return value of the |
- visitor functions to replace or remove the old node. If the return |
- value of the visitor function is `None` the node will be removed |
- from the previous location otherwise it's replaced with the return |
- value. The return value may be the original node in which case no |
- replacement takes place. |
- """ |
- |
- def generic_visit(self, node, *args, **kwargs): |
- for field, old_value in node.iter_fields(): |
- if isinstance(old_value, list): |
- new_values = [] |
- for value in old_value: |
- if isinstance(value, Node): |
- value = self.visit(value, *args, **kwargs) |
- if value is None: |
- continue |
- elif not isinstance(value, Node): |
- new_values.extend(value) |
- continue |
- new_values.append(value) |
- old_value[:] = new_values |
- elif isinstance(old_value, Node): |
- new_node = self.visit(old_value, *args, **kwargs) |
- if new_node is None: |
- delattr(node, field) |
- else: |
- setattr(node, field, new_node) |
- return node |
- |
- def visit_list(self, node, *args, **kwargs): |
- """As transformers may return lists in some places this method |
- can be used to enforce a list as return value. |
- """ |
- rv = self.visit(node, *args, **kwargs) |
- if not isinstance(rv, list): |
- rv = [rv] |
- return rv |