Changelog History
Page 1
-
v3.2.0 Changes
๐ Unreleased
-
v3.1.2 Changes
๐ Released 2022-04-28
- Add parameters to
Environment.overlay
to match__init__
. :issue:1645
- Handle race condition in
FileSystemBytecodeCache
. :issue:1654
- Add parameters to
-
v3.1.1 Changes
๐ Released 2022-03-25
- ๐ The template filename on Windows uses the primary path separator.
:issue:
1637
- ๐ The template filename on Windows uses the primary path separator.
:issue:
-
v3.1.0 Changes
๐ Released 2022-03-24
- ๐ Drop support for Python 3.6. :pr:
1534
๐ Remove previously deprecated code. :pr:
1544
-
WithExtension
andAutoEscapeExtension
are built-in now. -
contextfilter
andcontextfunction
are replaced bypass_context
.evalcontextfilter
andevalcontextfunction
are replaced bypass_eval_context
.environmentfilter
andenvironmentfunction
are replaced bypass_environment
. -
Markup
andescape
should be imported from MarkupSafe. - Compiled templates from very old Jinja versions may need to be recompiled.
- Legacy resolve mode for
Context
subclasses is no longer supported. Overrideresolve_or_missing
instead ofresolve
. -
unicode_urlencode
is renamed tourl_quote
.
-
๐ Add support for native types in macros. :issue:
1510
The
{% trans %}
tag can usepgettext
andnpgettext
by passing a context string as the first token in the tag, like{% trans "title" %}
. :issue:1430
โก๏ธ Update valid identifier characters from Python 3.6 to 3.7. :pr:
1571
โ Filters and tests decorated with
@async_variant
are pickleable. :pr:1612
Add
items
filter. :issue:1561
โ Subscriptions (
[0]
, etc.) can be used after filters, tests, and calls when the environment is in async mode. :issue:1573
0๏ธโฃ The
groupby
filter is case-insensitive by default, matching other comparison filters. Added thecase_sensitive
parameter to control this. :issue:1463
๐ Windows drive-relative path segments in template names will not result in
FileSystemLoader
andPackageLoader
loading from drive-relative paths. :pr:1621
- ๐ Drop support for Python 3.6. :pr:
-
v3.0.3 Changes
๐ Released 2021-11-09
- Fix traceback rewriting internals for Python 3.10 and 3.11.
:issue:
1535
- Fix how the native environment treats leading and trailing spaces
when parsing values on Python 3.10. :pr:
1537
- ๐ Improve async performance by avoiding checks for common types.
:issue:
1514
- โช Revert change to
hash(Node)
behavior. Nodes are hashed by id again :issue:1521
- ๐ฆ
PackageLoader
works when the package is a single module file. :issue:1512
- Fix traceback rewriting internals for Python 3.10 and 3.11.
:issue:
-
v3.0.2 Changes
๐ Released 2021-10-04
- Fix a loop scoping bug that caused assignments in nested loops
to still be referenced outside of it. :issue:
1427
- Make
compile_templates
deterministic for filter and import names. :issue:1452, 1453
- โช Revert an unintended change that caused
Undefined
to act likeStrictUndefined
for thein
operator. :issue:1448
- Imported macros have access to the current template globals in async
environments. :issue:
1494
- ๐ฆ
PackageLoader
will not include a current directory (.) path segment. This allows loading templates from the root of a zip import. :issue:1467
- Fix a loop scoping bug that caused assignments in nested loops
to still be referenced outside of it. :issue:
-
v3.0.1 Changes
๐ Released 2021-05-18
- โก๏ธ Update MarkupSafe dependency to >= 2.0. :pr:
1418
- Mark top-level names as exported so type checking understands
imports in user projects. :issue:
1426
- Fix some types that weren't available in Python 3.6.0. :issue:
1433
- ๐ The deprecation warning for unneeded
autoescape
andwith_
extensions shows more relevant context. :issue:1429
- ๐ Fixed calling deprecated
jinja2.Markup
without an argument. Usemarkupsafe.Markup
instead. :issue:1438
- ๐ Calling sync
render
for an async template usesasyncio.run
on Python >= 3.7. This fixes a deprecation that Python 3.10 introduces. :issue:1443
- โก๏ธ Update MarkupSafe dependency to >= 2.0. :pr:
-
v3.0.0 Changes
๐ Released 2021-05-11
- ๐ Drop support for Python 2.7 and 3.5.
- Bump MarkupSafe dependency to >=1.1.
- Bump Babel optional dependency to >=2.1.
- ๐ Remove code that was marked deprecated.
- Add type hinting. :pr:
1412
- Use :pep:
451
API to load templates with :class:~loaders.PackageLoader
. :issue:1168
- Fix a bug that caused imported macros to not have access to the
current template's globals. :issue:
688
- Add ability to ignore
trim_blocks
using+%}
. :issue:1036
- Fix a bug that caused custom async-only filters to fail with
constant input. :issue:
1279
- Fix UndefinedError incorrectly being thrown on an undefined variable
instead of
Undefined
being returned onNativeEnvironment
on Python 3.10. :issue:1335
- Blocks can be marked as
required
. They must be overridden at some point, but not necessarily by the direct child. :issue:1147
- ๐ Deprecate the
autoescape
andwith
extensions, they are built-in to the compiler. :issue:1203
- The
urlize
filter recognizesmailto:
links and takesextra_schemes
(orenv.policies["urlize.extra_schemes"]
) to recognize other schemes. It tries to balance parentheses within a URL instead of ignoring trailing characters. The parsing in general has been updated to be more efficient and match more cases. URLs without a scheme are linked ashttps://
instead ofhttp://
. :issue:522, 827, 1172
, :pr:1195
- Filters that get attributes, such as
map
andgroupby
, can use a false or empty value as a default. :issue:1331
- Fix a bug that prevented variables set in blocks or loops from
being accessed in custom context functions. :issue:
768
- Fix a bug that caused scoped blocks from accessing special loop
variables. :issue:
1088
- โก๏ธ Update the template globals when calling
Environment.get_template(globals=...)
even if the template was already loaded. :issue:295
- Do not raise an error for undefined filters in unexecuted
if-statements and conditional expressions. :issue:
842
- โ
Add
is filter
andis test
tests to test if a name is a registered filter or test. This allows checking if a filter is available in a template before using it. Test functions can be decorated with@pass_environment
,@pass_eval_context
, or@pass_context
. :issue:842
, :pr:1248
- ๐ Support
pgettext
andnpgettext
(message contexts) in i18n extension. :issue:441
- The
|indent
filter'swidth
argument can be a string to indent by. :pr:1167
- ๐ The parser understands hex, octal, and binary integer literals.
:issue:
1170
-
Undefined.__contains__
(in
) raises anUndefinedError
instead of aTypeError
. :issue:1198
-
Undefined
is iterable in an async environment. :issue:1294
- ๐
NativeEnvironment
supports async mode. :issue:1362
- Template rendering only treats
\n
,\r\n
and\r
as line breaks. Other characters are left unchanged. :issue:769, 952, 1313
- 0๏ธโฃ
|groupby
filter takes an optionaldefault
argument. :issue:1359
The function and filter decorators have been renamed and unified. The old names are deprecated. :issue:
1381
-
pass_context
replacescontextfunction
andcontextfilter
. -
pass_eval_context
replacesevalcontextfunction
andevalcontextfilter
-
pass_environment
replacesenvironmentfunction
andenvironmentfilter
.
-
๐ Async support no longer requires Jinja to patch itself. It must still be enabled with
Environment(enable_async=True)
. :issue:1390
๐ Overriding
Context.resolve
is deprecated, overrideresolve_or_missing
instead. :issue:1380
-
v3.0.0.a1
February 05, 2020 -
v2.11.3 Changes
๐ 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
- Improve the speed of the