diff options
author | Walter Dörwald <walter@livinglogic.de> | 2006-03-15 11:35:15 (GMT) |
---|---|---|
committer | Walter Dörwald <walter@livinglogic.de> | 2006-03-15 11:35:15 (GMT) |
commit | abb02e59946f9ea3076e96e3b03b51d1cebd46b4 (patch) | |
tree | 165444acd89173a8832547078cbc417d4626116e /Lib/encodings/utf_16_le.py | |
parent | e2ebb2d7f777db2de72cfeb0e3c489ac4cc5c400 (diff) | |
download | cpython-abb02e59946f9ea3076e96e3b03b51d1cebd46b4.zip cpython-abb02e59946f9ea3076e96e3b03b51d1cebd46b4.tar.gz cpython-abb02e59946f9ea3076e96e3b03b51d1cebd46b4.tar.bz2 |
Patch #1436130: codecs.lookup() now returns a CodecInfo object (a subclass
of tuple) that provides incremental decoders and encoders (a way to use
stateful codecs without the stream API). Functions
codecs.getincrementaldecoder() and codecs.getincrementalencoder() have
been added.
Diffstat (limited to 'Lib/encodings/utf_16_le.py')
-rw-r--r-- | Lib/encodings/utf_16_le.py | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/Lib/encodings/utf_16_le.py b/Lib/encodings/utf_16_le.py index 95ca830..ec45414 100644 --- a/Lib/encodings/utf_16_le.py +++ b/Lib/encodings/utf_16_le.py @@ -15,15 +15,28 @@ encode = codecs.utf_16_le_encode def decode(input, errors='strict'): return codecs.utf_16_le_decode(input, errors, True) +class IncrementalEncoder(codecs.IncrementalEncoder): + def encode(self, input, final=False): + return codecs.utf_16_le_encode(input, self.errors)[0] + +class IncrementalDecoder(codecs.BufferedIncrementalDecoder): + _buffer_decode = codecs.utf_16_le_decode + class StreamWriter(codecs.StreamWriter): encode = codecs.utf_16_le_encode class StreamReader(codecs.StreamReader): decode = codecs.utf_16_le_decode - ### encodings module API def getregentry(): - - return (encode,decode,StreamReader,StreamWriter) + return codecs.CodecInfo( + name='utf-16-le', + encode=encode, + decode=decode, + incrementalencoder=IncrementalEncoder, + incrementaldecoder=IncrementalDecoder, + streamreader=StreamReader, + streamwriter=StreamWriter, + ) |