changeset 79:8d6bee631a58 trunk

Added SimpleTAL example to benchmark.
author cmlenz
date Thu, 13 Jul 2006 18:52:26 +0000
parents 46fed54f23cd
children e0957965553f
files examples/bench/run.py examples/bench/simpletal/base.html examples/bench/simpletal/template.html
diffstat 3 files changed, 63 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/examples/bench/run.py
+++ b/examples/bench/run.py
@@ -1,7 +1,7 @@
 from cgi import escape
 import os
+from StringIO import StringIO
 import sys
-import time
 import timeit
 
 __all__ = ['markup', 'clearsilver', 'django', 'kid']
@@ -81,6 +81,25 @@
         print template
     return render
 
+def simpletal(dirname):
+    from simpletal import simpleTAL, simpleTALES
+    fileobj = open(os.path.join(dirname, 'base.html'))
+    base = simpleTAL.compileHTMLTemplate(fileobj)
+    fileobj.close()
+    fileobj = open(os.path.join(dirname, 'template.html'))
+    template = simpleTAL.compileHTMLTemplate(fileobj)
+    fileobj.close()
+    def render():
+        ctxt = simpleTALES.Context()
+        ctxt.addGlobal('base', base)
+        ctxt.addGlobal('title', 'Just a test')
+        ctxt.addGlobal('user', 'joe')
+        ctxt.addGlobal('items', ['Number %d' % num for num in range(1, 15)])
+        buf = StringIO()
+        template.expand(ctxt, buf)
+        return buf.getvalue()
+    return render
+
 def run(engines):
     basepath = os.path.abspath(os.path.dirname(__file__))
     for engine in engines:
new file mode 100644
--- /dev/null
+++ b/examples/bench/simpletal/base.html
@@ -0,0 +1,15 @@
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+
+  <p metal:define-macro="greeting">
+    Hello, <span metal:define-slot="name">name</span>
+  </p>
+
+  <body metal:define-macro="content">
+    <div id="header">
+      <h1 tal:content="title" />
+    </div>
+    <div metal:define-slot="content" tal:omit-tag="" />
+    <div id="footer"></div>
+  </body>
+
+</html>
new file mode 100644
--- /dev/null
+++ b/examples/bench/simpletal/template.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html
+    PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+  <head>
+    <title tal:content="title">Title</title>
+  </head>
+  <body metal:use-macro="base/macros/content">
+    <div metal:fill-slot="content">
+
+      <div metal:use-macro="base/macros/greeting">
+        <span metal:fill-slot="name" tal:content="user" tal:omit-tag=""></span>
+      </div>
+      <div metal:use-macro="base/macros/greeting">
+        <span metal:fill-slot="name" tal:omit-tag="">me</span>
+      </div>
+      <div metal:use-macro="base/macros/greeting">
+        <span metal:fill-slot="name" tal:omit-tag="">world</span>
+      </div>
+
+      <h2>Loop</h2>
+      <ul tal:condition="items">
+        <li tal:repeat="item items" tal:content="item">Item</li>
+      </ul>
+
+    </div>
+  </body>
+</html>
Copyright (C) 2012-2017 Edgewall Software