Jinja2 v2.11 Release Notes

  • ๐Ÿš€ Unreleased

    • ๐Ÿ‘ Async support is only loaded the first time an :class:~environment.Environment enables it, in order to avoid a slow initial import. :issue:765
    • ๐Ÿ‘ Python 2.6 and 3.3 are not supported anymore.
    • The map filter in async mode now automatically awaits
    • ๐Ÿ‘ Added a new ChainableUndefined class to support getitem and getattr on an undefined object. :issue:977
    • Allow {%+ syntax (with NOP behavior) when lstrip_blocks is disabled. :issue:748
    • 0๏ธโƒฃ Added a default parameter for the map filter. :issue:557
    • Exclude environment globals from :func:meta.find_undeclared_variables. :issue:931
    • Float literals can be written with scientific notation, like 2.56e-3. :issue:912, :pr:922
    • Int and float literals can be written with the '_' separator for legibility, like 12_345. :pr:923
    • 0๏ธโƒฃ Fix a bug causing deadlocks in LRUCache.setdefault. :pr:1000
    • The trim filter takes an optional string of characters to trim. :pr:828
    • A new jinja2.ext.debug extension adds a {% debug %} tag to quickly dump the current context and available filters and tests. :issue:174, :pr:798, 983
    • Lexing templates with large amounts of whitespace is much faster. :issue:857, :pr:858
    • Parentheses around comparisons are preserved, so {{ 2 * (3 < 5) }} outputs "2" instead of "False". :issue:755, :pr:938
    • Add new boolean, false, true, integer and float tests. :pr:824