moved environment defaults to jinja2.defaults
--HG--
branch : trunk
diff --git a/jinja2/ext.py b/jinja2/ext.py
index 7445705..93cde83 100644
--- a/jinja2/ext.py
+++ b/jinja2/ext.py
@@ -12,6 +12,7 @@
"""
from collections import deque
from jinja2 import nodes
+from jinja2.defaults import *
from jinja2.environment import get_spontaneous_environment
from jinja2.runtime import Undefined, concat
from jinja2.exceptions import TemplateAssertionError, TemplateSyntaxError
@@ -343,31 +344,26 @@
:return: an iterator over ``(lineno, funcname, message, comments)`` tuples.
(comments will be empty currently)
"""
- encoding = options.get('encoding', 'utf-8')
-
- have_trans_extension = False
- extensions = []
+ extensions = set()
for extension in options.get('extensions', '').split(','):
extension = extension.strip()
if not extension:
continue
- extension = import_string(extension)
- if extension is InternationalizationExtension:
- have_trans_extension = True
- extensions.append(extension)
- if not have_trans_extension:
- extensions.append(InternationalizationExtension)
+ extensions.add(import_string(extension))
+ if InternationalizationExtension not in extensions:
+ extensions.add(InternationalizationExtension)
environment = get_spontaneous_environment(
- options.get('block_start_string', '{%'),
- options.get('block_end_string', '%}'),
- options.get('variable_start_string', '{{'),
- options.get('variable_end_string', '}}'),
- options.get('comment_start_string', '{#'),
- options.get('comment_end_string', '#}'),
- options.get('line_statement_prefix') or None,
- options.get('trim_blocks', '').lower() in ('1', 'on', 'yes', 'true'),
- '\n', frozenset(extensions),
+ options.get('block_start_string', BLOCK_START_STRING),
+ options.get('block_end_string', BLOCK_END_STRING),
+ options.get('variable_start_string', VARIABLE_START_STRING),
+ options.get('variable_end_string', VARIABLE_END_STRING),
+ options.get('comment_start_string', COMMENT_START_STRING),
+ options.get('comment_end_string', COMMENT_END_STRING),
+ options.get('line_statement_prefix') or LINE_STATEMENT_PREFIX,
+ str(options.get('trim_blocks', TRIM_BLOCKS)).lower() in \
+ ('1', 'on', 'yes', 'true'),
+ NEWLINE_SEQUENCE, frozenset(extensions),
# fill with defaults so that environments are shared
# with other spontaneus environments. The rest of the
# arguments are optimizer, undefined, finalize, autoescape,
@@ -375,7 +371,8 @@
True, Undefined, None, False, None, 0, False
)
- node = environment.parse(fileobj.read().decode(encoding))
+ source = fileobj.read().decode(options.get('encoding', 'utf-8'))
+ node = environment.parse(source)
for lineno, func, message in extract_from_ast(node, keywords):
yield lineno, func, message, []