<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -668,6 +668,56 @@ class Jinja2Entry(Entry):
 Entry.register(Jinja2Entry)
 
 
+class PythonEntry(Entry):
+
+    basename = 'python'
+    template_filename = None
+    salts = [ re.match('pythoncode/python_(.*)\.py', x).group(1)
+                for x in glob('pythoncode/python_*.py') ]
+    salts.sort()
+    salts = []
+
+    def create_template(cls):
+        pass
+    create_template = classmethod(create_template)
+
+    def load_library(cls):
+        return True
+    load_library = classmethod(load_library)
+
+    def available(self):
+        return True
+
+    def _execute_(self, filename, context, ntimes, _buf = None):
+        script = read_file(filename)
+        code = compile(script, filename, 'exec')
+        from tenjin.helpers import to_str
+        global use_str
+        if use_str: to_str = str
+        global_vars = globals()
+        for i in xrange(ntimes):
+            local_vars = { 'to_str': to_str, 'list': context['list'], '_buf': _buf }
+            exec(code, global_vars, local_vars)
+            output = local_vars.get('output')
+        return output or True
+
+    def _execute_mmap_str(self, context, ntimes):
+        filename = 'pythoncode/python_mmap_str.py'
+        import mmap
+        _buf = mmap.mmap(-1, 2*1024*1024);
+        return self._execute_(filename, context, ntimes, _buf)
+
+for filename in glob('pythoncode/python_*.py'):
+    name = re.match('pythoncode/python_(.*).py', filename).group(1)
+    method_name = &quot;_execute_%s&quot; % name
+    if hasattr(PythonEntry, method_name): continue
+    def method_func(self, context, ntimes, _filename=filename):
+        return self._execute_(_filename, context, ntimes)
+    setattr(PythonEntry, method_name, method_func)
+
+Entry.register(PythonEntry)
+
+
 ## ----------------------------------------
 
 </diff>
      <filename>python/benchmark/bench.py</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>bf43d8338d49a3b011f40cd75be484a0000e67af</id>
    </parent>
  </parents>
  <author>
    <name>makoto kuwata</name>
    <email>kwa@kuwata-lab.com</email>
  </author>
  <url>http://github.com/kwatch/tenjin/commit/c3597aa7f398c4c0f8d76b2d1d86b8031467ec1e</url>
  <id>c3597aa7f398c4c0f8d76b2d1d86b8031467ec1e</id>
  <committed-date>2009-09-27T04:32:37-07:00</committed-date>
  <authored-date>2009-09-27T04:32:37-07:00</authored-date>
  <message>python: enhance 'bench.py' to add 'PythonEntry' class</message>
  <tree>7b16131d7f2f0e0f9831422636ec3e0138994dc0</tree>
  <committer>
    <name>makoto kuwata</name>
    <email>kwa@kuwata-lab.com</email>
  </committer>
</commit>
