In the Python 2 documentation, for codecs.Codec it states, "Use StreamCodec for codecs which have to keep state in order to make encoding/decoding efficient".
However, StreamCodec is not documented within the codecs module, and nor does it appear anywhere else in the documentation.
How does StreamCodec differ to Codec? Is there any difference in the API or its guarantees, and are there any specific attributes where state should be stored?