def _process_for(self, node, **kwargs):
<EOL>previous_stored_names = self.stored_names.copy()<EOL>with self._execution():<EOL><INDENT>self.output.write('<STR_LIT>')<EOL>if is_method_call(node.iter, dict.keys.__name__):<EOL><INDENT>self.output.write('<STR_LIT>')<EOL><DEDENT>self._process_node(node.iter, **kwargs)<EOL>if is_method_call(node.iter, dict.keys.__name__):<EOL><INDENT>self.output.write('<STR_LIT:)>')<EOL><DEDENT>self.output.write('<STR_LIT:U+002C>')<EOL>self.output.write('<STR_LIT>')<EOL>self.output.write('<STR_LIT:(>')<EOL>if isinstance(node.target, nodes.Tuple):<EOL><INDENT>if len(node.target.items) > <NUM_LIT:2>:<EOL><INDENT>raise Exception('<STR_LIT>')<EOL><DEDENT>for i, item in enumerate(reversed(node.target.items)):<EOL><INDENT>self._process_node(item, **kwargs)<EOL>if i < len(node.target.items) - <NUM_LIT:1>:<EOL><INDENT>self.output.write('<STR_LIT:U+002C>')<EOL><DEDENT><DEDENT><DEDENT>else:<EOL><INDENT>self._process_node(node.target, **kwargs)<EOL><DEDENT>self.output.write('<STR_LIT:)>')<EOL>self.output.write('<STR_LIT:{>')<EOL>if node.test:<EOL><INDENT>self.output.write('<STR_LIT>')<EOL>self._process_node(node.test, **kwargs)<EOL>self.output.write('<STR_LIT>')<EOL><DEDENT><DEDENT>assigns = node.target.items if isinstance(node.target, nodes.Tuple) else [node.target]<EOL>with self._scoped_variables(assigns, **kwargs):<EOL><INDENT>for n in node.body:<EOL><INDENT>self._process_node(n, **kwargs)<EOL><DEDENT><DEDENT>with self._execution():<EOL><INDENT>self.output.write('<STR_LIT:}>')<EOL>self.output.write('<STR_LIT:)>')<EOL>self.output.write('<STR_LIT:;>')<EOL><DEDENT>self.stored_names = previous_stored_names<EOL>
Processes a for loop. e.g.
    {% for number in numbers %}
        {{ number }}
    {% endfor %}
    {% for key, value in somemap.items() %}
        {{ key }} -> {{ value }}
    {% %}