All Versions
Latest Version
Avg Release Cycle
101 days
Latest Release
208 days ago

Changelog History
Page 5

  • v2.8.3 Changes

    April 16, 2012

    ๐Ÿ”‹ Features:

    • ๐ŸŒฒ Log template source on debug-level before cooking.

    • The target_language argument, if given, is now available as a variable in templates.

  • v2.8.2 Changes

    March 30, 2012

    ๐Ÿ”‹ Features:

    • Temporary caches used in debug mode are cleaned up eagerly, rather than waiting for process termination. [mitchellrj]

    ๐Ÿ›  Bugfixes:

    • The index, start and end methods on the TAL repeat object are now callable. This fixes an incompatibility with ZPT.

    • ๐Ÿ The loader now correctly handles absolute paths on Windows. [rdale]

  • v2.8.1 Changes

    March 29, 2012

    ๐Ÿ”‹ Features:

    • ๐Ÿ‘ป The exception formatter now lists errors in 'wrapping order'. This means that the innermost, and presumably most relevant exception is shown last.

    ๐Ÿ›  Bugfixes:

    • ๐Ÿ‘ป The exception formatter now correctly recognizes nested errors and does not rewrap the dynamically generated exception class.

    • The exception formatter now correctly sets the __module__ attribute to that of the original exception class.

  • v2.8.0 Changes

    February 29, 2012

    ๐Ÿ”‹ Features:

    • โž• Added support for code blocks using the <?python ... ?> processing instruction syntax.

    The scope is name assignments is up until the nearest macro definition, or the template itself if macros are not used.

    ๐Ÿ›  Bugfixes:

    • ๐Ÿ†• Fall back to the exception class' __new__ method to safely create an exception object that is not implemented in Python.

    • ๐Ÿ‘ป The exception formatter now keeps track of already formatted exceptions, and ignores them from further output.

  • v2.7.4 Changes

    February 27, 2012
    • The error handler now invokes the __init__ method of BaseException instead of the possibly overriden method (which may take required arguments). This fixes issue #97. [j23d, malthe]
  • v2.7.3 Changes

    January 16, 2012

    ๐Ÿ›  Bugfixes:

    • The trim whitespace option now correctly trims actual whitespace to a single character, appearing either to the left or to the right of an element prefix or suffix string.
  • v2.7.2 Changes

    January 08, 2012

    ๐Ÿ”‹ Features:

    • Added option trim_attribute_space that decides whether attribute whitespace is stripped (at most down to a single space). This option exists to provide compatibility with the reference implementation. Fixes issue #85.

    ๐Ÿ›  Bugfixes:

    • Ignore unhashable builtins when generating a reverse builtin map to quickly look up a builtin value. [malthe]

    • ๐ŸŒ Apply translation mapping even when a translation function is not available. This fixes issue #83. [malthe]

    • ๐Ÿ›  Fixed issue #80. The translation domain for a slot is defined by the source document, i.e. the template providing the content for a slot whether it be the default or provided through metal:fill-slot. [jcbrand]

    • In certain circumstances, a Unicode non-breaking space character would cause a define clause to fail to parse.

  • v2.7.1 Changes

    December 29, 2011

    ๐Ÿ”‹ Features:

    • Enable expression interpolation in CDATA.

    • The page template class now implements dictionary access to macros::


    This is a short-hand for::


    ๐Ÿ›  Bugfixes:

    • An invalid define clause would be silently ignored; we now raise a language error exception. This fixes issue #79.

    • ๐Ÿ›  Fixed regression where ${...} interpolation expressions could not span multiple lines. This fixes issue #77.

  • v2.7.0 Changes

    December 13, 2011

    ๐Ÿ”‹ Features:

    • The load: expression now derives from the string expression such that the ${...} operator can be used for expression interpolation.

    • The load: expression now accepts asset specs; these are resolved by the pkg_resources.resource_filename function::


    An example from the test suite::


    ๐Ÿ›  Bugfixes:

    • ๐ŸŒ If an attribute name for translation was not a valid Python identifier, the compiler would generate invalid code. This has been fixed, and the compiler now also throws an exception if an attribute specification contains a comma. (Note that the only valid separator character is the semicolon, when specifying attributes for translation via the i18n:translate statement). This addresses issue #76.
  • v2.6.2 Changes

    December 08, 2011

    ๐Ÿ›  Bugfixes:

    • ๐Ÿ›  Fixed issue where tal:on-error would not respect tal:omit-tag or namespace elements which are omitted by default (such as <tal:block />).

    • ๐Ÿ›  Fixed issue where macros attribute would not be available on file-based templates due to incorrect initialization.

    • The TryExcept and TryFinally AST nodes are not available on Python 3.3. These have been aliased to Try. This fixes issue


    ๐Ÿ”‹ Features:

    • ๐Ÿ”’ The TAL repeat item now makes a security declaration that grants access to unprotected subobjects on the Zope 2 platform::

      allow_access_to_unprotected_subobjects = True

    This is required for legacy compatibility and does not affect other environments.

    • The template object now has a method write(body) which explicitly decodes and cooks a string input.

    • โž• Added configuration option loader_class which sets the class used to create the template loader object.

    The class (essentially a callable) is created at template construction time.