Mercurial > genshi > mirror
comparison markup/plugin.py @ 161:7b1f07496bf7 trunk
Various docstring additions and other cosmetic changes.
author | cmlenz |
---|---|
date | Wed, 16 Aug 2006 22:32:31 +0000 |
parents | fb71efbd6ad4 |
children | 2f30ce3fb85e |
comparison
equal
deleted
inserted
replaced
160:d19e8a2c549e | 161:7b1f07496bf7 |
---|---|
16 CherryPy/Buffet. | 16 CherryPy/Buffet. |
17 """ | 17 """ |
18 | 18 |
19 from pkg_resources import resource_filename | 19 from pkg_resources import resource_filename |
20 | 20 |
21 from markup import Stream, QName | 21 from markup.core import Attributes, Stream, QName |
22 from markup.template import Context, Template, TemplateLoader | 22 from markup.template import Context, Template, TemplateLoader |
23 | 23 |
24 def ET(element): | 24 def et_to_stream(element): |
25 """Converts the given ElementTree element to a markup stream.""" | |
25 tag_name = element.tag | 26 tag_name = element.tag |
26 if tag_name.startswith('{'): | 27 if tag_name.startswith('{'): |
27 tag_name = tag_name[1:] | 28 tag_name = tag_name[1:] |
28 tag_name = QName(tag_name) | 29 tag_name = QName(tag_name) |
30 attrib = Attributes(element.items()) | |
29 | 31 |
30 yield (Stream.START, (tag_name, element.items()), (None, -1, -1)) | 32 yield (Stream.START, (tag_name, attrib), (None, -1, -1)) |
31 if element.text: | 33 if element.text: |
32 yield Stream.TEXT, element.text, (None, -1, -1) | 34 yield Stream.TEXT, element.text, (None, -1, -1) |
33 for child in element.getchildren(): | 35 for child in element.getchildren(): |
34 for item in ET(child): | 36 for item in et_to_stream(child): |
35 yield item | 37 yield item |
36 yield Stream.END, tag_name, (None, -1, -1) | 38 yield Stream.END, tag_name, (None, -1, -1) |
37 if element.tail: | 39 if element.tail: |
38 yield Stream.TEXT, element.tail, (None, -1, -1) | 40 yield Stream.TEXT, element.tail, (None, -1, -1) |
39 | 41 |
67 def transform(self, info, template): | 69 def transform(self, info, template): |
68 """Render the output to an event stream.""" | 70 """Render the output to an event stream.""" |
69 if not isinstance(template, Template): | 71 if not isinstance(template, Template): |
70 template = self.load_template(template) | 72 template = self.load_template(template) |
71 | 73 |
72 data = {'ET': ET} | 74 data = {'ET': et_to_stream} |
73 if self.get_extra_vars: | 75 if self.get_extra_vars: |
74 data.update(self.get_extra_vars()) | 76 data.update(self.get_extra_vars()) |
75 data.update(info) | 77 data.update(info) |
76 | 78 |
77 return template.generate(**data) | 79 return template.generate(**data) |