diff options
Diffstat (limited to 'dev-python/cheetah3/files/cheetah3-3.3.3-py313.patch')
-rw-r--r-- | dev-python/cheetah3/files/cheetah3-3.3.3-py313.patch | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/dev-python/cheetah3/files/cheetah3-3.3.3-py313.patch b/dev-python/cheetah3/files/cheetah3-3.3.3-py313.patch new file mode 100644 index 000000000000..591cab07286a --- /dev/null +++ b/dev-python/cheetah3/files/cheetah3-3.3.3-py313.patch @@ -0,0 +1,63 @@ +From ee2739b73bafbcb9a8cc5511d5e03e6b0d9bced1 Mon Sep 17 00:00:00 2001 +From: Oleg Broytman <phd@phdru.name> +Date: Sat, 22 Jun 2024 05:47:51 +0300 +Subject: [PATCH] Fix(NameMapper): Fix mapping test + +Python 3.13 brought a new mapping type `FrameLocalsProxy`. + +Fixes: #60. + +[skip ci] +--- + Cheetah/NameMapper.py | 8 +++++++- + docs/news.rst | 3 +++ + 2 files changed, 10 insertions(+), 1 deletion(-) + +diff --git a/Cheetah/NameMapper.py b/Cheetah/NameMapper.py +index 7c09e37d..32c1f366 100755 +--- a/Cheetah/NameMapper.py ++++ b/Cheetah/NameMapper.py +@@ -140,8 +140,8 @@ + been compiled or falls back to the Python version if not. + """ + +-import inspect + from pprint import pformat ++import inspect + import sys + + from .compat import PY2 +@@ -149,6 +149,8 @@ + from collections import Mapping + else: + from collections.abc import Mapping ++ if sys.version_info[:2] >= (3, 13): ++ from collections.abc import MutableMapping + + _INCLUDE_NAMESPACE_REPR_IN_NOTFOUND_EXCEPTIONS = False + _ALLOW_WRAPPING_OF_NOTFOUND_EXCEPTIONS = True +@@ -319,6 +321,10 @@ def __valueForName(): + try: + if not frame: + frame = inspect.stack()[1][0] ++ if sys.version_info[:2] >= (3, 13): ++ FrameLocalsProxy = frame.f_locals ++ if not isinstance(FrameLocalsProxy, Mapping): ++ MutableMapping.register(type(FrameLocalsProxy)) + key = name.split('.')[0] + for namespace in _namespaces(frame, searchList): + if hasKey(namespace, key): +diff --git a/docs/news.rst b/docs/news.rst +index 8adf5806..78f6e5ff 100644 +--- a/docs/news.rst ++++ b/docs/news.rst +@@ -15,6 +15,9 @@ Bug fixes: + - Fixed ``_namemapper.c``: Silent an error + from ``PyMapping_HasKeyString`` under Python 3.13+. + ++ - Fixed mapping test in ``NameMapper.py``: ++ Python 3.13 brough a new mapping type ``FrameLocalsProxy``. ++ + Tests: + + - tox: Run tests under Python 3.13. |