python 3 port: automated changes by a slightly modified python-modernize
(replacing unicode with six.text_type, but not replacing u"" by six.u(""))
diff --git a/jinja2/compiler.py b/jinja2/compiler.py
index b21cb38..35f7d02 100644
--- a/jinja2/compiler.py
+++ b/jinja2/compiler.py
@@ -16,6 +16,9 @@
from jinja2.visitor import NodeVisitor
from jinja2.exceptions import TemplateAssertionError
from jinja2.utils import Markup, concat, escape, is_python_keyword, next
+import six
+from six.moves import map
+from six.moves import zip
operators = {
@@ -30,7 +33,7 @@
}
try:
- exec '(0 if 0 else 0)'
+ exec('(0 if 0 else 0)')
except SyntaxError:
have_condexpr = False
else:
@@ -51,7 +54,7 @@
def f():
if 0: dummy(x)
return f
-unoptimize_before_dead_code = bool(unoptimize_before_dead_code().func_closure)
+unoptimize_before_dead_code = bool(unoptimize_before_dead_code().__closure__)
def generate(node, environment, name, filename, stream=None,
@@ -78,7 +81,7 @@
return False
return True
elif isinstance(value, dict):
- for key, value in value.iteritems():
+ for key, value in six.iteritems(value):
if not has_safe_repr(key):
return False
if not has_safe_repr(value):
@@ -542,7 +545,7 @@
self.write(', ')
self.visit(kwarg, frame)
if extra_kwargs is not None:
- for key, value in extra_kwargs.iteritems():
+ for key, value in six.iteritems(extra_kwargs):
self.write(', %s=%s' % (key, value))
if node.dyn_args:
self.write(', *')
@@ -558,7 +561,7 @@
self.visit(kwarg.value, frame)
self.write(', ')
if extra_kwargs is not None:
- for key, value in extra_kwargs.iteritems():
+ for key, value in six.iteritems(extra_kwargs):
self.write('%r: %s, ' % (key, value))
if node.dyn_kwargs is not None:
self.write('}, **')
@@ -625,7 +628,7 @@
def pop_scope(self, aliases, frame):
"""Restore all aliases and delete unused variables."""
- for name, alias in aliases.iteritems():
+ for name, alias in six.iteritems(aliases):
self.writeline('l_%s = %s' % (name, alias))
to_delete = set()
for name in frame.identifiers.declared_locally:
@@ -827,7 +830,7 @@
self.outdent(2 + (not self.has_known_extends))
# at this point we now have the blocks collected and can visit them too.
- for name, block in self.blocks.iteritems():
+ for name, block in six.iteritems(self.blocks):
block_frame = Frame(eval_ctx)
block_frame.inspect(block.body)
block_frame.block = name
@@ -1216,7 +1219,7 @@
return
if self.environment.finalize:
- finalize = lambda x: unicode(self.environment.finalize(x))
+ finalize = lambda x: six.text_type(self.environment.finalize(x))
else:
finalize = unicode