diff options
author | Hanno Schlichting <hanno@hannosch.eu> | 2011-08-20 15:44:04 +0000 |
---|---|---|
committer | Hanno Schlichting <hanno@hannosch.eu> | 2011-08-20 15:44:04 +0000 |
commit | 1367f9511261bea77dfae339fcf91513ba6fa996 (patch) | |
tree | 1637140515d47cadec5334c058848a7cad001f04 /src | |
parent | b951f9ec834ff7f1ee2ccde58f9ee472097d61fb (diff) | |
download | zope-pagetemplate-1367f9511261bea77dfae339fcf91513ba6fa996.tar.gz |
Replaced StringIO stream class with a faster list-based implementation.
Diffstat (limited to 'src')
-rw-r--r-- | src/zope/pagetemplate/pagetemplate.py | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/zope/pagetemplate/pagetemplate.py b/src/zope/pagetemplate/pagetemplate.py index 0b3bfcc..55f7ffb 100644 --- a/src/zope/pagetemplate/pagetemplate.py +++ b/src/zope/pagetemplate/pagetemplate.py @@ -22,8 +22,6 @@ from zope.tal.talgenerator import TALGenerator 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 @@ _default_options = {} _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. |