Mercurial > genshi > genshi-test
annotate examples/basic/kidrun.py @ 21:eca77129518a
* Include paths are now interpreted relative to the path of the including template. Closes #3.
* The filename is now included as first item in the `pos` tuple of stream events.
* Simplified the "basic" example so that it actually ''is'' basic.
* Added a more complex example using nested relative includes in [source:/trunk/examples/includes/ examples/includes].
author | cmlenz |
---|---|
date | Tue, 20 Jun 2006 13:05:37 +0000 |
parents | e86dcec16d55 |
children | b0fd16111f2e |
rev | line source |
---|---|
3 | 1 from datetime import datetime, timedelta |
2 import os | |
3 import sys | |
4 | |
5 import kid | |
6 | |
7 def test(): | |
8 base_path = os.path.dirname(os.path.abspath(__file__)) | |
21
eca77129518a
* Include paths are now interpreted relative to the path of the including template. Closes #3.
cmlenz
parents:
3
diff
changeset
|
9 kid.path = kid.TemplatePath([base_path]) |
3 | 10 |
11 ctxt = dict(hello='<world>', hey='ZYX', bozz=None, | |
12 items=['Number %d' % num for num in range(1, 15)], | |
13 prefix='#') | |
14 | |
15 start = datetime.now() | |
16 template = kid.Template(file='test.kid', **ctxt) | |
17 print ' --> parse stage: ', datetime.now() - start | |
18 | |
19 times = [] | |
20 for i in range(100): | |
21 start = datetime.now() | |
22 for output in template.generate(): | |
23 if i == 0: | |
24 sys.stdout.write(output) | |
25 if i == 0: | |
26 print | |
27 else: | |
28 sys.stdout.write('.') | |
29 sys.stdout.flush() | |
30 times.append(datetime.now() - start) | |
31 print | |
32 | |
33 total_ms = sum([t.seconds * 1000 + t.microseconds for t in times]) | |
34 print ' --> render stage: %s (avg), %s (min), %s (max):' % ( | |
35 timedelta(microseconds=total_ms / len(times)), | |
36 timedelta(microseconds=min([t.seconds * 1000 + t.microseconds for t in times])), | |
37 timedelta(microseconds=max([t.seconds * 1000 + t.microseconds for t in times]))) | |
38 | |
39 if __name__ == '__main__': | |
40 if '-p' in sys.argv: | |
41 import profile, pstats | |
42 profile.run('test()', '.tmpl_prof') | |
43 stats = pstats.Stats('.tmpl_prof') | |
44 stats.strip_dirs().sort_stats('time').print_stats(10) | |
45 else: | |
46 test() |