changeset 319:bab19496d4fa trunk

Add [http://www.myghty.org/ Myghty] to the benchmarks, kindly contributed by Mike Bayer.
author cmlenz
date Tue, 24 Oct 2006 16:27:41 +0000
parents efa7870b63cb
children 2295fb564250
files examples/bench/basic.py examples/bench/bigtable.py examples/bench/cheetah/template.tmpl
diffstat 3 files changed, 46 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/examples/bench/basic.py
+++ b/examples/bench/basic.py
@@ -4,7 +4,7 @@
 import sys
 import timeit
 
-__all__ = ['clearsilver', 'django', 'kid', 'genshi', 'simpletal']
+__all__ = ['clearsilver', 'myghty', 'django', 'kid', 'genshi', 'cheetah']
 
 def genshi(dirname, verbose=False):
     from genshi.template import TemplateLoader
@@ -19,6 +19,19 @@
         print render()
     return render
 
+def myghty(dirname, verbose=False):
+    from myghty import interp
+    interpreter = interp.Interpreter(component_root=dirname)
+    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()
+    if verbose:
+        print render()
+    return render
+
 def cheetah(dirname, verbose=False):
     # FIXME: infinite recursion somewhere... WTF?
     from Cheetah.Template import Template
@@ -38,7 +51,10 @@
     return render
 
 def clearsilver(dirname, verbose=False):
-    import neo_cgi
+    try:
+        import neo_cgi
+    except ImportError:
+        return lambda:None
     neo_cgi.update()
     import neo_util
     import neo_cs
--- a/examples/bench/bigtable.py
+++ b/examples/bench/bigtable.py
@@ -8,14 +8,11 @@
 import cgi
 import sys
 import timeit
-
+from StringIO import StringIO
 import cElementTree as cet
 from elementtree import ElementTree as et
 from genshi.builder import tag
 from genshi.template import MarkupTemplate
-import neo_cgi
-import neo_cs
-import neo_util
 
 try:
     import neo_cgi, neo_cs, neo_util
@@ -35,6 +32,11 @@
 except ImportError:
     DjangoContext = DjangoTemplate = None
 
+try:
+    from myghty.interp import Interpreter as MyghtyInterpreter
+except ImportError:
+    MyghtyInterpreter = None
+
 table = [dict(a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9,j=10)
           for x in range(1000)]
 
@@ -64,6 +66,24 @@
         context = DjangoContext({'table': table})
         django_tmpl.render(context)
 
+if MyghtyInterpreter:
+    interpreter = MyghtyInterpreter()
+    component = interpreter.make_component("""
+<table>
+% for row in ARGS['table']:
+   <tr>
+%    for col in row.values():
+     <td><% col %></td>
+%
+%
+   </tr>
+</table>
+""")
+    def test_myghty():
+        """Myghty Template"""
+        buf = StringIO()
+        interpreter.execute(component, request_args={'table':table}, out_buffer=buf)
+
 def test_genshi():
     """Genshi template"""
     stream = genshi_tmpl.generate(table=table)
@@ -154,9 +174,10 @@
 
 
 def run(which=None, number=10):
-    tests = ['test_builder', 'test_genshi', 'test_genshi_builder', 'test_kid',
+    tests = ['test_builder', 'test_genshi', 'test_genshi_builder', 'test_myghty', 'test_kid',
              'test_kid_et', 'test_et', 'test_cet', 'test_clearsilver',
              'test_django']
+
     if which:
         tests = filter(lambda n: n[5:] in which, tests)
 
--- a/examples/bench/cheetah/template.tmpl
+++ b/examples/bench/cheetah/template.tmpl
@@ -6,7 +6,7 @@
     <title>${title}</title>
   </head>
   <body>
-    #include "header.tmpl"
+    #include "cheetah/header.tmpl"
 
     <h2>Loop</h2>
     #if $items
@@ -17,6 +17,6 @@
       </ul>
     #end if
 
-    #include "footer.tmpl"
+    #include "cheetah/footer.tmpl"
   </body>
 </html>
Copyright (C) 2012-2017 Edgewall Software