All Versions
47
Latest Version
Avg Release Cycle
90 days
Latest Release
-
Changelog History
Page 3
Changelog History
Page 3
-
v2.9.3 Changes
January 08, 2017๐ Released 2017-01-08
- โช Restored the use of blocks in macros to the extend that was possible
before. On Python 3 it would render a generator repr instead of the
block contents. :issue:
645
- Set a consistent behavior for assigning of variables in inner scopes
when the variable is also read from an outer scope. This now sets
the intended behavior in all situations however it does not restore
the old behavior where limited assignments to outer scopes was
possible. For more information and a discussion see :issue:
641
- Resolved an issue where
block scoped
would not take advantage of the new scoping rules. In some more exotic cases a variable overridden in a local scope would not make it into a block. - Change the code generation of the
with
statement to be in line with the new scoping rules. This resolves some unlikely bugs in edge cases. This also introduces a new internalWith
node that can be used by extensions.
- โช Restored the use of blocks in macros to the extend that was possible
before. On Python 3 it would render a generator repr instead of the
block contents. :issue:
-
v2.9.2 Changes
January 08, 2017๐ Released 2017-01-08
- ๐ Fixed a regression that caused for loops to not be able to use the
same variable for the target as well as source iterator.
:issue:
640
- ๐ Add support for a previously unknown behavior of macros. It used to
be possible in some circumstances to explicitly provide a caller
argument to macros. While badly buggy and unintended it turns out
that this is a common case that gets copy pasted around. To not
completely break backwards compatibility with the most common cases
it's now possible to provide an explicit keyword argument for caller
if it's given an explicit default. :issue:
642
- ๐ Fixed a regression that caused for loops to not be able to use the
same variable for the target as well as source iterator.
:issue:
-
v2.9.1 Changes
January 07, 2017๐ Released 2017-01-07
- Resolved a regression with call block scoping for macros. Nested caller blocks that used the same identifiers as outer macros could refer to the wrong variable incorrectly.
-
v2.9 Changes
January 07, 2017๐ Released 2017-01-07, codename Derivation
- ๐ Change cache key definition in environment. This fixes a performance regression introduced in 2.8.
- ๐ Added support for
generator_stop
on supported Python versions (Python 3.5 and later) - Corrected a long standing issue with operator precedence of math operations not being what was expected.
- ๐ Added support for Python 3.6 async iterators through a new async mode.
- 0๏ธโฃ Added policies for filter defaults and similar things.
- 0๏ธโฃ Urlize now sets "rel noopener" by default.
- ๐ Support attribute fallback for old-style classes in 2.x.
- ๐ Support toplevel set statements in extend situations.
- โช Restored behavior of Cycler for Python 3 users.
- Subtraction now follows the same behavior as other operators on undefined values.
- ๐
map
and friends will now give better error messages if you forgot to quote the parameter. - Depend on MarkupSafe 0.23 or higher.
- ๐ Improved the
truncate
filter to support better truncation in case the string is barely truncated at all. - Change the logic for macro autoescaping to be based on the runtime autoescaping information at call time instead of macro define time.
- Ported a modified version of the
tojson
filter from Flask to Jinja2 and hooked it up with the new policy framework. - 0๏ธโฃ Block sets are now marked
safe
by default. - On Python 2 the asciification of ASCII strings can now be disabled
with the
compiler.ascii_str
policy. - โ
Tests now no longer accept an arbitrary expression as first argument
but a restricted one. This means that you can now properly use
multiple tests in one expression without extra parentheses. In
particular you can now write
foo is divisibleby 2 or foo is divisibleby 3
as you would expect. - Greatly changed the scoping system to be more consistent with what
template designers and developers expect. There is now no more magic
difference between the different include and import constructs.
Context is now always propagated the same way. The only remaining
differences is the defaults for
with context
andwithout context
. - The
with
andautoescape
tags are now built-in. - ๐ง Added the new
select_autoescape
function which helps configuring better autoescaping easier. - ๐ Fixed a runtime error in the sandbox when attributes of async generators were accessed.
-
v2.8.1 Changes
December 29, 2016๐ Released 2016-12-29
- ๐ Fixed the
for_qs
flag forurlencode
. - ๐ Fixed regression when applying
int
to non-string values. - ๐ SECURITY: if the sandbox mode is used format expressions are now sandboxed with the same rules as in Jinja. This solves various information leakage problems that can occur with format strings.
- ๐ Fixed the
-
v2.8 Changes
๐ Released 2015-07-26, codename Replacement
- Added
target
parameter to urlize function. - ๐ Added support for
followsymlinks
to the file system loader. - The truncate filter now counts the length.
- Added equalto filter that helps with select filters.
- Changed cache keys to use absolute file names if available instead of load names.
- ๐ Fixed loop length calculation for some iterators.
- Changed how Jinja2 enforces strings to be native strings in Python 2 to work when people break their default encoding.
- ๐ฒ Added :func:
make_logging_undefined
which returns an undefined object that logs failures into a logger. - If unmarshalling of cached data fails the template will be reloaded now.
- Implemented a block
set
tag. - 0๏ธโฃ Default cache size was increased to 400 from a low 50.
- โ
Fixed
is number
test to accept long integers in all Python versions. - Changed
is number
to accept Decimal as a number. - 0๏ธโฃ Added a check for default arguments followed by non-default
arguments. This change makes
{% macro m(x, y=1, z) %}
a syntax error. The previous behavior for this code was broken anyway (resulting in the default value being applied toy
). - Add ability to use custom subclasses of
jinja2.compiler.CodeGenerator
andjinja2.runtime.Context
by adding two new attributes to the environment (code_generator_class
andcontext_class
) (pull request:issue:`404
`). - ๐ Added support for context/environment/evalctx decorator functions on the finalize callback of the environment.
- Escape query strings for urlencode properly. Previously slashes were not escaped in that place.
- Add 'base' parameter to 'int' filter.
- Added
-
v2.7.3 Changes
๐ Released 2014-06-06
- ๐ Security issue: Corrected the security fix for the cache folder. This fix was provided by RedHat.
-
v2.7.2 Changes
๐ Released 2014-01-10
- Prefix loader was not forwarding the locals properly to inner loaders. This is now fixed.
- ๐ Security issue: Changed the default folder for the filesystem cache
to be user specific and read and write protected on UNIX systems.
See
Debian bug 734747
_ for more information.
.. _Debian bug 734747: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=734747
-
v2.7.1 Changes
๐ Released 2013-08-07
- ๐ Fixed a bug with
call_filter
not working properly on environment and context filters. - ๐ Fixed lack of Python 3 support for bytecode caches.
- โช Reverted support for defining blocks in included templates as this broke existing templates for users.
- โ Fixed some warnings with hashing of undefineds and nodes if Python is run with warnings for Python 3.
- ๐ Added support for properly hashing undefined objects.
- ๐ Fixed a bug with the title filter not working on already uppercase strings.
- ๐ Fixed a bug with
-
v2.7 Changes
๐ Released 2013-05-20, codename Translation
- Choice and prefix loaders now dispatch source and template lookup separately in order to work in combination with module loaders as advertised.
- ๐ Fixed filesizeformat.
- Added a non-silent option for babel extraction.
- Added
urlencode
filter that automatically quotes values for URL safe usage with utf-8 as only supported encoding. If applications want to change this encoding they can override the filter. - ๐ง Added
keep-trailing-newline
configuration to environments and templates to optionally preserve the final trailing newline. - Accessing
last
on the loop context no longer causes the iterator to be consumed into a list. - Python requirement changed: 2.6, 2.7 or >= 3.3 are required now, supported by same source code, using the "six" compatibility library.
- Allow
contextfunction
and other decorators to be applied to__call__
. - ๐ Added support for changing from newline to different signs in the
wordwrap
filter. - ๐ Added support for ignoring memcache errors silently.
- ๐ Added support for keeping the trailing newline in templates.
- ๐ Added finer grained support for stripping whitespace on the left side of blocks.
- Added
map
,select
,reject
,selectattr
andrejectattr
filters. - ๐ Added support for
loop.depth
to figure out how deep inside a recursive loop the code is. - Disabled py_compile for pypy and python 3.