The Python2.5's {{{codecs.StreamReaderWriter}}} combines StreamReader and StreamWriter. The wrapper will read narrow {{{str}}} strings from the underlying stream and decode them to {{{unicode}}} strings. On writing {{{unicode}}} data to the wrapper, it will encode them to narrow {{{str}}} strings. The user of the wrapper should specify character sets by supplying class definitions for the respective stream reader and writer. Pseudocode: {{{ #!python class StreamReaderWriter: def __init__(self, stream, class_sr, class_sw): self.r = class_sr(stream) self.w = class_sw(stream) def read(self): return self.r.read() def write(self, data): return self.w.write(data) }}} The {{{codecs}}} module defines a function {{{codecs.open(name, encoding)}}} that returns an instance of {{{StreamReaderWriter}}} configured with the supplied encoding. ---- See also: StreamReader, StreamWriter, StreamRecoder. ---- CategoryUnicode