--- a/degal/html.py Fri Jun 05 23:02:47 2009 +0300
+++ b/degal/html.py Fri Jun 05 23:03:35 2009 +0300
@@ -50,17 +50,27 @@
return self.render_unicode(**render_opts).encode(encoding)
- def render_out (self, stream, encoding, **render_opts) :
+ def render_out (self, stream, encoding=None, **render_opts) :
"""
- Render output into the given stream, encoding using the given encoding
+ Render output into the given stream, encoding using the given encoding if given.
>>> from StringIO import StringIO; buf = StringIO(); Tag('xx', 'yy').render_out(buf, 'ascii'); buf.getvalue()
'<xx>\\n\\tyy\\n</xx>\\n'
"""
for line in self.render_lines(**render_opts) :
- stream.write(line.encode(encoding))
+ if encoding :
+ line = line.encode(encoding)
+
+ stream.write(line)
+ def render_file (self, file, encoding=None, **render_opts) :
+ """
+ Render output to given file, overwriteing anything already there
+ """
+
+ self.render_out(self, file.open_write(encoding), **render_opts)
+
# default output
__str__ = render_str
__unicode__ = render_unicode