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

Changelog History
Page 4

  • v2.13 Changes

    October 21, 2013

    ๐Ÿ›  Bugfixes:

    • ๐Ÿ”ง The template cache mechanism now includes additional configuration settings as part of the cache key such as strict and trim_attribute_space. [ossmkitty]

    • ๐Ÿ›  Fix cache issue where sometimes cached templates would not load correctly. [ossmkitty]

    • ๐Ÿšš In debug-mode, correctly remove temporary files when the module loader is garbage-collected (on __del__). [graffic]

    • ๐Ÿ›  Fix error message when duplicate i18n:name directives are used in a translation.

    • Using the three-argument form of getattr on a chameleon.tal.RepeatDict no longer raises KeyError, letting the default provided to getattr be used. This fixes attempting to adapt a RepeatDict to a Zope interface under PyPy.

  • v2.13-1 Changes

    October 24, 2013
    • ๐Ÿ›  Fixing brown bag release.
  • v2.12 Changes

    March 26, 2013

    ๐Ÿ”„ Changes:

    • When a tal:case condition succeeds, no other case now will.

    ๐Ÿ›  Bugfixes:

    • ๐ŸŒ Implicit translation now correctly extracts and normalizes complete sentences, instead of words. [witsch]

    • 0๏ธโƒฃ The default symbol in a tal:case condition now allows the element only if no other case succeeds.

  • v2.11 Changes

    November 15, 2012

    ๐Ÿ›  Bugfixes:

    • An issue was resolved where a METAL statement was combined with a tal:on-error handler.

    • ๐Ÿ›  Fix minor parser issue with incorrectly formatted processing instructions.

    • Provide proper error handling for Python inline code blocks.

    ๐Ÿ”‹ Features:

    • ๐ŸŒ The simple translation function now supports the translationstring interface.


    • Minor optimization which correctly detects when an element has no attributes.
  • v2.10 Changes

    October 12, 2012

    ๐Ÿ—„ Deprecations:

    • ๐Ÿ—„ The fast_translate function has been deprecated. Instead, the default translation function is now always a function that simply interpolates the mapping onto the message default or id.

    The motivation is that since version 2.9, the context argument is non-trivial: the econtext mapping is passed. This breaks an expectation on the Zope platform that the context parameter is the HTTP request. Previously, with Chameleon this parameter was simply not provided and so that did not cause issues as such.

    • The ast24 module has been renamed to ast25. This should help clear up any confusion that Chameleon 2.x might be support a Python interpreter less than version 2.5 (it does not).

    ๐Ÿ”‹ Features:

    • The ProxyExpr expression class (and hence the load: expression type) is now a TALES-expression. In practical terms, this means that the expression type (which computes a string result using the standard "${...}" interpolation syntax and proxies the result through a function) now supports fallback using the pipe operator ("|"). This fixes issue #128.

    • An attempt to interpolate using the empty string as the expression (i.e. ${}) now does nothing: the string ${} is simply output as is.

    • โž• Added support for adding, modifying, and removing attributes using a dictionary expression in tal:attributes (analogous to Genshi's py:attrs directive)::

    In the example above, name is an identifier, while value and attrs are Python expressions. However, attrs must evaluate to a Python dictionary object (more concisely, the value must implement the dictionary API-methods update() and items()).


    • In order to cut down on the size of the compiled function objects, some conversion and quoting statements have been put into functions. In one measurement, the reduction was 35%. The benchmark suite does not report of an increased render time (actually slightly decreased).

    ๐Ÿ›  Bugfixes:

    • ๐Ÿ‘ป An exception is now raised if a trivial string is passed for metal:fill-slot. This fixes issue #89.

    • An empty string is now never translated. Not really a bug, but it's been reported in as an issue (#92) because some translation frameworks handle this case incorrectly.

    • The template module loader (file cache) now correctly encodes generated template source code as UTF-8. This fixes issue #125.

    • ๐Ÿ›  Fixed issue where a closure might be reused unsafely in nested template rendering.

    • Fixed markup class __repr__ method. This fixes issue #124.

    • โž• Added missing return statement to fix printing the non-abbreviated filename in case of an exception. [tomo]

  • v2.9.2 Changes

    June 06, 2012

    ๐Ÿ›  Bugfixes:

    • ๐Ÿ›  Fixed a PyPy incompatibility.

    • ๐Ÿ›  Fixed issue #109 which caused testing failures on some platforms.

  • v2.9.1 Changes

    June 01, 2012

    ๐Ÿ›  Bugfixes:

    • ๐Ÿ›  Fixed issue #103. The tal:on-error statement now always adds an explicit end-tag to the element, even with a substitution content of nothing.

    • ๐Ÿ›  Fixed issue #113. The tal:on-error statement now works correctly also for dynamic attributes. That is, the fallback tag now includes only static attributes.

    • ๐Ÿ›  Fixed name error which prevented the benchmark from running correctly.


    • ๐Ÿ›  Fixed deprecation warning on Python 3 for zope interface implements declaration. This fixes issue #116.
  • v2.9.0 Changes

    May 31, 2012

    ๐Ÿ”‹ Features:

    • ๐ŸŒ The translation function now gets the econtext argument as the value for context. Note that historically, this was usually an HTTP request which might provide language negotiation data through a dictionary interface. [alvinyue]

    ๐Ÿ›  Bugfixes:

    • ๐Ÿ›  Fixed import alias issue which would lead to a syntax error in generated Python code. Fixes issue #114.
  • v2.8.5 Changes

    May 02, 2012

    ๐Ÿ›  Bugfixes:

    • ๐Ÿ›  Fixed minor installation issues on Python 2.5 and 3. [ppaez]

    • Ensure output is unicode even when trivial (an empty string).

  • v2.8.4 Changes

    April 18, 2012

    ๐Ÿ”‹ Features:

    • ๐Ÿ‘ป In exception output, long filenames are now truncated to 60 characters of output, preventing line wrap which makes it difficult to scan the exception output.

    ๐Ÿ›  Bugfixes:

    • ๐Ÿ‘ป Include filename and location in exception output for exceptions raised during compilation.

    • ๐ŸŒ If a trivial translation substitution variable is given (i.e. an empty string), simply ignore it. This fixes issue #106.