Mercurial > genshi > genshi-test
changeset 636:e0f12a6f3612
Follow-up to [751]: applying the optimization to text templates was actually slowing them down, so only do it for markup templates.
author | cmlenz |
---|---|
date | Wed, 05 Sep 2007 13:06:59 +0000 |
parents | 12d0357440b3 |
children | 93a19f09eebe |
files | genshi/template/base.py genshi/template/markup.py |
diffstat | 2 files changed, 6 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/genshi/template/base.py +++ b/genshi/template/base.py @@ -23,8 +23,7 @@ from StringIO import StringIO import sys -from genshi.core import Attrs, Markup, Stream, StreamEventKind, START, TEXT, \ - _ensure +from genshi.core import Attrs, Stream, StreamEventKind, START, TEXT, _ensure from genshi.input import ParseError __all__ = ['Context', 'Template', 'TemplateError', 'TemplateRuntimeError', @@ -302,6 +301,7 @@ """ serializer = None + _number_conv = unicode # function used to convert numbers to event data def __init__(self, source, basedir=None, filename=None, loader=None, encoding=None, lookup='strict', allow_exec=True): @@ -445,6 +445,7 @@ `TEXT` events. """ filters = (self._flatten, self._eval) + number_conv = self._number_conv for kind, data, pos in stream: @@ -477,7 +478,7 @@ if isinstance(result, basestring): yield TEXT, result, pos elif isinstance(result, (int, float, long)): - yield TEXT, Markup(result), pos + yield TEXT, number_conv(result), pos elif hasattr(result, '__iter__'): substream = _ensure(result) for filter_ in filters:
--- a/genshi/template/markup.py +++ b/genshi/template/markup.py @@ -15,7 +15,7 @@ from itertools import chain -from genshi.core import Attrs, Namespace, Stream, StreamEventKind +from genshi.core import Attrs, Markup, Namespace, Stream, StreamEventKind from genshi.core import START, END, START_NS, END_NS, TEXT, PI, COMMENT from genshi.input import XMLParser from genshi.template.base import BadDirectiveError, Template, \ @@ -58,6 +58,7 @@ ('attrs', AttrsDirective), ('strip', StripDirective)] serializer = 'xml' + _number_conv = Markup def __init__(self, source, basedir=None, filename=None, loader=None, encoding=None, lookup='strict', allow_exec=True):