summaryrefslogtreecommitdiff
path: root/django/template
diff options
context:
space:
mode:
authorAymeric Augustin <aymeric.augustin@m4x.org>2014-11-22 21:21:30 +0100
committerAymeric Augustin <aymeric.augustin@m4x.org>2014-11-23 11:52:25 +0100
commit240ea67ce03b2fe3daeabd7bc6fd1efd95997013 (patch)
tree583a00b1dac505445b58e403631dac0088691d7b /django/template
parent5b1bb40216ff452e34198345fdad63e2be370d2c (diff)
Move compile_string into the Engine class.
Diffstat (limited to 'django/template')
-rw-r--r--django/template/__init__.py4
-rw-r--r--django/template/base.py14
-rw-r--r--django/template/engine.py16
3 files changed, 18 insertions, 16 deletions
diff --git a/django/template/__init__.py b/django/template/__init__.py
index 0be11cb8e6..a43ff50f01 100644
--- a/django/template/__init__.py
+++ b/django/template/__init__.py
@@ -69,7 +69,7 @@ from django.template.base import (Context, FilterExpression, Lexer, Node, # NOQ
filter_raw_string)
# Compiling templates
-from django.template.base import (compile_string, resolve_variable, # NOQA
+from django.template.base import (resolve_variable, # NOQA
unescape_string_literal, generic_tag_compiler)
# Library management
@@ -77,4 +77,4 @@ from django.template.base import (Library, add_to_builtins, builtins, # NOQA
get_library, get_templatetags_modules, get_text_list, import_library,
libraries)
-__all__ = ('Template', 'Context', 'RequestContext', 'compile_string')
+__all__ = ('Template', 'Context', 'RequestContext')
diff --git a/django/template/base.py b/django/template/base.py
index ef611bc954..6044226254 100644
--- a/django/template/base.py
+++ b/django/template/base.py
@@ -135,7 +135,7 @@ class Template(object):
if engine is None:
from .engine import Engine
engine = Engine.get_default()
- self.nodelist = compile_string(template_string, origin)
+ self.nodelist = engine.compile_string(template_string, origin)
self.name = name
self.origin = origin
self.engine = engine
@@ -165,18 +165,6 @@ class Template(object):
context.engine = None
-def compile_string(template_string, origin):
- "Compiles template_string into NodeList ready for rendering"
- if settings.TEMPLATE_DEBUG:
- from django.template.debug import DebugLexer, DebugParser
- lexer_class, parser_class = DebugLexer, DebugParser
- else:
- lexer_class, parser_class = Lexer, Parser
- lexer = lexer_class(template_string, origin)
- parser = parser_class(lexer.tokenize())
- return parser.parse()
-
-
class Token(object):
def __init__(self, token_type, contents):
# token_type must be TOKEN_TEXT, TOKEN_VAR, TOKEN_BLOCK or
diff --git a/django/template/engine.py b/django/template/engine.py
index 9a0f4fc2f0..ef5bcf628b 100644
--- a/django/template/engine.py
+++ b/django/template/engine.py
@@ -8,7 +8,7 @@ from django.utils.deprecation import RemovedInDjango20Warning
from django.utils.functional import cached_property
from django.utils.module_loading import import_string
-from .base import Context, Template, TemplateDoesNotExist
+from .base import Context, Lexer, Parser, Template, TemplateDoesNotExist
_dirs_undefined = object()
@@ -200,3 +200,17 @@ class Engine(object):
continue
# If we get here, none of the templates could be loaded
raise TemplateDoesNotExist(', '.join(not_found))
+
+ def compile_string(self, template_string, origin):
+ """
+ Compiles template_string into a NodeList ready for rendering.
+ """
+ if settings.TEMPLATE_DEBUG:
+ from .debug import DebugLexer, DebugParser
+ lexer_class, parser_class = DebugLexer, DebugParser
+ else:
+ lexer_class, parser_class = Lexer, Parser
+ lexer = lexer_class(template_string, origin)
+ tokens = lexer.tokenize()
+ parser = parser_class(tokens)
+ return parser.parse()