annotate examples/basic/kidrun.py @ 912:c74a141a48ff 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 5ca4be55ad0b
children
rev   line source
73
1da51d718391 Some more performance tweaks.
cmlenz
parents: 21
diff changeset
1 #!/usr/bin/python
1da51d718391 Some more performance tweaks.
cmlenz
parents: 21
diff changeset
2 # -*- coding: utf-8 -*-
1da51d718391 Some more performance tweaks.
cmlenz
parents: 21
diff changeset
3
3
518a8520a6e1 Added basic example.
cmlenz
parents:
diff changeset
4 import os
518a8520a6e1 Added basic example.
cmlenz
parents:
diff changeset
5 import sys
73
1da51d718391 Some more performance tweaks.
cmlenz
parents: 21
diff changeset
6 import time
3
518a8520a6e1 Added basic example.
cmlenz
parents:
diff changeset
7
518a8520a6e1 Added basic example.
cmlenz
parents:
diff changeset
8 import kid
518a8520a6e1 Added basic example.
cmlenz
parents:
diff changeset
9
518a8520a6e1 Added basic example.
cmlenz
parents:
diff changeset
10 def test():
518a8520a6e1 Added basic example.
cmlenz
parents:
diff changeset
11 base_path = os.path.dirname(os.path.abspath(__file__))
21
b4d17897d053 * 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
518a8520a6e1 Added basic example.
cmlenz
parents:
diff changeset
13
518a8520a6e1 Added basic example.
cmlenz
parents:
diff changeset
14 ctxt = dict(hello='<world>', hey='ZYX', bozz=None,
518a8520a6e1 Added basic example.
cmlenz
parents:
diff changeset
15 items=['Number %d' % num for num in range(1, 15)],
518a8520a6e1 Added basic example.
cmlenz
parents:
diff changeset
16 prefix='#')
518a8520a6e1 Added basic example.
cmlenz
parents:
diff changeset
17
73
1da51d718391 Some more performance tweaks.
cmlenz
parents: 21
diff changeset
18 start = time.clock()
3
518a8520a6e1 Added basic example.
cmlenz
parents:
diff changeset
19 template = kid.Template(file='test.kid', **ctxt)
73
1da51d718391 Some more performance tweaks.
cmlenz
parents: 21
diff changeset
20 print ' --> parse stage: %.4f ms' % ((time.clock() - start) * 1000)
1da51d718391 Some more performance tweaks.
cmlenz
parents: 21
diff changeset
21
1da51d718391 Some more performance tweaks.
cmlenz
parents: 21
diff changeset
22 for output in template.generate():
1da51d718391 Some more performance tweaks.
cmlenz
parents: 21
diff changeset
23 sys.stdout.write(output)
1da51d718391 Some more performance tweaks.
cmlenz
parents: 21
diff changeset
24 print
3
518a8520a6e1 Added basic example.
cmlenz
parents:
diff changeset
25
518a8520a6e1 Added basic example.
cmlenz
parents:
diff changeset
26 times = []
73
1da51d718391 Some more performance tweaks.
cmlenz
parents: 21
diff changeset
27 for i in range(1000):
1da51d718391 Some more performance tweaks.
cmlenz
parents: 21
diff changeset
28 start = time.clock()
1da51d718391 Some more performance tweaks.
cmlenz
parents: 21
diff changeset
29 list(template.generate())
1da51d718391 Some more performance tweaks.
cmlenz
parents: 21
diff changeset
30 times.append(time.clock() - start)
1da51d718391 Some more performance tweaks.
cmlenz
parents: 21
diff changeset
31 sys.stdout.write('.')
1da51d718391 Some more performance tweaks.
cmlenz
parents: 21
diff changeset
32 sys.stdout.flush()
3
518a8520a6e1 Added basic example.
cmlenz
parents:
diff changeset
33 print
518a8520a6e1 Added basic example.
cmlenz
parents:
diff changeset
34
73
1da51d718391 Some more performance tweaks.
cmlenz
parents: 21
diff changeset
35 print ' --> render stage: %s ms (average)' % (
1da51d718391 Some more performance tweaks.
cmlenz
parents: 21
diff changeset
36 (sum(times) / len(times) * 1000))
3
518a8520a6e1 Added basic example.
cmlenz
parents:
diff changeset
37
518a8520a6e1 Added basic example.
cmlenz
parents:
diff changeset
38 if __name__ == '__main__':
518a8520a6e1 Added basic example.
cmlenz
parents:
diff changeset
39 if '-p' in sys.argv:
82
5ca4be55ad0b Some minor cleanup.
cmlenz
parents: 73
diff changeset
40 import hotshot, hotshot.stats
5ca4be55ad0b Some minor cleanup.
cmlenz
parents: 73
diff changeset
41 prof = hotshot.Profile("template.prof")
5ca4be55ad0b Some minor cleanup.
cmlenz
parents: 73
diff changeset
42 benchtime = prof.runcall(test)
5ca4be55ad0b Some minor cleanup.
cmlenz
parents: 73
diff changeset
43 stats = hotshot.stats.load("template.prof")
5ca4be55ad0b Some minor cleanup.
cmlenz
parents: 73
diff changeset
44 stats.strip_dirs()
5ca4be55ad0b Some minor cleanup.
cmlenz
parents: 73
diff changeset
45 stats.sort_stats('time', 'calls')
5ca4be55ad0b Some minor cleanup.
cmlenz
parents: 73
diff changeset
46 stats.print_stats()
3
518a8520a6e1 Added basic example.
cmlenz
parents:
diff changeset
47 else:
518a8520a6e1 Added basic example.
cmlenz
parents:
diff changeset
48 test()
Copyright (C) 2012-2017 Edgewall Software