Update to 2.11.3.

Add patches to build with Python 3.10 (#1907442).
This commit is contained in:
Thomas Moschny 2021-02-06 14:00:59 +01:00
parent 88ca56fd31
commit 93898ae45c
4 changed files with 87 additions and 4 deletions

View File

@ -0,0 +1,27 @@
From 9a99db929323f60553b391c80d0395821121d593 Mon Sep 17 00:00:00 2001
From: Thomas Moschny <thomas.moschny@gmx.de>
Date: Tue, 19 Jan 2021 21:01:18 +0100
Subject: [PATCH] add 'linetable' to the preserved CodeType attributes (#1334)
add 'linetable' to the preserved CodeType attributes
co_linetable replaces co_lnotab as part of PEP 626 in Python 3.10.
---
src/jinja2/debug.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/jinja2/debug.py b/src/jinja2/debug.py
index 5d8aec3..e256617 100644
--- a/src/jinja2/debug.py
+++ b/src/jinja2/debug.py
@@ -137,6 +137,7 @@ def fake_traceback(exc_value, tb, filename, lineno):
"lnotab",
"freevars",
"cellvars",
+ "linetable", # Python 3.10
):
if isinstance(attr, tuple):
# Replace with given value.
--
2.29.2

View File

@ -0,0 +1,49 @@
From 58250a709532ccb3e6d92ca65b3d305d1464cb68 Mon Sep 17 00:00:00 2001
From: Martin Krizek <martin.krizek@gmail.com>
Date: Thu, 28 Jan 2021 10:08:50 +0100
Subject: [PATCH] native_concat: pass only strings to literal_eval
If there is only single node and it is not a string, there is no point
in passing it into ``literal_eval``, just return it immediately.
One of the examples where passing a non-string node into
``literal_eval`` would actually cause problems is when the node is
``Undefined``. On Python 3.10 this would cause ``UndefinedError``
instead of just ``Undefined`` being returned.
Fixes #1335
---
CHANGES.rst | 3 +++
src/jinja2/nativetypes.py | 2 ++
2 files changed, 5 insertions(+)
diff --git a/CHANGES.rst b/CHANGES.rst
index 511b22b..a8a66ea 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -8,6 +8,9 @@ Released 2021-01-31
- Improve the speed of the ``urlize`` filter by reducing regex
backtracking. Email matching requires a word character at the start
of the domain part, and only word characters in the TLD. :pr:`1343`
+- Fix UndefinedError incorrectly being thrown on an undefined variable
+ instead of ``Undefined`` being returned on
+ ``NativeEnvironment`` on Python 3.10. :issue:`1335`
Version 2.11.2
diff --git a/src/jinja2/nativetypes.py b/src/jinja2/nativetypes.py
index a9ead4e..2fee17f 100644
--- a/src/jinja2/nativetypes.py
+++ b/src/jinja2/nativetypes.py
@@ -26,6 +26,8 @@ def native_concat(nodes):
if len(head) == 1:
raw = head[0]
+ if not isinstance(raw, str):
+ return raw
else:
raw = u"".join([text_type(v) for v in chain(head, nodes)])
--
2.29.2

View File

@ -1,12 +1,15 @@
%global srcname Jinja2
Name: python-jinja2
Version: 2.11.2
Release: 8%{?dist}
Version: 2.11.3
Release: 1%{?dist}
Summary: General purpose template engine
License: BSD
URL: https://palletsprojects.com/p/jinja/
Source0: %{pypi_source}
# cherry-picked patches to build with Python 3.10 (#1907442)
Patch1: 0001-add-linetable-to-the-preserved-CodeType-attributes-1.patch
Patch2: 0002-native_concat-pass-only-strings-to-literal_eval.patch
%if 0%{?fedora} || 0%{?rhel} > 7
# Enable python3 build by default
@ -105,7 +108,7 @@ environments.
%prep
%autosetup -n %{srcname}-%{version}
%autosetup -p1 -n %{srcname}-%{version}
# cleanup
find . -name '*.pyo' -o -name '*.pyc' -delete
@ -180,6 +183,10 @@ PYTHONPATH=$(pwd)/src %{__python3} -m pytest tests
%changelog
* Sat Feb 6 2021 Thomas Moschny <thomas.moschny@gmx.de> - 2.11.3-1
- Update to 2.11.3.
- Add patches to build with Python 3.10 (#1907442).
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.11.2-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

View File

@ -1 +1 @@
SHA512 (Jinja2-2.11.2.tar.gz) = baf62118702a7e113e6a22d9af58a5fa66af8017ded08f18705107a4cb93c9727c7fa118436aadfe0729d7f496241ca7bcce27863c5b19deaee3852eda68c082
SHA512 (Jinja2-2.11.3.tar.gz) = fce4f835795fe9afb622f8106f60344032a811f3f693806f31ba482f9b7c1400f93dfa1701b4db0b472cbed4b0793cb329778c8091811ef0e3b577150d28e004