Home | History | Annotate | Download | only in encodings
      1 """ Python 'unicode-internal' Codec
      2 
      3 
      4 Written by Marc-Andre Lemburg (mal (at] lemburg.com).
      5 
      6 (c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
      7 
      8 """
      9 import codecs
     10 
     11 ### Codec APIs
     12 
     13 class Codec(codecs.Codec):
     14 
     15     # Note: Binding these as C functions will result in the class not
     16     # converting them to methods. This is intended.
     17     encode = codecs.unicode_internal_encode
     18     decode = codecs.unicode_internal_decode
     19 
     20 class IncrementalEncoder(codecs.IncrementalEncoder):
     21     def encode(self, input, final=False):
     22         return codecs.unicode_internal_encode(input, self.errors)[0]
     23 
     24 class IncrementalDecoder(codecs.IncrementalDecoder):
     25     def decode(self, input, final=False):
     26         return codecs.unicode_internal_decode(input, self.errors)[0]
     27 
     28 class StreamWriter(Codec,codecs.StreamWriter):
     29     pass
     30 
     31 class StreamReader(Codec,codecs.StreamReader):
     32     pass
     33 
     34 ### encodings module API
     35 
     36 def getregentry():
     37     return codecs.CodecInfo(
     38         name='unicode-internal',
     39         encode=Codec.encode,
     40         decode=Codec.decode,
     41         incrementalencoder=IncrementalEncoder,
     42         incrementaldecoder=IncrementalDecoder,
     43         streamwriter=StreamWriter,
     44         streamreader=StreamReader,
     45     )
     46