mirror of
https://github.com/python/cpython.git
synced 2025-07-27 21:24:32 +00:00

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.
45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
""" Python 'raw-unicode-escape' Codec
|
|
|
|
|
|
Written by Marc-Andre Lemburg (mal@lemburg.com).
|
|
|
|
(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
|
|
|
|
"""
|
|
import codecs
|
|
|
|
### Codec APIs
|
|
|
|
class Codec(codecs.Codec):
|
|
|
|
# Note: Binding these as C functions will result in the class not
|
|
# converting them to methods. This is intended.
|
|
encode = codecs.raw_unicode_escape_encode
|
|
decode = codecs.raw_unicode_escape_decode
|
|
|
|
class IncrementalEncoder(codecs.IncrementalEncoder):
|
|
def encode(self, input, final=False):
|
|
return codecs.raw_unicode_escape_encode(input, self.errors)[0]
|
|
|
|
class IncrementalDecoder(codecs.IncrementalDecoder):
|
|
def decode(self, input, final=False):
|
|
return codecs.raw_unicode_escape_decode(input, self.errors)[0]
|
|
|
|
class StreamWriter(Codec,codecs.StreamWriter):
|
|
pass
|
|
|
|
class StreamReader(Codec,codecs.StreamReader):
|
|
pass
|
|
|
|
### encodings module API
|
|
|
|
def getregentry():
|
|
return codecs.CodecInfo(
|
|
name='raw-unicode-escape',
|
|
encode=Codec.encode,
|
|
decode=Codec.decode,
|
|
incrementalencoder=IncrementalEncoder,
|
|
incrementaldecoder=IncrementalDecoder,
|
|
streamwriter=StreamWriter,
|
|
streamreader=StreamReader,
|
|
)
|