""" 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,

    )

