degal/html.py
changeset 69 5b53fe294034
parent 61 fad360dd01da
child 76 e22d9f699081
equal deleted inserted replaced
68:49388e9fd5fa 69:5b53fe294034
    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