The StreamWriter class is a subclass of Codec and
defines the following methods which every stream writer must define in
order to be compatible to the Python codec registry.
All stream writers must provide this constructor interface. They are
free to add additional keyword arguments, but only the ones defined
here are used by the Python codec registry.
stream must be a file-like object open for writing (binary)
data.
The StreamWriter may implement different error handling
schemes by providing the errors keyword argument. These
parameters are defined:
'strict' Raise ValueError (or a subclass);
this is the default.
'ignore' Ignore the character and continue with the next.
'replace' Replace with a suitable replacement character
Flushes and resets the codec buffers used for keeping state.
Calling this method should ensure that the data on the output is put
into a clean state, that allows appending of new fresh data without
having to rescan the whole stream to recover state.
In addition to the above methods, the StreamWriter must also
inherit all other methods and attribute from the underlying stream.