Mercurial > genshi > mirror
comparison examples/bench/bigtable.py @ 543:0449396999c5 trunk
Replace Myghty by Mako in bigtable benchmark, apply escaping in Mako templates.
author | cmlenz |
---|---|
date | Thu, 28 Jun 2007 18:12:15 +0000 |
parents | bd00120ea90a |
children | 1da8de3e5e51 |
comparison
equal
deleted
inserted
replaced
542:1912af29ac70 | 543:0449396999c5 |
---|---|
39 from django.template import Template as DjangoTemplate | 39 from django.template import Template as DjangoTemplate |
40 except ImportError: | 40 except ImportError: |
41 DjangoContext = DjangoTemplate = None | 41 DjangoContext = DjangoTemplate = None |
42 | 42 |
43 try: | 43 try: |
44 from myghty.interp import Interpreter as MyghtyInterpreter | 44 from mako.template import Template as MakoTemplate |
45 except ImportError: | 45 except ImportError: |
46 MyghtyInterpreter = None | 46 MakoTemplate = None |
47 | 47 |
48 table = [dict(a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9,j=10) | 48 table = [dict(a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9,j=10) |
49 for x in range(1000)] | 49 for x in range(1000)] |
50 | 50 |
51 genshi_tmpl = MarkupTemplate(""" | 51 genshi_tmpl = MarkupTemplate(""" |
72 def test_django(): | 72 def test_django(): |
73 """Djange template""" | 73 """Djange template""" |
74 context = DjangoContext({'table': table}) | 74 context = DjangoContext({'table': table}) |
75 django_tmpl.render(context) | 75 django_tmpl.render(context) |
76 | 76 |
77 if MyghtyInterpreter: | 77 if MakoTemplate: |
78 interpreter = MyghtyInterpreter() | 78 mako_tmpl = MakoTemplate(""" |
79 component = interpreter.make_component(""" | |
80 <table> | 79 <table> |
81 % for row in ARGS['table']: | 80 % for row in table: |
82 <tr> | 81 <tr> |
83 % for col in row.values(): | 82 % for col in row.values(): |
84 <td><% col %></td> | 83 <td>${ col | h }</td> |
85 % | 84 % endfor |
86 % | 85 </tr> |
87 </tr> | 86 % endfor |
88 </table> | 87 </table> |
89 """) | 88 """) |
90 def test_myghty(): | 89 def test_mako(): |
91 """Myghty Template""" | 90 """Mako Template""" |
92 buf = StringIO() | 91 mako_tmpl.render(table=table) |
93 interpreter.execute(component, request_args={'table':table}, out_buffer=buf) | |
94 | 92 |
95 def test_genshi(): | 93 def test_genshi(): |
96 """Genshi template""" | 94 """Genshi template""" |
97 stream = genshi_tmpl.generate(table=table) | 95 stream = genshi_tmpl.generate(table=table) |
98 stream.render('html', strip_whitespace=False) | 96 stream.render('html', strip_whitespace=False) |
184 cs.render() | 182 cs.render() |
185 | 183 |
186 | 184 |
187 def run(which=None, number=10): | 185 def run(which=None, number=10): |
188 tests = ['test_builder', 'test_genshi', 'test_genshi_builder', | 186 tests = ['test_builder', 'test_genshi', 'test_genshi_builder', |
189 'test_myghty', 'test_kid', 'test_kid_et', 'test_et', 'test_cet', | 187 'test_mako', 'test_kid', 'test_kid_et', 'test_et', 'test_cet', |
190 'test_clearsilver', 'test_django'] | 188 'test_clearsilver', 'test_django'] |
191 | 189 |
192 if which: | 190 if which: |
193 tests = filter(lambda n: n[5:] in which, tests) | 191 tests = filter(lambda n: n[5:] in which, tests) |
194 | 192 |