17db96d56Sopenharmony_ci""" Python 'raw-unicode-escape' Codec
27db96d56Sopenharmony_ci
37db96d56Sopenharmony_ci
47db96d56Sopenharmony_ciWritten by Marc-Andre Lemburg (mal@lemburg.com).
57db96d56Sopenharmony_ci
67db96d56Sopenharmony_ci(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
77db96d56Sopenharmony_ci
87db96d56Sopenharmony_ci"""
97db96d56Sopenharmony_ciimport codecs
107db96d56Sopenharmony_ci
117db96d56Sopenharmony_ci### Codec APIs
127db96d56Sopenharmony_ci
137db96d56Sopenharmony_ciclass Codec(codecs.Codec):
147db96d56Sopenharmony_ci
157db96d56Sopenharmony_ci    # Note: Binding these as C functions will result in the class not
167db96d56Sopenharmony_ci    # converting them to methods. This is intended.
177db96d56Sopenharmony_ci    encode = codecs.raw_unicode_escape_encode
187db96d56Sopenharmony_ci    decode = codecs.raw_unicode_escape_decode
197db96d56Sopenharmony_ci
207db96d56Sopenharmony_ciclass IncrementalEncoder(codecs.IncrementalEncoder):
217db96d56Sopenharmony_ci    def encode(self, input, final=False):
227db96d56Sopenharmony_ci        return codecs.raw_unicode_escape_encode(input, self.errors)[0]
237db96d56Sopenharmony_ci
247db96d56Sopenharmony_ciclass IncrementalDecoder(codecs.BufferedIncrementalDecoder):
257db96d56Sopenharmony_ci    def _buffer_decode(self, input, errors, final):
267db96d56Sopenharmony_ci        return codecs.raw_unicode_escape_decode(input, errors, final)
277db96d56Sopenharmony_ci
287db96d56Sopenharmony_ciclass StreamWriter(Codec,codecs.StreamWriter):
297db96d56Sopenharmony_ci    pass
307db96d56Sopenharmony_ci
317db96d56Sopenharmony_ciclass StreamReader(Codec,codecs.StreamReader):
327db96d56Sopenharmony_ci    def decode(self, input, errors='strict'):
337db96d56Sopenharmony_ci        return codecs.raw_unicode_escape_decode(input, errors, False)
347db96d56Sopenharmony_ci
357db96d56Sopenharmony_ci### encodings module API
367db96d56Sopenharmony_ci
377db96d56Sopenharmony_cidef getregentry():
387db96d56Sopenharmony_ci    return codecs.CodecInfo(
397db96d56Sopenharmony_ci        name='raw-unicode-escape',
407db96d56Sopenharmony_ci        encode=Codec.encode,
417db96d56Sopenharmony_ci        decode=Codec.decode,
427db96d56Sopenharmony_ci        incrementalencoder=IncrementalEncoder,
437db96d56Sopenharmony_ci        incrementaldecoder=IncrementalDecoder,
447db96d56Sopenharmony_ci        streamwriter=StreamWriter,
457db96d56Sopenharmony_ci        streamreader=StreamReader,
467db96d56Sopenharmony_ci    )
47