Skip to content
0.x
-
Added method: evoque.collection.Cache.clear()
-
Fixed a locals data dict isolation bug in recursive template calls (a
template directly evoking itself).
-
Added evoque.quoted package, containing a quoted-no-more base class
to facilitate defining custom quoted-no-more classes. Added sample
quoted-no-more class implementations for xml and url.
-
Changed the default quoted-no-more class used within a Pylons context,
to webhelpers.html.literal i.e. the evoque Domain is initialized with:
quoting = app_conf.get(“evoque.quoting”, webhelpers.html.literal)
-
Added module utils.pyglexers, containing pygments lexers:
EvoqueLexer, EvoqueHtmlLexer, EvoqueXmlLexer
0.4 (2009-01-21):
-
Evoque (package/unittests) now runs on all of python 2.4, 2.5, 2.6 and 3.0,
simultaneously from the same identical code base.
-
The decodeh module (encoding guessing algorithm, now even more important in
py3 when opening text files) becomes py3-aware by:
-
making read_from_file() always opens a file in binary mode
-
handling bytes as the non-unicode str case in py3
-
Tighter lockdown of the in-process sandbox (thanks to Daniel Diniz for
feedback and additional testing) by:
-
fail for all expressions that include lookups for attributes starting
with any of: “__”, “func_”, “f_”, “im_”, “tb_”, “gi_”, “throw”
-
added “object” to the disallowed list of builtins
-
Changed behaviour of the Domain init parameter slurpy_directives=True, that
now behaves in the following way: for each directive, strip all
leading/trailing whitespace on the same line plus (on left) the initial
newline — if and only if the end of the line being slurped is made up of
only whitespace.
-
Added whitespace test case.
-
Updated to qpy 1.7.
-
In the unit tests, replaced hash(s) as a shorthand way to compare strings
with explicit strings.
-
Corrected problem with yield and try/finally that was breaking
Template.test() under python 2.4.
-
In restricted mode, when initializing the globals namespace under
python 2.4, the issubclass check is done against Exception as opposed
to BaseException (that is not available in 2.4).
0.3 (2008-09-06):
-
All overlay keyword parameters may now be evaluated at runtime (in the same
way as for the evoque directive); in addition to the first “name” parameter,
the other parameters of the overlay directive [src, collection, space] may
now also be set to a variable for evaluation at runtime.
-
Runtime evaluation of the overlay directive now explicitly raises a
SyntaxError if a keyword parameter other than [name, src, collection, space]
is specified.
-
Added labels, eval_overlay attributes to Template; removed overlay dict
as attribute, replaced with template.get_space_overlay() that dynamically
returns a (space:bool, overlay:dict) tuple on each call, where the returned
overlay dict contains only parameters needed for calling get_template().
-
Renamed Template methods reload() and reload_from_string() to
decode() and decode_from_string().
-
Added possibility to specify a “local” src to $evoque{} when addressing a
template that is (a) named (b) file-based (c) nested and (d) within the
same collection; such src values must start with “#” and the calling
template’s file is used to normalize the src
(see Evaluator.evoque()).
-
Refined the check to determine whether a KeyError during evaluation is
really coming from the evaluator’s lookup or from further down.
-
Changed Template.test() method to be a generator of template evaluations,
thus resulting in that any successful evaluations prior to a first failure
are returned.
0.2 (2008-08-04):
-
The name first parameter of the evoque and overlay directives i.e.
$evoque{name} and $overlay{name} may now be specified in one of the
following ways:
-
an unquoted str arg : interpreted literally
-
a quoted str arg : interpreted literally
-
name=an unquoted str : str is interpreted as variable name, and
evaluated at runtime within the template’s context
-
name=a quoted str : interpreted literally
-
Template.unload() now recurses and unloads also any local sub-templates.
-
Adopted default logging to be standard python logger for “evoque”.
-
Changed to True as default value of the “output” parameter of the
builtin callable ${inspect(output=True)}.
-
Rendering of templates with raw=True now correctly processes any specified
post-evaluation filters.
0.1.2 (2008-07-27):
-
Added ext/pylons for integrating Evoque with Pylons, both as documentation
(on web site) and as sample code (in distribution).
-
Corrected problem with auto-refreshing of a template with a modified value
for “data” in an embedded $prefer{data=dict()} directive.
-
Removed unused methods on Template:
set_locals(), set_on_locals(), set_namespace_on_locals()
-
Improved benchmark suite, in particular added benchmarks for mako in
automatic quoting mode.
-
decodeh.py: added catch of ValueError from locale.getdefaultlocale(), to be
able to ignore exceptions of the form “ValueError: unknown locale: XXX” when
the LANG or any LC_* env variables are set to an unknown locale.
-
decodeh.py: added global IGNORE_ENCS list, and added the non-existent “cp0”
encoding that is sometimes returned by Windows, thus avoiding a
“LookupError: unknown encoding: cp0” further downstream.
0.1.1 (2008-03-23):
-
Fixed bug with top-level middle text (in between directive blocks) not
being parsed, see: test_mid_text().
-
Some minor changes to parsing code, for better robustness and clarity.
-
Added ext/django recipe, for using evoque with django.
-
Added ext/qp/echo sample qp application.
-
Added ext/werkzeug sample WSGI application.
0.1 (2008-03-07):