def __init__(self, stream, encode, decode, Reader, Writer,<EOL>errors='<STR_LIT:strict>'):
self.stream = stream<EOL>self.encode = encode<EOL>self.decode = decode<EOL>self.reader = Reader(stream, errors)<EOL>self.writer = Writer(stream, errors)<EOL>self.errors = errors<EOL>
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 the
            StreamReader, StreamWriter interface resp.

            encode and decode are needed for the frontend translation,
            Reader and Writer for the backend translation. Unicode is
            used as intermediate encoding.

            Error handling is done in the same way as defined for the
            StreamWriter/Readers.