Chameleon

Latest version: v4.5.4

Safety actively analyzes 630305 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 9 of 19

2.14

-----------------

- Element repetition using the ``TAL`` namespace no longer includes
whitespace. This fixes issue 110.

- Use absolute import for ``chameleon.interfaces`` module. This fixes
issue 161.

2.13

-----------------

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.

2.12

-----------------

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]

- The ``default`` symbol in a ``tal:case`` condition now allows the
element only if no other case succeeds.

2.11

-----------------

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.

Optimizations:

- Minor optimization which correctly detects when an element has no
attributes.

2.10

-----------------

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]

2.9.2

------------------

Bugfixes:

- Fixed a PyPy incompatibility.

- Fixed issue 109 which caused testing failures on some platforms.

Page 9 of 19

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.