Mercurial > genshi > mirror
changeset 540:6b413fbf359a trunk
Replace Myghty by Mako in basic benchmark.
author | cmlenz |
---|---|
date | Thu, 28 Jun 2007 17:32:19 +0000 |
parents | e9db4aca70f0 |
children | 773d8c470e82 |
files | examples/bench/basic.py examples/bench/mako/footer.html examples/bench/mako/header.html examples/bench/mako/template.html |
diffstat | 4 files changed, 44 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/examples/bench/basic.py +++ b/examples/bench/basic.py @@ -9,7 +9,7 @@ import sys import timeit -__all__ = ['clearsilver', 'myghty', 'django', 'kid', 'genshi', 'cheetah'] +__all__ = ['clearsilver', 'mako', 'django', 'kid', 'genshi', 'cheetah'] def genshi(dirname, verbose=False): from genshi.template import TemplateLoader @@ -24,19 +24,14 @@ print render() return render -def myghty(dirname, verbose=False): - try: - from myghty import interp - except ImportError: - print>>sys.stderr, 'Mighty not installed, skipping' - return lambda: None - interpreter = interp.Interpreter(component_root=dirname) +def mako(dirname, verbose=False): + from mako.lookup import TemplateLookup + lookup = TemplateLookup(directories=[dirname], filesystem_checks=False) + template = lookup.get_template('template.html') def render(): data = dict(title='Just a test', user='joe', - items=['Number %d' % num for num in range(1, 15)]) - buffer = StringIO() - interpreter.execute("template.myt", request_args=data, out_buffer=buffer) - return buffer.getvalue() + list_items=['Number %d' % num for num in range(1, 15)]) + return template.render(**data) if verbose: print render() return render @@ -186,6 +181,6 @@ stats = hotshot.stats.load("template.prof") stats.strip_dirs() stats.sort_stats('time', 'calls') - stats.print_stats() + stats.print_stats(.05) else: run(engines, verbose=verbose)
new file mode 100644 --- /dev/null +++ b/examples/bench/mako/footer.html @@ -0,0 +1,2 @@ +<div id="footer"> +</div>
new file mode 100644 --- /dev/null +++ b/examples/bench/mako/header.html @@ -0,0 +1,5 @@ +<div id="header"> + <h1>${title}</h1> +</div> + +
new file mode 100644 --- /dev/null +++ b/examples/bench/mako/template.html @@ -0,0 +1,29 @@ +<!DOCTYPE html + PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="en"> + <head> + <title>${title}</title> + </head> + <body> + <%def name="greeting(name)"> + <p>Hello, ${name}!</p> + </%def> + + <%include file="header.html"/> + + ${greeting(user)} + ${greeting('me')} + ${greeting('world')} + + <h2>Loop</h2> + % if items: + <ul> + % for idx, item in enumerate(items): + <li ${idx+1==len(items) and "class='last'" or ""}>${item}</li> + % endfor + </ul> + % endif + <%include file="footer.html"/> + </body> +</html>