diff options
author | David Lord <davidism@gmail.com> | 2022-04-04 06:59:47 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-04 06:59:47 -0700 |
commit | 990602f719b4086540287e95f601baefd830d790 (patch) | |
tree | 664012f9de1f3ba31b961865251ec806c695d5bc | |
parent | ea69e41db3840cb51f70a182fb017ac26307c71f (diff) | |
parent | 5d3d2414710c1439105d84efc58e4aba8e453cb3 (diff) | |
download | jinja2-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.rst | 3 | ||||
-rw-r--r-- | src/jinja2/environment.py | 12 | ||||
-rw-r--r-- | src/jinja2/visitor.py | 4 |
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): |