[Checkins] SVN: zope.pagetemplate/trunk/ Replaced StringIO stream class with a faster list-based implementation.
Hanno Schlichting
hannosch at hannosch.eu
Sat Aug 20 11:44:05 EDT 2011
Log message for revision 122621:
Replaced StringIO stream class with a faster list-based implementation.
Changed:
U zope.pagetemplate/trunk/CHANGES.txt
U zope.pagetemplate/trunk/setup.py
U zope.pagetemplate/trunk/src/zope/pagetemplate/pagetemplate.py
-=-
Modified: zope.pagetemplate/trunk/CHANGES.txt
===================================================================
--- zope.pagetemplate/trunk/CHANGES.txt 2011-08-20 14:34:08 UTC (rev 122620)
+++ zope.pagetemplate/trunk/CHANGES.txt 2011-08-20 15:44:04 UTC (rev 122621)
@@ -3,9 +3,12 @@
=======
3.6.0 (unreleased)
+------------------
+- Replaced StringIO stream class with a faster list-based implementation.
+
- Abstract out the template engine and program interfaces and allow
- implementation replacement via a utility component registration.
+ implementation replacement via a utility registration.
3.5.3 (unreleased)
------------------
Modified: zope.pagetemplate/trunk/setup.py
===================================================================
--- zope.pagetemplate/trunk/setup.py 2011-08-20 14:34:08 UTC (rev 122620)
+++ zope.pagetemplate/trunk/setup.py 2011-08-20 15:44:04 UTC (rev 122621)
@@ -27,7 +27,7 @@
setup(name='zope.pagetemplate',
- version='3.5.3dev',
+ version='3.6.0dev',
author='Zope Foundation and Contributors',
author_email='zope-dev at zope.org',
description='Zope Page Templates',
Modified: zope.pagetemplate/trunk/src/zope/pagetemplate/pagetemplate.py
===================================================================
--- zope.pagetemplate/trunk/src/zope/pagetemplate/pagetemplate.py 2011-08-20 14:34:08 UTC (rev 122620)
+++ zope.pagetemplate/trunk/src/zope/pagetemplate/pagetemplate.py 2011-08-20 15:44:04 UTC (rev 122621)
@@ -22,8 +22,6 @@
from zope.tal.talinterpreter import TALInterpreter
from zope.tales.engine import Engine
from zope.component import queryUtility
-# Don't use cStringIO here! It's not unicode aware.
-from StringIO import StringIO
from zope.pagetemplate.interfaces import IPageTemplateSubclassing
from zope.pagetemplate.interfaces import IPageTemplateEngine
@@ -35,6 +33,20 @@
_error_start = '<!-- Page Template Diagnostics'
+class StringIO(list):
+ """Unicode aware append-only version of StringIO.
+ """
+ write = list.append
+
+ def __init__(self, value=None):
+ list.__init__(self)
+ if value is not None:
+ self.append(value)
+
+ def getvalue(self):
+ return u''.join(self)
+
+
class PageTemplate(object):
"""Page Templates using TAL, TALES, and METAL.
More information about the checkins
mailing list