Sourced from jinja2's releases.
3.0.0
New major versions of all the core Pallets libraries, including Jinja 3.0, have been released! :tada:
- Read the announcement on our blog: https://palletsprojects.com/blog/flask-2-0-released/
- Read the full list of changes: https://jinja.palletsprojects.com/changes/#version-3-0-0
- Retweet the announcement on Twitter: https://twitter.com/PalletsTeam/status/1392266507296514048
- Follow our blog, Twitter, or GitHub to see future announcements.
This represents a significant amount of work, and there are quite a few changes. Be sure to carefully read the changelog, and use tools such as pip-compile and Dependabot to pin your dependencies and control your updates.
Sourced from jinja2's changelog.
Version 3.0.0
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
... (truncated)
417f822
Merge pull request #1417 from pallets/release-3.0.0b15fd1c
release version 3.0.0eed1546
update requirements9627e73
Merge pull request #1416 from pallets/pre-commit-ci-schedule6630044
update pre-commit monthlye1bf3bc
Merge pull request #1415 from pallets/pre-commit-ci-update-config0798a66
[pre-commit.ci] pre-commit autoupdate53fea33
Merge pull request #1414 from pallets/typing-markerba1f27e
fix py.typed in manifest1a3342b
Merge pull request #1412 from pallets/typing