summaryrefslogtreecommitdiff
path: root/mako/template.py
diff options
context:
space:
mode:
Diffstat (limited to 'mako/template.py')
-rw-r--r--mako/template.py61
1 files changed, 12 insertions, 49 deletions
diff --git a/mako/template.py b/mako/template.py
index 5ed2320..1f11e73 100644
--- a/mako/template.py
+++ b/mako/template.py
@@ -25,7 +25,7 @@ from mako import util
from mako.lexer import Lexer
-class Template(object):
+class Template:
r"""Represents a compiled template.
@@ -55,11 +55,10 @@ class Template(object):
:param bytestring_passthrough: When ``True``, and ``output_encoding`` is
set to ``None``, and :meth:`.Template.render` is used to render,
- the `StringIO` or `cStringIO` buffer will be used instead of the
+ the `StringIO` buffer will be used instead of the
default "fast" buffer. This allows raw bytestrings in the
output stream, such as in expressions, to pass straight
- through to the buffer. This flag is forced
- to ``True`` if ``disable_unicode`` is also configured.
+ through to the buffer.
.. versionadded:: 0.4
Added to provide the same behavior as that of the previous series.
@@ -94,9 +93,6 @@ class Template(object):
:param default_filters: List of string filter names that will
be applied to all expressions. See :ref:`filtering_default_filters`.
- :param disable_unicode: Disables all awareness of Python Unicode
- objects. See :ref:`unicode_disabled`.
-
:param enable_loop: When ``True``, enable the ``loop`` context variable.
This can be set to ``False`` to support templates that may
be making usage of the name "``loop``". Individual templates can
@@ -255,7 +251,6 @@ class Template(object):
cache_url=None,
module_filename=None,
input_encoding=None,
- disable_unicode=False,
module_writer=None,
bytestring_passthrough=False,
default_filters=None,
@@ -294,26 +289,13 @@ class Template(object):
self.input_encoding = input_encoding
self.output_encoding = output_encoding
self.encoding_errors = encoding_errors
- self.disable_unicode = disable_unicode
- self.bytestring_passthrough = bytestring_passthrough or disable_unicode
+ self.bytestring_passthrough = bytestring_passthrough
self.enable_loop = enable_loop
self.strict_undefined = strict_undefined
self.module_writer = module_writer
- if compat.py3k and disable_unicode:
- raise exceptions.UnsupportedError(
- "Mako for Python 3 does not " "support disabling Unicode"
- )
- elif output_encoding and disable_unicode:
- raise exceptions.UnsupportedError(
- "output_encoding must be set to "
- "None when disable_unicode is used."
- )
if default_filters is None:
- if compat.py3k or self.disable_unicode:
- self.default_filters = ["str"]
- else:
- self.default_filters = ["unicode"]
+ self.default_filters = ["str"]
else:
self.default_filters = default_filters
self.buffer_filters = buffer_filters
@@ -463,7 +445,7 @@ class Template(object):
If the template specifies an output encoding, the string
will be encoded accordingly, else the output is raw (raw
- output uses `cStringIO` and can't handle multibyte
+ output uses `StringIO` and can't handle multibyte
characters). A :class:`.Context` object is created corresponding
to the given data. Arguments that are explicitly declared
by this template's internal rendering method are also
@@ -541,7 +523,6 @@ class ModuleTemplate(Template):
template_source=None,
output_encoding=None,
encoding_errors="strict",
- disable_unicode=False,
bytestring_passthrough=False,
format_exceptions=False,
error_handler=None,
@@ -559,20 +540,9 @@ class ModuleTemplate(Template):
self.input_encoding = module._source_encoding
self.output_encoding = output_encoding
self.encoding_errors = encoding_errors
- self.disable_unicode = disable_unicode
- self.bytestring_passthrough = bytestring_passthrough or disable_unicode
+ self.bytestring_passthrough = bytestring_passthrough
self.enable_loop = module._enable_loop
- if compat.py3k and disable_unicode:
- raise exceptions.UnsupportedError(
- "Mako for Python 3 does not " "support disabling Unicode"
- )
- elif output_encoding and disable_unicode:
- raise exceptions.UnsupportedError(
- "output_encoding must be set to "
- "None when disable_unicode is used."
- )
-
self.module = module
self.filename = template_filename
ModuleInfo(
@@ -622,7 +592,7 @@ class DefTemplate(Template):
return self.parent.get_def(name)
-class ModuleInfo(object):
+class ModuleInfo:
"""Stores information about a module currently loaded into
memory, provides reverse lookups of template source, module
@@ -683,7 +653,7 @@ class ModuleInfo(object):
def source(self):
if self.template_source is not None:
if self.module._source_encoding and not isinstance(
- self.template_source, compat.text_type
+ self.template_source, str
):
return self.template_source.decode(
self.module._source_encoding
@@ -702,7 +672,6 @@ def _compile(template, text, filename, generate_magic_comment):
lexer = template.lexer_cls(
text,
filename,
- disable_unicode=template.disable_unicode,
input_encoding=template.input_encoding,
preprocessor=template.preprocessor,
)
@@ -717,7 +686,6 @@ def _compile(template, text, filename, generate_magic_comment):
future_imports=template.future_imports,
source_encoding=lexer.encoding,
generate_magic_comment=generate_magic_comment,
- disable_unicode=template.disable_unicode,
strict_undefined=template.strict_undefined,
enable_loop=template.enable_loop,
reserved_names=template.reserved_names,
@@ -731,12 +699,10 @@ def _compile_text(template, text, filename):
template,
text,
filename,
- generate_magic_comment=template.disable_unicode,
+ generate_magic_comment=False,
)
cid = identifier
- if not compat.py3k and isinstance(cid, compat.text_type):
- cid = cid.encode()
module = types.ModuleType(cid)
code = compile(source, cid, "exec")
@@ -750,7 +716,7 @@ def _compile_module_file(template, text, filename, outputpath, module_writer):
template, text, filename, generate_magic_comment=True
)
- if isinstance(source, compat.text_type):
+ if isinstance(source, str):
source = source.encode(lexer.encoding or "ascii")
if module_writer:
@@ -767,10 +733,7 @@ def _compile_module_file(template, text, filename, outputpath, module_writer):
def _get_module_info_from_callable(callable_):
- if compat.py3k:
- return _get_module_info(callable_.__globals__["__name__"])
- else:
- return _get_module_info(callable_.func_globals["__name__"])
+ return _get_module_info(callable_.__globals__["__name__"])
def _get_module_info(filename):