summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Lord <davidism@gmail.com>2022-04-04 06:59:47 -0700
committerGitHub <noreply@github.com>2022-04-04 06:59:47 -0700
commit990602f719b4086540287e95f601baefd830d790 (patch)
tree664012f9de1f3ba31b961865251ec806c695d5bc
parentea69e41db3840cb51f70a182fb017ac26307c71f (diff)
parent5d3d2414710c1439105d84efc58e4aba8e453cb3 (diff)
downloadjinja2-990602f719b4086540287e95f601baefd830d790.tar.gz
Merge pull request #1647 from Tom-Brouwer/202204/add-missing-overlay-options
Add missing environment options to the Environment.overlay method
-rw-r--r--CHANGES.rst3
-rw-r--r--src/jinja2/environment.py12
-rw-r--r--src/jinja2/visitor.py4
3 files changed, 16 insertions, 3 deletions
diff --git a/CHANGES.rst b/CHANGES.rst
index cec1ad8..da7d0a6 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -5,6 +5,9 @@ Version 3.1.2
Unreleased
+- Add parameters to ``Environment.overlay`` to match ``__init__``.
+ :issue:`1645`
+
Version 3.1.1
-------------
diff --git a/src/jinja2/environment.py b/src/jinja2/environment.py
index 9dd455a..ea04e8b 100644
--- a/src/jinja2/environment.py
+++ b/src/jinja2/environment.py
@@ -393,6 +393,8 @@ class Environment:
line_comment_prefix: t.Optional[str] = missing,
trim_blocks: bool = missing,
lstrip_blocks: bool = missing,
+ newline_sequence: "te.Literal['\\n', '\\r\\n', '\\r']" = missing,
+ keep_trailing_newline: bool = missing,
extensions: t.Sequence[t.Union[str, t.Type["Extension"]]] = missing,
optimized: bool = missing,
undefined: t.Type[Undefined] = missing,
@@ -402,6 +404,7 @@ class Environment:
cache_size: int = missing,
auto_reload: bool = missing,
bytecode_cache: t.Optional["BytecodeCache"] = missing,
+ enable_async: bool = False,
) -> "Environment":
"""Create a new overlay environment that shares all the data with the
current environment except for cache and the overridden attributes.
@@ -413,9 +416,13 @@ class Environment:
up completely. Not all attributes are truly linked, some are just
copied over so modifications on the original environment may not shine
through.
+
+ .. versionchanged:: 3.1.2
+ Added the ``newline_sequence``,, ``keep_trailing_newline``,
+ and ``enable_async`` parameters to match ``__init__``.
"""
args = dict(locals())
- del args["self"], args["cache_size"], args["extensions"]
+ del args["self"], args["cache_size"], args["extensions"], args["enable_async"]
rv = object.__new__(self.__class__)
rv.__dict__.update(self.__dict__)
@@ -437,6 +444,9 @@ class Environment:
if extensions is not missing:
rv.extensions.update(load_extensions(rv, extensions))
+ if enable_async is not missing:
+ rv.is_async = enable_async
+
return _environment_config_check(rv)
@property
diff --git a/src/jinja2/visitor.py b/src/jinja2/visitor.py
index 71e341e..17c6aab 100644
--- a/src/jinja2/visitor.py
+++ b/src/jinja2/visitor.py
@@ -43,8 +43,8 @@ class NodeVisitor:
def generic_visit(self, node: Node, *args: t.Any, **kwargs: t.Any) -> t.Any:
"""Called if no explicit visitor function exists for a node."""
- for node in node.iter_child_nodes():
- self.visit(node, *args, **kwargs)
+ for child_node in node.iter_child_nodes():
+ self.visit(child_node, *args, **kwargs)
class NodeTransformer(NodeVisitor):