48 '<xx>\\n\\tyy\\n</xx>\\n' |
48 '<xx>\\n\\tyy\\n</xx>\\n' |
49 """ |
49 """ |
50 |
50 |
51 return self.render_unicode(**render_opts).encode(encoding) |
51 return self.render_unicode(**render_opts).encode(encoding) |
52 |
52 |
53 def render_out (self, stream, encoding, **render_opts) : |
53 def render_out (self, stream, encoding=None, **render_opts) : |
54 """ |
54 """ |
55 Render output into the given stream, encoding using the given encoding |
55 Render output into the given stream, encoding using the given encoding if given. |
56 |
56 |
57 >>> from StringIO import StringIO; buf = StringIO(); Tag('xx', 'yy').render_out(buf, 'ascii'); buf.getvalue() |
57 >>> from StringIO import StringIO; buf = StringIO(); Tag('xx', 'yy').render_out(buf, 'ascii'); buf.getvalue() |
58 '<xx>\\n\\tyy\\n</xx>\\n' |
58 '<xx>\\n\\tyy\\n</xx>\\n' |
59 """ |
59 """ |
60 |
60 |
61 for line in self.render_lines(**render_opts) : |
61 for line in self.render_lines(**render_opts) : |
62 stream.write(line.encode(encoding)) |
62 if encoding : |
|
63 line = line.encode(encoding) |
|
64 |
|
65 stream.write(line) |
63 |
66 |
|
67 def render_file (self, file, encoding=None, **render_opts) : |
|
68 """ |
|
69 Render output to given file, overwriteing anything already there |
|
70 """ |
|
71 |
|
72 self.render_out(self, file.open_write(encoding), **render_opts) |
|
73 |
64 # default output |
74 # default output |
65 __str__ = render_str |
75 __str__ = render_str |
66 __unicode__ = render_unicode |
76 __unicode__ = render_unicode |
67 |
77 |
68 # default .render method |
78 # default .render method |