Python 3: there's no 'unicode'

This commit is contained in:
Marius Gedminas 2015-09-24 12:52:51 +03:00
commit 56f2a25bff

View file

@ -22,7 +22,7 @@ __metaclass__ = type
import ast import ast
import re import re
from six import string_types from six import string_types, text_type, binary_type
from jinja2 import Environment from jinja2 import Environment
from jinja2.loaders import FileSystemLoader from jinja2.loaders import FileSystemLoader
from jinja2.exceptions import TemplateSyntaxError, UndefinedError from jinja2.exceptions import TemplateSyntaxError, UndefinedError
@ -217,10 +217,10 @@ class Templar:
# Don't template unsafe variables, instead drop them back down to # Don't template unsafe variables, instead drop them back down to
# their constituent type. # their constituent type.
if hasattr(variable, '__UNSAFE__'): if hasattr(variable, '__UNSAFE__'):
if isinstance(variable, unicode): if isinstance(variable, text_type):
return unicode(variable) return text_type(variable)
elif isinstance(variable, str): elif isinstance(variable, binary_type):
return str(variable) return bytes(variable)
else: else:
return variable return variable