Mercurial > genshi > genshi-test
comparison examples/bench/bigtable.py @ 319:2aa99bf95d84
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 | 7a426ab6407a |
children | 0e6ae0ade606 |
comparison
equal
deleted
inserted
replaced
317:8ba12f886c8a | 319:2aa99bf95d84 |
---|---|
6 # Author: Jonas Borgström <jonas@edgewall.com> | 6 # Author: Jonas Borgström <jonas@edgewall.com> |
7 | 7 |
8 import cgi | 8 import cgi |
9 import sys | 9 import sys |
10 import timeit | 10 import timeit |
11 | 11 from StringIO import StringIO |
12 import cElementTree as cet | 12 import cElementTree as cet |
13 from elementtree import ElementTree as et | 13 from elementtree import ElementTree as et |
14 from genshi.builder import tag | 14 from genshi.builder import tag |
15 from genshi.template import MarkupTemplate | 15 from genshi.template import MarkupTemplate |
16 import neo_cgi | |
17 import neo_cs | |
18 import neo_util | |
19 | 16 |
20 try: | 17 try: |
21 import neo_cgi, neo_cs, neo_util | 18 import neo_cgi, neo_cs, neo_util |
22 except ImportError: | 19 except ImportError: |
23 neo_cgi = None | 20 neo_cgi = None |
32 settings.configure() | 29 settings.configure() |
33 from django.template import Context as DjangoContext | 30 from django.template import Context as DjangoContext |
34 from django.template import Template as DjangoTemplate | 31 from django.template import Template as DjangoTemplate |
35 except ImportError: | 32 except ImportError: |
36 DjangoContext = DjangoTemplate = None | 33 DjangoContext = DjangoTemplate = None |
34 | |
35 try: | |
36 from myghty.interp import Interpreter as MyghtyInterpreter | |
37 except ImportError: | |
38 MyghtyInterpreter = None | |
37 | 39 |
38 table = [dict(a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9,j=10) | 40 table = [dict(a=1,b=2,c=3,d=4,e=5,f=6,g=7,h=8,i=9,j=10) |
39 for x in range(1000)] | 41 for x in range(1000)] |
40 | 42 |
41 genshi_tmpl = MarkupTemplate(""" | 43 genshi_tmpl = MarkupTemplate(""" |
61 | 63 |
62 def test_django(): | 64 def test_django(): |
63 """Djange template""" | 65 """Djange template""" |
64 context = DjangoContext({'table': table}) | 66 context = DjangoContext({'table': table}) |
65 django_tmpl.render(context) | 67 django_tmpl.render(context) |
68 | |
69 if MyghtyInterpreter: | |
70 interpreter = MyghtyInterpreter() | |
71 component = interpreter.make_component(""" | |
72 <table> | |
73 % for row in ARGS['table']: | |
74 <tr> | |
75 % for col in row.values(): | |
76 <td><% col %></td> | |
77 % | |
78 % | |
79 </tr> | |
80 </table> | |
81 """) | |
82 def test_myghty(): | |
83 """Myghty Template""" | |
84 buf = StringIO() | |
85 interpreter.execute(component, request_args={'table':table}, out_buffer=buf) | |
66 | 86 |
67 def test_genshi(): | 87 def test_genshi(): |
68 """Genshi template""" | 88 """Genshi template""" |
69 stream = genshi_tmpl.generate(table=table) | 89 stream = genshi_tmpl.generate(table=table) |
70 stream.render('html', strip_whitespace=False) | 90 stream.render('html', strip_whitespace=False) |
152 </table>""") | 172 </table>""") |
153 cs.render() | 173 cs.render() |
154 | 174 |
155 | 175 |
156 def run(which=None, number=10): | 176 def run(which=None, number=10): |
157 tests = ['test_builder', 'test_genshi', 'test_genshi_builder', 'test_kid', | 177 tests = ['test_builder', 'test_genshi', 'test_genshi_builder', 'test_myghty', 'test_kid', |
158 'test_kid_et', 'test_et', 'test_cet', 'test_clearsilver', | 178 'test_kid_et', 'test_et', 'test_cet', 'test_clearsilver', |
159 'test_django'] | 179 'test_django'] |
180 | |
160 if which: | 181 if which: |
161 tests = filter(lambda n: n[5:] in which, tests) | 182 tests = filter(lambda n: n[5:] in which, tests) |
162 | 183 |
163 for test in [t for t in tests if hasattr(sys.modules[__name__], t)]: | 184 for test in [t for t in tests if hasattr(sys.modules[__name__], t)]: |
164 t = timeit.Timer(setup='from __main__ import %s;' % test, | 185 t = timeit.Timer(setup='from __main__ import %s;' % test, |