annotate examples/basic/kidrun.py @ 912:46db99909472 experimental-py3k

py3k branch: add 2to3 build infrastructure to setup.py (this pulls the tests into the source distribution so that tests can be run after building with 2to3)
author hodgestar
date Sun, 24 Oct 2010 21:09:36 +0000
parents c82c002d4c32
children
rev   line source
73
b0fd16111f2e Some more performance tweaks.
cmlenz
parents: 21
diff changeset
1 #!/usr/bin/python
b0fd16111f2e Some more performance tweaks.
cmlenz
parents: 21
diff changeset
2 # -*- coding: utf-8 -*-
b0fd16111f2e Some more performance tweaks.
cmlenz
parents: 21
diff changeset
3
3
e86dcec16d55 Added basic example.
cmlenz
parents:
diff changeset
4 import os
e86dcec16d55 Added basic example.
cmlenz
parents:
diff changeset
5 import sys
73
b0fd16111f2e Some more performance tweaks.
cmlenz
parents: 21
diff changeset
6 import time
3
e86dcec16d55 Added basic example.
cmlenz
parents:
diff changeset
7
e86dcec16d55 Added basic example.
cmlenz
parents:
diff changeset
8 import kid
e86dcec16d55 Added basic example.
cmlenz
parents:
diff changeset
9
e86dcec16d55 Added basic example.
cmlenz
parents:
diff changeset
10 def test():
e86dcec16d55 Added basic example.
cmlenz
parents:
diff changeset
11 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
12 kid.path = kid.TemplatePath([base_path])
3
e86dcec16d55 Added basic example.
cmlenz
parents:
diff changeset
13
e86dcec16d55 Added basic example.
cmlenz
parents:
diff changeset
14 ctxt = dict(hello='<world>', hey='ZYX', bozz=None,
e86dcec16d55 Added basic example.
cmlenz
parents:
diff changeset
15 items=['Number %d' % num for num in range(1, 15)],
e86dcec16d55 Added basic example.
cmlenz
parents:
diff changeset
16 prefix='#')
e86dcec16d55 Added basic example.
cmlenz
parents:
diff changeset
17
73
b0fd16111f2e Some more performance tweaks.
cmlenz
parents: 21
diff changeset
18 start = time.clock()
3
e86dcec16d55 Added basic example.
cmlenz
parents:
diff changeset
19 template = kid.Template(file='test.kid', **ctxt)
73
b0fd16111f2e Some more performance tweaks.
cmlenz
parents: 21
diff changeset
20 print ' --> parse stage: %.4f ms' % ((time.clock() - start) * 1000)
b0fd16111f2e Some more performance tweaks.
cmlenz
parents: 21
diff changeset
21
b0fd16111f2e Some more performance tweaks.
cmlenz
parents: 21
diff changeset
22 for output in template.generate():
b0fd16111f2e Some more performance tweaks.
cmlenz
parents: 21
diff changeset
23 sys.stdout.write(output)
b0fd16111f2e Some more performance tweaks.
cmlenz
parents: 21
diff changeset
24 print
3
e86dcec16d55 Added basic example.
cmlenz
parents:
diff changeset
25
e86dcec16d55 Added basic example.
cmlenz
parents:
diff changeset
26 times = []
73
b0fd16111f2e Some more performance tweaks.
cmlenz
parents: 21
diff changeset
27 for i in range(1000):
b0fd16111f2e Some more performance tweaks.
cmlenz
parents: 21
diff changeset
28 start = time.clock()
b0fd16111f2e Some more performance tweaks.
cmlenz
parents: 21
diff changeset
29 list(template.generate())
b0fd16111f2e Some more performance tweaks.
cmlenz
parents: 21
diff changeset
30 times.append(time.clock() - start)
b0fd16111f2e Some more performance tweaks.
cmlenz
parents: 21
diff changeset
31 sys.stdout.write('.')
b0fd16111f2e Some more performance tweaks.
cmlenz
parents: 21
diff changeset
32 sys.stdout.flush()
3
e86dcec16d55 Added basic example.
cmlenz
parents:
diff changeset
33 print
e86dcec16d55 Added basic example.
cmlenz
parents:
diff changeset
34
73
b0fd16111f2e Some more performance tweaks.
cmlenz
parents: 21
diff changeset
35 print ' --> render stage: %s ms (average)' % (
b0fd16111f2e Some more performance tweaks.
cmlenz
parents: 21
diff changeset
36 (sum(times) / len(times) * 1000))
3
e86dcec16d55 Added basic example.
cmlenz
parents:
diff changeset
37
e86dcec16d55 Added basic example.
cmlenz
parents:
diff changeset
38 if __name__ == '__main__':
e86dcec16d55 Added basic example.
cmlenz
parents:
diff changeset
39 if '-p' in sys.argv:
82
c82c002d4c32 Some minor cleanup.
cmlenz
parents: 73
diff changeset
40 import hotshot, hotshot.stats
c82c002d4c32 Some minor cleanup.
cmlenz
parents: 73
diff changeset
41 prof = hotshot.Profile("template.prof")
c82c002d4c32 Some minor cleanup.
cmlenz
parents: 73
diff changeset
42 benchtime = prof.runcall(test)
c82c002d4c32 Some minor cleanup.
cmlenz
parents: 73
diff changeset
43 stats = hotshot.stats.load("template.prof")
c82c002d4c32 Some minor cleanup.
cmlenz
parents: 73
diff changeset
44 stats.strip_dirs()
c82c002d4c32 Some minor cleanup.
cmlenz
parents: 73
diff changeset
45 stats.sort_stats('time', 'calls')
c82c002d4c32 Some minor cleanup.
cmlenz
parents: 73
diff changeset
46 stats.print_stats()
3
e86dcec16d55 Added basic example.
cmlenz
parents:
diff changeset
47 else:
e86dcec16d55 Added basic example.
cmlenz
parents:
diff changeset
48 test()
Copyright (C) 2012-2017 Edgewall Software