As of Python2.5, StreamWriter wraps (contains) a stream. It defines write and other respective methods to "encode" the data and pass the result to the stream. It exposes all other methods of the stream instance.
Pseudocode of the codecs.StreamWriter definition:
The encode method normally converts values of type unicode to strs.
Codec modules will attach the encode method to the class definition derived from StreamWriter during the initialization. An excerpt from encodings.utf_8.StreamWriter:
See also: StreamReader, StreamReaderWriter, StreamRecoder.