From 89e9ad1c4f761016610620f82029229527a7db4f Mon Sep 17 00:00:00 2001 From: James Brown Date: Wed, 3 Jan 2024 16:54:35 +0800 Subject: [PATCH 1/3] Update runtime.py --- src/jinja2/runtime.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/jinja2/runtime.py b/src/jinja2/runtime.py index a90d15f48..0cd53eb23 100644 --- a/src/jinja2/runtime.py +++ b/src/jinja2/runtime.py @@ -1052,3 +1052,19 @@ class StrictUndefined(Undefined): DebugUndefined.__slots__, StrictUndefined.__slots__, ) + +class NeverUndefined(StrictUndefined): + def __init__(self, *args, **kwargs): + # ARGS: ("parameter 'myvar2' was not provided",) + # KWARGS: {'name': 'myvar2'} + if len(args) == 1: + info = args[0] + elif "name" in kwargs.keys(): + info = f"Undefined variable '{kwargs['name']}" + else: + infoList = ["Not allowing any undefined variable."] + infoList.append(f"ARGS: {args}") + infoList.append(f"KWARGS: {kwargs}") + info = "\n".join(infoList) + + raise Exception(info) From 0bd6223e3b3e7b197a71cbb10b43a0d8d3760ce0 Mon Sep 17 00:00:00 2001 From: James Brown Date: Wed, 3 Jan 2024 16:55:22 +0800 Subject: [PATCH 2/3] Update __init__.py --- src/jinja2/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/jinja2/__init__.py b/src/jinja2/__init__.py index bfa6b2528..5e9a3063f 100644 --- a/src/jinja2/__init__.py +++ b/src/jinja2/__init__.py @@ -26,6 +26,7 @@ from .runtime import DebugUndefined as DebugUndefined from .runtime import make_logging_undefined as make_logging_undefined from .runtime import StrictUndefined as StrictUndefined +from .runtime import NeverUndefined as NeverUndefined from .runtime import Undefined as Undefined from .utils import clear_caches as clear_caches from .utils import is_undefined as is_undefined From c8605419d66901c764566b7cbebbe35e98f5a537 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 3 Jan 2024 09:05:22 +0000 Subject: [PATCH 3/3] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/jinja2/__init__.py | 2 +- src/jinja2/runtime.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/jinja2/__init__.py b/src/jinja2/__init__.py index 5e9a3063f..b9f8afba9 100644 --- a/src/jinja2/__init__.py +++ b/src/jinja2/__init__.py @@ -25,8 +25,8 @@ from .runtime import ChainableUndefined as ChainableUndefined from .runtime import DebugUndefined as DebugUndefined from .runtime import make_logging_undefined as make_logging_undefined -from .runtime import StrictUndefined as StrictUndefined from .runtime import NeverUndefined as NeverUndefined +from .runtime import StrictUndefined as StrictUndefined from .runtime import Undefined as Undefined from .utils import clear_caches as clear_caches from .utils import is_undefined as is_undefined diff --git a/src/jinja2/runtime.py b/src/jinja2/runtime.py index 0cd53eb23..708ffe2ce 100644 --- a/src/jinja2/runtime.py +++ b/src/jinja2/runtime.py @@ -1053,6 +1053,7 @@ class StrictUndefined(Undefined): StrictUndefined.__slots__, ) + class NeverUndefined(StrictUndefined): def __init__(self, *args, **kwargs): # ARGS: ("parameter 'myvar2' was not provided",)