testcodec.py 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. """ Test Codecs (used by test_charmapcodec)
  2. Written by Marc-Andre Lemburg (mal@lemburg.com).
  3. (c) Copyright 2000 Guido van Rossum.
  4. """#"
  5. import codecs
  6. ### Codec APIs
  7. class Codec(codecs.Codec):
  8. def encode(self,input,errors='strict'):
  9. return codecs.charmap_encode(input,errors,encoding_map)
  10. def decode(self,input,errors='strict'):
  11. return codecs.charmap_decode(input,errors,decoding_map)
  12. class StreamWriter(Codec,codecs.StreamWriter):
  13. pass
  14. class StreamReader(Codec,codecs.StreamReader):
  15. pass
  16. ### encodings module API
  17. def getregentry():
  18. return (Codec().encode,Codec().decode,StreamReader,StreamWriter)
  19. ### Decoding Map
  20. decoding_map = codecs.make_identity_dict(range(256))
  21. decoding_map.update({
  22. 0x78: u"abc", # 1-n decoding mapping
  23. "abc": 0x0078,# 1-n encoding mapping
  24. 0x01: None, # decoding mapping to <undefined>
  25. 0x79: u"", # decoding mapping to <remove character>
  26. })
  27. ### Encoding Map
  28. encoding_map = {}
  29. for k,v in decoding_map.items():
  30. encoding_map[v] = k