# HG changeset patch # User Tero Marttila # Date 1244232215 -10800 # Node ID 5b53fe29403479b20247be3f6e458f5db7d2e9aa # Parent 49388e9fd5fa94c5a95bec3e7e703488c1dcd439 add render_file method for html.IRenderable diff -r 49388e9fd5fa -r 5b53fe294034 degal/html.py --- 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() '\\n\\tyy\\n\\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