This is the Jinja 3.1.5 security fix release, which fixes security issues and bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.
PyPI: https://pypi.org/project/Jinja2/3.1.5/
Changes: https://jinja.palletsprojects.com/changes/#version-3-1-5
Milestone: https://github.com/pallets/jinja/milestone/16?closed=1
- The sandboxed environment handles indirect calls to
str.format
, such as by passing a stored reference to a filter that calls its argument. GHSA-q2x7-8rv6-6q7h - Escape template name before formatting it into error messages, to avoid issues with names that contain f-string syntax. #1792, GHSA-gmj6-6f8f-6699
- Sandbox does not allow
clear
andpop
on known mutable sequence types. #2032 - Calling sync
render
for an async template usesasyncio.run
. #1952 - Avoid unclosed
auto_aiter
warnings. #1960 - Return an
aclose
-ableAsyncGenerator
fromTemplate.generate_async
. #1960 - Avoid leaving
root_render_func()
unclosed inTemplate.generate_async
. #1960 - Avoid leaving async generators unclosed in blocks, includes and extends. #1960
- The runtime uses the correct
concat
function for the current environment when calling block references. #1701 - Make
|unique
async-aware, allowing it to be used after another async-aware filter. #1781 |int
filter handlesOverflowError
from scientific notation. #1921- Make compiling deterministic for tuple unpacking in a
{% set ... %}
call. #2021 - Fix dunder protocol (
copy
/pickle
/etc) interaction withUndefined
objects. #2025 - Fix
copy
/pickle
support for the internalmissing
object. #2027 Environment.overlay(enable_async)
is applied correctly. #2061- The error message from
FileSystemLoader
includes the paths that were searched. #1661 PackageLoader
shows a clearer error message when the package does not contain the templates directory. #1705- Improve annotations for methods returning copies. #1880
urlize
does not addmailto:
to values like@a@b
. #1870- Tests decorated with
@pass_context
can be used with the|select
filter. #1624 - Using
set
for multiple assignment (a, b = 1, 2
) does not fail when the target is a namespace attribute. #1413 - Using
set
in all branches of{% if %}{% elif %}{% else %}
blocks does not cause the variable to be considered initially undefined. #1253