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>
Copyright (C) 2012-2017 Edgewall Software