Drop support for Python 2.6, 3.3, and 3.4. This will be the last version to support Python 2.7 and 3.5.
Added a new ChainableUndefined class to support getitem and getattr on an undefined object. 977
Allow {%+ syntax (with NOP behavior) when lstrip_blocks is disabled. 748
Added a default parameter for the map filter. 557
Exclude environment globals from meta.find_undeclared_variables. 931
Float literals can be written with scientific notation, like 2.56e-3. 912, 922
Int and float literals can be written with the '_' separator for legibility, like 12_345. 923
Fix a bug causing deadlocks in LRUCache.setdefault. 1000
The trim filter takes an optional string of characters to trim. 828
A new jinja2.ext.debug extension adds a {% debug %} tag to quickly dump the current context and available filters and tests. 174, 798, 983
Lexing templates with large amounts of whitespace is much faster. 857, 858
Parentheses around comparisons are preserved, so {{ 2 * (3 < 5) }} outputs "2" instead of "False". 755, 938
Add new boolean, false, true, integer and float tests. 824
The environment's finalize function is only applied to the output of expressions (constant or not), not static template data. 63
When providing multiple paths to FileSystemLoader, a template can have the same name as a directory. 821
Always return Undefined when omitting the else clause in a {{ 'foo' if bar }} expression, regardless of the environment's undefined class. Omitting the else clause is a valid shortcut and should not raise an error when using StrictUndefined. 710, 1079
Fix behavior of loop control variables such as length and revindex0 when looping over a generator. 459, 751, 794, 993
Async support is only loaded the first time an environment enables it, in order to avoid a slow initial import. 765
In async environments, the |map filter will await the filter call if needed. 913
In for loops that access loop attributes, the iterator is not advanced ahead of the current iteration unless length, revindex, nextitem, or last are accessed. This makes it less likely to break groupby results. 555, 1101
In async environments, the loop attributes length and revindex work for async iterators. 1101
In async environments, values from attribute/property access will be awaited if needed. 1101
~loader.PackageLoader doesn't depend on setuptools or pkg_resources. 970
PackageLoader has limited support for 420 namespace packages. 1097
Support os.PathLike objects in ~loader.FileSystemLoader and ~loader.ModuleLoader. 870
~nativetypes.NativeTemplate correctly handles quotes between expressions. "'{{ a }}', '{{ b }}'" renders as the tuple ('1', '2') rather than the string '1, 2'. 1020
Creating a ~nativetypes.NativeTemplate directly creates a ~nativetypes.NativeEnvironment instead of a default Environment. 1091
After calling LRUCache.copy(), the copy's queue methods point to the correct queue. 843
Compiling templates always writes UTF-8 instead of defaulting to the system encoding. 889
|wordwrap filter treats existing newlines as separate paragraphs to be wrapped individually, rather than creating short intermediate lines. 175
Add break_on_hyphens parameter to |wordwrap filter. 550
Cython compiled functions decorated as context functions will be passed the context. 1108
When chained comparisons of constants are evaluated at compile time, the result follows Python's behavior of returning False if any comparison returns False, rather than only the last one. 1102
Tracebacks for exceptions in templates show the correct line numbers and source for Python >= 3.7. 1104
Tracebacks for template syntax errors in Python 3 no longer show internal compiler frames. 763
Add a DerivedContextReference node that can be used by extensions to get the current context and local variables such as loop. 860
Constant folding during compilation is applied to some node types that were previously overlooked. 733
TemplateSyntaxError.source is not empty when raised from an included template. 457
Passing an Undefined value to get_template (such as through extends, import, or include), raises an UndefinedError consistently. select_template will show the undefined message in the list of attempts rather than the empty string. 1037
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
- `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
Bumps jinja2 from 2.10.1 to 2.11.0.
Release notes
Sourced from jinja2's releases.
Changelog
Sourced from jinja2's changelog.
Commits
bbdafe3
release version 2.11.09ff27f6
add python 3.8 classifier, clean up changelogd312609
isolate bytecode cache tests9849979
import Markup from markupsafe, fix flake8 import warningsc6d864c
increment bytecode cache versionc775bb9
remove test and coverage results from ci15337f7
Merge pull request #1133 from pallets/revert-rename86f1432
Revert "rename directory to jinja"4a59ac9
Revert "rename imports to jinja"4ec93a4
Revert "add warning and alias for jinja2"Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)