Jinja2 v2.6 Release Notes

  • ๐Ÿš€ Released 2011-07-24, codename Convolution

    • Internal attributes now raise an internal attribute error now instead of returning an undefined. This fixes problems when passing undefined objects to Python semantics expecting APIs.
    • โœ… Traceback support now works properly for PyPy. (Tested with 1.4)
    • Implemented operator intercepting for sandboxed environments. This allows application developers to disable builtin operators for better security. (For instance limit the mathematical operators to actual integers instead of longs)
    • ๐Ÿ‘ Groupby filter now supports dotted notation for grouping by attributes of attributes.
    • Scoped blocks now properly treat toplevel assignments and imports. Previously an import suddenly "disappeared" in a scoped block.
    • Automatically detect newer Python interpreter versions before loading code from bytecode caches to prevent segfaults on invalid opcodes. The segfault in earlier Jinja2 versions here was not a Jinja2 bug but a limitation in the underlying Python interpreter. If you notice Jinja2 segfaulting in earlier versions after an upgrade of the Python interpreter you don't have to upgrade, it's enough to flush the bytecode cache. This just no longer makes this necessary, Jinja2 will automatically detect these cases now.
    • The sum filter can now sum up values by attribute. This is a backwards incompatible change. The argument to the filter previously was the optional starting index which defaults to zero. This now became the second argument to the function because it's rarely used.
    • Like sum, sort now also makes it possible to order items by attribute.
    • Like sum and sort, join now also is able to join attributes of objects as string.
    • The internal eval context now has a reference to the environment.
    • ๐Ÿ‘€ Added a mapping test to see if an object is a dict or an object with a similar interface.