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