Chameleon 1.2.11
XML-based template compiler.
Latest Version: 2.7.3
Overview
Chameleon compiles templates to Python byte-code. It includes a complete implementation of the Zope Page Templates (ZPT) language and a partial implementation of the Genshi language.
The engine itself performs 10-15 times better than the reference implementation and real-world benchmarks show an overall performance improvement in complex applications of 30-50%.
Compatibility
Works on Python 2.4, 2.5 and 2.6, including Google App Engine.
Development
The code is maintained in a subversion repository:
http://svn.repoze.org/chameleon/trunk
If you want to contribute or need support, join #repoze on freenode irc or write the mailinglist.
Changes
1.2.11 (released 2010-09-07)
- Avoid escaping already computed content from named regions inside a translation block.
- Always generate dynamic message ids dynamically when unnamed elements are present.
- Fixed an issue where the presence of an unnamed elements inside an anonymous translation block would result in an error when translation failed.
- Put a lock around compilation. This should guarantee stability (some reports suggest that there's code in the compilation loop which is not thread-safe) without a drop in performance (GIL is there, in spite all).
1.2.10 (released 2010-07-15)
- Fixed an issue where it was not possible to extend a macro by providing the template instance.
1.2.9 (released 2010-07-09)
- When using unnamed elements in a translation clause, use the element visit function to generate output, rather than static serialization.
- Fix handling of i18n:attributes in Babel template extractor.
1.2.8 (released 2010-07-08)
- Make the implementation used for XIncludes minimally hookable by causing chameleon.core.template.TemplateFile to use symbolic self.xincludes_class constructor instead of the chameleon.core.template.XIncludes class directly.
1.2.7 (released 2010-07-08)
- Update Babel extractor for python to check source file encoding. This fixes problems with non-ASCII strings.
1.2.6 (released 2010-06-21)
- Resolve real path before checking the XInclude registry. This fixes cache misses when using relative paths.
1.2.5 (released 2010-06-21)
- Use a blacklist to filter python builtins available in expressions. This fixes the disappearance of many common builtins in the previous release.
1.2.4 (released 2010-06-21)
Fix in Babel python i18n extractor: correct handling of messages with a newline before the start of a parameter.
Drop list of rarely used builtins from scope (such as help); meanwhile, the builtins that are made available won't be replaced by arguments passed into the template.
We can change this behavior by adding names to the list of transient symbols; however, this is expensive. The right place to do it would be the code stream's dictionary of required symbols, but it's currently a cumbersome solution.
Consider this a temporary fix.
Fixed issue where an interpolation escape would indeed escape interpolation, but also display in the output. [sklein]
Translate attributes that are messages.
1.2.3 (released 2010-04-19)
Added parameter debug to template constructor to enable debug mode. The default value is taken from the CHAMELEON_DEBUG environment value and defaults to False.
The use of debug mode is recommended during development.
Improved exception output in debug-mode; for nested usage, sections now carry the correct filename.
Fixed an issue where an incorrect expression annotation would be shown, or none at all.
When in debug-mode, take steps to ensure traceback is not swallowed in properties by explicit invocation.
1.2.2 (released 2010-04-17)
Fixed regression where objects that are not strings or numbers would not output due to a recent change in policy that subjected such objects to the translation machinery. However, the default translation function had a bug that instead returned None.
The new behavior is that such objects are coerced to unicode by default.
Note that if zope.i18n is available, an alternative translation function is used; this function, however, has the correct behavior already.
Fixed issue where nested translations would drop named blocks due to a name clash.
1.2.1 (released 2010-04-07)
- Fixed issue where decorators used internally by the compiler would be silently dropped during compilation on Python 2.4. This fix solves an issue with match templates not being processed.
- Objects which are not strings or numbers, and which do not provide an __html__ method, are now considered i18n messages. This means that they are automatically translated (using interpolation or tag-based text insertion or replacement).
- Fixed issue where translate parameter would not be applicable on file-based templates.
- Add Babel message extractors for Python, ZPT and Genshi files.
- Correctly handle translations where a msgid has an empty translation.
1.2.0 (released 2010-03-29)
- Fixed issue where nested translations would fail.
- Added support for passing in a translation function to the template constructor.
- Fixed issue where translation name mappings would conflict with template function definitions.
- Fixed symbol lookup issue with list comprehensions and lambda expressions.
- Fixed issue with interpolation flag and CDATA; the effect of this flag is now recursive, which indirectly means that CDATA elements will be affected by a setting on a parent tag.
- XML namespace fixes.
- Template instances may now be used as macros; this will use the template in its entirety, including any XML declarations. This addresses issue #139.
- Integrated Genshi implementation.
- Allow expression interpolation on any tag which is not part of the Chameleon or ZPT namespaces (e.g. TAL, METAL, I18N or META).
- Improve XML parsing error handling.
1.1.2 (released 2010-02-24)
- Avoid printing document header strings (XML header and DOCTYPE) twice; this would previously happen if a template would define these and use a macro on the top level which also provided them.
- The repeat variable attributes (odd, even etc.) are now callable strings, e.g. legacy users may still call these attributes, but it is no longer required.
- The odd and even attributes now return the English strings "odd" and "even" in place of True and the empty string "" instead of False.
1.1.1 (released 2010-01-26)
- Python 2.5 compatibility fixes (symptom: TypeError: default __new__ takes no parameters with the statement generating the error something like ast.Name("econtext", ast.Load())).
1.1 (released 2010-01-26)
- Made all tests compatible with Python 2.4.
- Use the 2.5 AST for code transformation for compatibility with Google App Engine. The AST utilities required were copied from Genshi (license document included).
1.0.8 (released 2010-01-12)
- Use RPL license (http://repoze.org/license.html); include RPL and copyright notice in software.
1.0.7 (released 2010-01-07)
- Fixed encoding issue of translated attributes. [kobold]
- Fixed translation issue, that would prevent translation of tag contents with both named and unnamed subtags. [kobold]
- Fixed issue where messages could contain a double space. [kobold]
1.0.6 (released 2009-12-14)
- Fixed white space issue.
- Fixed character encoding issue.
- Fixed issue where macro extension would fail.
1.0.5 (released 2009-12-08)
- Fixed issue where the translation compiler would break on messages that contained the formatting character '%'.
- Fixed white space issue.
1.0.4 (released 2009-11-15)
- Fixed issue where the file-based template constructor did not accept the encoding parameter.
- Use more caution when falling back to dictionary lookup.
1.0.3 (released 2009-11-12)
- Fixed issue where traceback would contain erroneous debugging information. The source code is now taken directly from the traceback object.
- Include Python expression in syntax error exception message.
1.0.2 (released 2009-11-10)
- Really fixed ZCA import fallbacks.
1.0.1 (released 2009-11-04)
- Fixed ZCA import fallbacks.
1.0 (released 2009-11-01)
Features:
- HTML5 doctype is now supported.
| File | Type | Py Version | Uploaded on | Size | # downloads |
|---|---|---|---|---|---|
| Chameleon-1.2.11.tar.gz (md5) | Source | 2010-09-07 | 114KB | 784 | |
- Author: Malthe Borch and the Repoze Community
- Home Page: http://chameleon.repoze.org
- License: BSD-like (http://repoze.org/license.html)
- Categories
- Package Index Owner: malthe, chrism, hannosch, wichert
- DOAP record: Chameleon-1.2.11.xml
