* Fix an issue where $-sign interpolation escaping would not
work correctly when more than two such symbols appeared next
to each other.
* Minor optimization when rendering translations with a static
message id (don't need to test if it's non-empty).
* Fix a bug where a macro could not be used correctly to render
a translation name.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-Chameleon?expand=0&rev=51
* Fix a regression where a static symbol would not get
correctly imported.
* Add Python 3.13 classifier.
* Fix a regression where default_extension was no longer permitted
* Chameleon now has type annotations!
* Fix a regression where generated template code would
suboptimal due to incorrect handling of internal variables.
* Always cook templates in debug mode, even when using
CHAMELEON_CACHE option to persist generated code on disk.
* Parsing the AST back to Python code now uses the built-in
ast.unparse function. This change is not directly surfaced
but means that the unparsing code is now more correctly
tracking changes to the interpreter.
* Drop support for platforms where AST nodes aren't weakref-
capable (e.g., older PyPy).
* Fix a PyPy compatibility issue having to do with determining
the set
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-Chameleon?expand=0&rev=47
* Remove zope.interface.
* Fix an issue where auto_reload is enabled and a file is
loaded from a package that wasn't zip-compressed.
* Drop support for Python 3.7.
* Fix names of dependencies for importlib_resources and
importlib_metadata.
* Local variable scope is now iterable,
completing dict interface.
* Minor optimizations to rendering logic.
* Implicit translation now provides the translation context,
domain, and target language to the translation function (if
applicable). Previously, the target language was provided,
but this did not respect a change via i18n:target.
* Replace pkg_resources with newer and faster
importlib.resources and importlib.metadata. Just importing
pkg_resources becomes slower and slower the more packages are
installed.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-Chameleon?expand=0&rev=45
* An XML document provided as a string (i.e. decoded) now
correctly has its content encoding parsed.
* Boolean attributes are now automatically configured for
templates in non-XML mode, presuming that we're being used
to generate HTML.
* This means that the same loading mechanism can be used for
both XML-and HTML-based templates.
* Boolean attributes (those configured using the optional
`boolean_attributes` parameter) now work with $-expression
interpolation.
* Unlike content and regular attributes, a special check for a
falsy value is now done for boolean attributes, such that
boolean logic can be used for interpolation expressions
(only a truthy value will include the attribute).
This reverts a change in behavior introduced in 3.8.0.
* Fix format spec applying for f-strings.
* Drop support for Python 2.7, 3.5, 3.6.
* Add support for set- and dict comprehensions
* Remove the following functions resp. modules:
``.utils.text_()``
``.utils.unescape()``
``.compat``
* A RepeatDict no longer inherits from dict since it does not actually provide
* Added feature gate enable_comment_interpolation which controls whether
Add option restricted_namespace which controls whether to
restrict namespaces to those defined and used by the page
Fixed attribute HTML entity escaping issue where an entity such
Simplify exception tracking, reducing bytecode size
Avoid checking if a static string is None during expression
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-Chameleon?expand=0&rev=43
* Added code optimization to reduce sequential appends of static text.
* The default symbol in dynamic attributes is now symbolic.
* The built-in attrs dictionary of static element attributes now correctly
works with tal:define, etc.
* Fix slice code generation compatibility issue on Python 3.9.
* Expose default marker as importable symbol chameleon.tales.DEFAULT_MARKER.
* Removed legacy flag literal_false. To get a similar behavior, use boolean_attributes.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-Chameleon?expand=0&rev=35
- Update to 3.7.0
* Fixed garbage collection issue with variable scope objects (issue #301).
* Fixed issue where setting a global variable would not be available locally.
* A RepeatDict no longer inherits from dict since it does not actually provide
that interface in a meaningful way.
* Added feature gate enable_comment_interpolation which controls whether
expression interpolation is enabled inside HTML comments (default is enabled).
* Added support for Python 3.6+ f-strings (issue #294).
OBS-URL: https://build.opensuse.org/request/show/794801
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-Chameleon?expand=0&rev=31
- Update to version 2.22
+ Changes from 2.22 (2015-02-06)
Fix brown bag release.
+ Changes from 2.21 (2015-02-06)
Added RenderError exception which indicates that an error occurred during
the evaluation of an expression. Clean up TemplateError exception
implementation.
+ Changes from 2.20 (2015-01-12)
Pass search_path to template class when loaded using TemplateLoader (or one
of the derived classes). [faassen]
+ Changes from 2.19 (2015-01-06)
Fix logging deprecation. Fix environment-based configuration logging
error.
+ Changes from 2.18 (2014-11-03)
Fix minor compilation error.
+ Changes from 2.17 (2014-11-03)
Add support for i18n:context. [wiggy] Add missing ‘parity’ repeat property.
[voxspox] Don’t modify environment when getting variables from it. [fschulze]
+ Changes from 2.16 (2014-05-06)
If a repeat expression evaluates to None then it is now equivalent to an
empty set.
This changes a behavior introduced in 2.14.
This fixes issue #172.
Remove fossil test dependency on deprecated distribute.
Add explicit support / testing for Python 3.3 / 3.4.
Drop explicit support for Python 2.5 (out of maintenance, and no longer
supported by tox or Travis-CI).
+ Changes from 2.15 (2014-03-11)
Add Support for Python 3.4’s NameConstant. [brakhane]
OBS-URL: https://build.opensuse.org/request/show/284529
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-Chameleon?expand=0&rev=18
- 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):
- <div tal:attributes="name value; attrs" />
- 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()).
- Optimizations:
- 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]
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-Chameleon?expand=0&rev=9
- Fixed a PyPy incompatibility.
- Fixed issue #109 which caused testing failures on some platforms.
- changes in 2.9.1
- 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.
- Compatibility: Fixed deprecation warning on Python 3 for zope interface implements declaration. This fixes issue #116.
- changes in 2.9.0
- Feature: 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]
- Fixed import alias issue which would lead to a syntax error in generated Python code. Fixes issue #114.
- changes in 2.8.5
- Fixed minor installation issues on Python 2.5 and 3. [ppaez]
- Ensure output is unicode even when trivial (an empty string).
- changes in 2.8.4
- Feature: 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.
- Bugfix: Include filename and location in exception output for exceptions raised during compilation.
- Bugfix: If a trivial translation substitution variable is given
(i.e. an empty string), simply ignore it. This fixes issue #106.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-Chameleon?expand=0&rev=8
- Feature: Temporary caches used in debug mode are cleaned up
eagerly, rather than waiting for process termination.
- Fix: The index, start and end methods on the TAL repeat object
are now callable. This fixes an incompatibility with ZPT.
- Fix: The loader now correctly handles absolute paths on Windows.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-Chameleon?expand=0&rev=4
- Feature: The exception formatter now lists errors in 'wrapping order'.
This means that the innermost, and presumably most relevant exception is shown last.
- Fix: The exception formatter now correctly recognizes nested errors
and does not rewrap the dynamically generated exception class.
- Fix: The exception formatter now correctly sets the __module__
attribute to that of the original exception class.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-Chameleon?expand=0&rev=3