4.9.1.5 StreamRecoder Objects
The StreamRecoder provide a frontend - backend view of encoding data
which is sometimes useful when dealing with different encoding environments.
The design is such that one can use the factory functions returned by the lookup() function to construct the instance.
-
| class StreamRecoder( |
stream, encode, decode, Reader, Writer, errors) |
- Creates a StreamRecoder instance which implements a two-way
conversion: encode and decode work on the frontend (the input to read() and output of write()) while Reader
and Writer work on the backend (reading and writing to the stream).
You can use these objects to do transparent direct recodings from e.g. Latin-1 to UTF-8
and back.
stream must be a file-like object.
encode, decode must adhere to the Codec
interface, Reader, Writer must be factory functions or classes
providing objects of the StreamReader and StreamWriter
interface respectively.
encode and decode are needed for the frontend translation, Reader
and Writer for the backend translation. The intermediate format used is
determined by the two sets of codecs, e.g. the Unicode codecs will use Unicode as
intermediate encoding.
Error handling is done in the same way as defined for the stream readers and writers.
StreamRecoder instances define the combined interfaces of StreamReader and StreamWriter classes. They inherit
all other methods and attribute from the underlying stream.
|