Home | History | Annotate | Download | only in encodings
      1 """ Python 'ascii' 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.ascii_encode
     18     decode = codecs.ascii_decode
     19 
     20 class IncrementalEncoder(codecs.IncrementalEncoder):
     21     def encode(self, input, final=False):
     22         return codecs.ascii_encode(input, self.errors)[0]
     23 
     24 class IncrementalDecoder(codecs.IncrementalDecoder):
     25     def decode(self, input, final=False):
     26         return codecs.ascii_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 class StreamConverter(StreamWriter,StreamReader):
     35 
     36     encode = codecs.ascii_decode
     37     decode = codecs.ascii_encode
     38 
     39 ### encodings module API
     40 
     41 def getregentry():
     42     return codecs.CodecInfo(
     43         name='ascii',
     44         encode=Codec.encode,
     45         decode=Codec.decode,
     46         incrementalencoder=IncrementalEncoder,
     47         incrementaldecoder=IncrementalDecoder,
     48         streamwriter=StreamWriter,
     49         streamreader=StreamReader,
     50     )
     51