equal
deleted
inserted
replaced
|
1 """ Test Codecs (used by test_charmapcodec) |
|
2 |
|
3 Written by Marc-Andre Lemburg (mal@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: 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 |
|
46 encoding_map = {} |
|
47 for k,v in decoding_map.items(): |
|
48 encoding_map[v] = k |