Releases: sqlalchemy/mako
0.7.3
0.7.3
Released: Wed Nov 7 2012
-
[bug] legacy_html_escape function, used when
Markupsafe isn't installed, was using an inline-compiled
regexp which causes major slowdowns on Python 3.3;
is now precompiled. -
[bug] AST supporting now supports tuple-packed
function arguments inside pure-python def
or lambda expressions.References: #201
-
[bug] Fixed Py3K bug in the Babel extension.
-
[bug] Fixed the "filter" attribute of the
<%text> tag so that it pulls locally specified
identifiers from the context the same
way as that of <%block> and <%filter>. -
[bug] Fixed bug in plugin loader to correctly
raise exception when non-existent plugin
is specified.
0.7.2
0.7.1
0.7.1
Released: Sun Jul 8 2012
-
[feature] Control lines with no bodies will
now succeed, as "pass" is added for these
when no statements are otherwise present.
Courtesy Ben TrofatterReferences: #146
-
[bug] Fixed some long-broken scoping behavior
involving variables declared in defs and such,
which only became apparent when
the strict_undefined flag was turned on.References: #192
-
[bug] Can now use strict_undefined at the
same time args passed to def() are used
by other elements of the <%def> tag.References: #191
0.7.0
0.7.0
Released: Fri Mar 30 2012
-
[feature] Added new "loop" variable to templates,
is provided within a % for block to provide
info about the loop such as index, first/last,
odd/even, etc. A migration path is also provided
for legacy templates via the "enable_loop" argument
available on Template, TemplateLookup, and <%page>.
Thanks to Ben Trofatter for all
the work on thisReferences: #125
-
[feature] Added a real check for "reserved"
names, that is names which are never pulled
from the context and cannot be passed to
the template.render() method. Current names
are "context", "loop", "UNDEFINED". -
[feature] The html_error_template() will now
apply Pygments highlighting to the source
code displayed in the traceback, if Pygments
if available. Courtesy Ben TrofatterReferences: #95
-
[feature] Added support for context managers,
i.e. "% with x as e:/ % endwith" support.
Courtesy Ben TrofatterReferences: #147
-
[feature] Added class-level flag to CacheImpl
"pass_context"; when True, the keyword argument
'context' will be passed to get_or_create()
containing the Mako Context object.References: #185
-
[bug] Fixed some Py3K resource warnings due
to filehandles being implicitly closed.References: #182
-
[bug] Fixed endless recursion bug when
nesting multiple def-calls with content.
Thanks to Jeff Dairiki.References: #186
-
[feature] Added Jinja2 to the example
benchmark suite, courtesy Vincent Férotin
0.6.2
0.6.1
0.6.1
Released: Sat Jan 28 2012
- [bug] Added special compatibility for the 0.5.0
Cache() constructor, which was preventing file
version checks and not allowing Mako 0.6 to
recompile the module files.
0.6.0
0.6.0
Released: Sat Jan 21 2012
-
[feature] Template caching has been converted into a plugin
system, whereby the usage of Beaker is just the
default plugin. Template and TemplateLookup
now accept a string "cache_impl" parameter which
refers to the name of a cache plugin, defaulting
to the name 'beaker'. New plugins can be
registered as pkg_resources entrypoints under
the group "mako.cache", or registered directly
using mako.cache.register_plugin(). The
core plugin is the mako.cache.CacheImpl
class. -
[feature] Added support for Beaker cache regions
in templates. Usage of regions should be considered
as superseding the very obsolete idea of passing in
backend options, timeouts, etc. within templates. -
[feature] The 'put' method on Cache is now
'set'. 'put' is there for backwards compatibility. -
[feature] The <%def>, <%block> and <%page> tags now accept
any argument named "cache_*", and the key
minus the "cache_" prefix will be passed as keyword
arguments to the CacheImpl methods. -
[feature] Template and TemplateLookup now accept an argument
cache_args, which refers to a dictionary containing
cache parameters. The cache_dir, cache_url, cache_type,
cache_timeout arguments are deprecated (will probably
never be removed, however) and can be passed
now as cache_args={'url':, 'type':'memcached',
'timeout':50, 'dir':'/path/to/some/directory'} -
[feature/bug] Can now refer to context variables
within extra arguments to <%block>, <%def>, i.e.
<%block name="foo" cache_key="${somekey}">.
Filters can also be used in this way, i.e.
<%def name="foo()" filter="myfilter">
then template.render(myfilter=some_callable)References: #180
-
[feature] Added "--var name=value" option to the mako-render
script, allows passing of kw to the template from
the command line.References: #178
-
[feature] Added module_writer argument to Template,
TemplateLookup, allows a callable to be passed which
takes over the writing of the template's module source
file, so that special environment-specific steps
can be taken.References: #181
-
[bug] The exception message in the html_error_template
is now escaped with the HTML filter.References: #142
-
[bug] Added "white-space:pre" style to html_error_template()
for code blocks so that indentation is preservedReferences: #173
-
[bug] The "benchmark" example is now Python 3 compatible
(even though several of those old template libs aren't
available on Py3K, so YMMV)References: #175
0.5.0
0.5.0
Released: Wed Sep 28 2011
-
A Template is explicitly disallowed
from having a url that normalizes to relative outside
of the root. That is, if the Lookup is based
at /home/mytemplates, an include that would place
the ultimate template at
/home/mytemplates/../some_other_directory,
i.e. outside of /home/mytemplates,
is disallowed. This usage was never intended
despite the lack of an explicit check.
The main issue this causes
is that module files can be written outside
of the module root (or raise an error, if file perms aren't
set up), and can also lead to the same template being
cached in the lookup under multiple, relative roots.
TemplateLookup instead has always supported multiple
file roots for this purpose.References: #174
0.4.2
0.4.1
0.4.1
Released: Wed Apr 6 2011
-
New tag: <%block>. A variant on <%def> that
evaluates its contents in-place.
Can be named or anonymous,
the named version is intended for inheritance
layouts where any given section can be
surrounded by the <%block> tag in order for
it to become overrideable by inheriting
templates, without the need to specify a
top-level <%def> plus explicit call.
Modified scoping and argument rules as well as a
more strictly enforced usage scheme make it ideal
for this purpose without at all replacing most
other things that defs are still good for.
Lots of new docs.References: #164
-
a slight adjustment to the "highlight" logic
for generating template bound stacktraces.
Will stick to known template source lines
without any extra guessing.References: #165