comparison genshi/output.py @ 958:6fc92535c888 experimental-performance-improvement-exploration

Be more careful about what is passed into streams as events and remove many uses of _ensure as a result. An ATTRS event is added for handling Attributes returned by gensh.path.select().
author hodgestar
date Tue, 13 Mar 2012 03:03:02 +0000
parents f15334b65cf8
children
comparison
equal deleted inserted replaced
957:51ab60299647 958:6fc92535c888
18 from itertools import chain 18 from itertools import chain
19 import re 19 import re
20 20
21 from genshi.core import escape, Attrs, Markup, Namespace, QName, StreamEventKind 21 from genshi.core import escape, Attrs, Markup, Namespace, QName, StreamEventKind
22 from genshi.core import START, END, TEXT, XML_DECL, DOCTYPE, START_NS, END_NS, \ 22 from genshi.core import START, END, TEXT, XML_DECL, DOCTYPE, START_NS, END_NS, \
23 START_CDATA, END_CDATA, PI, COMMENT, XML_NAMESPACE 23 START_CDATA, END_CDATA, PI, COMMENT, XML_NAMESPACE, ATTRS
24 24
25 __all__ = ['encode', 'get_serializer', 'DocType', 'XMLSerializer', 25 __all__ = ['encode', 'get_serializer', 'DocType', 'XMLSerializer',
26 'XHTMLSerializer', 'HTMLSerializer', 'TextSerializer'] 26 'XHTMLSerializer', 'HTMLSerializer', 'TextSerializer']
27 __docformat__ = 'restructuredtext en' 27 __docformat__ = 'restructuredtext en'
28 28
299 in_cdata = False 299 in_cdata = False
300 300
301 elif kind is PI: 301 elif kind is PI:
302 yield _emit(kind, data, Markup('<?%s %s?>' % data)) 302 yield _emit(kind, data, Markup('<?%s %s?>' % data))
303 303
304 elif kind is ATTRS:
305 # this is specifically to support the rendering of
306 # streams generated by genshi.path.select() and provides
307 # backwards compatibility with genshi < 0.7
308 yield data.concatenate_values()
309
304 310
305 class XHTMLSerializer(XMLSerializer): 311 class XHTMLSerializer(XMLSerializer):
306 """Produces XHTML text from an event stream. 312 """Produces XHTML text from an event stream.
307 313
308 >>> from genshi.builder import tag 314 >>> from genshi.builder import tag
Copyright (C) 2012-2017 Edgewall Software