Mercurial > genshi > mirror
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 |