Home | History | Annotate | Download | only in test
      1 """ Test Codecs (used by test_charmapcodec)
      2 
      3 Written by Marc-Andre Lemburg (mal (at] lemburg.com).
      4 
      5 (c) Copyright 2000 Guido van Rossum.
      6 
      7 """#"
      8 import codecs
      9 
     10 ### Codec APIs
     11 
     12 class Codec(codecs.Codec):
     13 
     14     def encode(self,input,errors='strict'):
     15 
     16         return codecs.charmap_encode(input,errors,encoding_map)
     17 
     18     def decode(self,input,errors='strict'):
     19 
     20         return codecs.charmap_decode(input,errors,decoding_map)
     21 
     22 class StreamWriter(Codec,codecs.StreamWriter):
     23     pass
     24 
     25 class StreamReader(Codec,codecs.StreamReader):
     26     pass
     27 
     28 ### encodings module API
     29 
     30 def getregentry():
     31 
     32     return (Codec().encode,Codec().decode,StreamReader,StreamWriter)
     33 
     34 ### Decoding Map
     35 
     36 decoding_map = codecs.make_identity_dict(range(256))
     37 decoding_map.update({
     38         0x78: "abc", # 1-n decoding mapping
     39         b"abc": 0x0078,# 1-n encoding mapping
     40         0x01: None,   # decoding mapping to <undefined>
     41         0x79: "",    # decoding mapping to <remove character>
     42 })
     43 
     44 ### Encoding Map
     45 
     46 encoding_map = {}
     47 for k,v in decoding_map.items():
     48     encoding_map[v] = k
     49