source: trunk/essentials/dev-lang/python/Lib/encodings/cp864.py@ 3226

Last change on this file since 3226 was 3225, checked in by bird, 19 years ago

Python 2.5

File size: 33.1 KB
Line 
1""" Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP864.TXT' with gencodec.py.
2
3"""#"
4
5import codecs
6
7### Codec APIs
8
9class Codec(codecs.Codec):
10
11 def encode(self,input,errors='strict'):
12 return codecs.charmap_encode(input,errors,encoding_map)
13
14 def decode(self,input,errors='strict'):
15 return codecs.charmap_decode(input,errors,decoding_table)
16
17class IncrementalEncoder(codecs.IncrementalEncoder):
18 def encode(self, input, final=False):
19 return codecs.charmap_encode(input,self.errors,encoding_map)[0]
20
21class IncrementalDecoder(codecs.IncrementalDecoder):
22 def decode(self, input, final=False):
23 return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
25class StreamWriter(Codec,codecs.StreamWriter):
26 pass
27
28class StreamReader(Codec,codecs.StreamReader):
29 pass
30
31### encodings module API
32
33def getregentry():
34 return codecs.CodecInfo(
35 name='cp864',
36 encode=Codec().encode,
37 decode=Codec().decode,
38 incrementalencoder=IncrementalEncoder,
39 incrementaldecoder=IncrementalDecoder,
40 streamreader=StreamReader,
41 streamwriter=StreamWriter,
42 )
43
44### Decoding Map
45
46decoding_map = codecs.make_identity_dict(range(256))
47decoding_map.update({
48 0x0025: 0x066a, # ARABIC PERCENT SIGN
49 0x0080: 0x00b0, # DEGREE SIGN
50 0x0081: 0x00b7, # MIDDLE DOT
51 0x0082: 0x2219, # BULLET OPERATOR
52 0x0083: 0x221a, # SQUARE ROOT
53 0x0084: 0x2592, # MEDIUM SHADE
54 0x0085: 0x2500, # FORMS LIGHT HORIZONTAL
55 0x0086: 0x2502, # FORMS LIGHT VERTICAL
56 0x0087: 0x253c, # FORMS LIGHT VERTICAL AND HORIZONTAL
57 0x0088: 0x2524, # FORMS LIGHT VERTICAL AND LEFT
58 0x0089: 0x252c, # FORMS LIGHT DOWN AND HORIZONTAL
59 0x008a: 0x251c, # FORMS LIGHT VERTICAL AND RIGHT
60 0x008b: 0x2534, # FORMS LIGHT UP AND HORIZONTAL
61 0x008c: 0x2510, # FORMS LIGHT DOWN AND LEFT
62 0x008d: 0x250c, # FORMS LIGHT DOWN AND RIGHT
63 0x008e: 0x2514, # FORMS LIGHT UP AND RIGHT
64 0x008f: 0x2518, # FORMS LIGHT UP AND LEFT
65 0x0090: 0x03b2, # GREEK SMALL BETA
66 0x0091: 0x221e, # INFINITY
67 0x0092: 0x03c6, # GREEK SMALL PHI
68 0x0093: 0x00b1, # PLUS-OR-MINUS SIGN
69 0x0094: 0x00bd, # FRACTION 1/2
70 0x0095: 0x00bc, # FRACTION 1/4
71 0x0096: 0x2248, # ALMOST EQUAL TO
72 0x0097: 0x00ab, # LEFT POINTING GUILLEMET
73 0x0098: 0x00bb, # RIGHT POINTING GUILLEMET
74 0x0099: 0xfef7, # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
75 0x009a: 0xfef8, # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
76 0x009b: None, # UNDEFINED
77 0x009c: None, # UNDEFINED
78 0x009d: 0xfefb, # ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
79 0x009e: 0xfefc, # ARABIC LIGATURE LAM WITH ALEF FINAL FORM
80 0x009f: None, # UNDEFINED
81 0x00a1: 0x00ad, # SOFT HYPHEN
82 0x00a2: 0xfe82, # ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
83 0x00a5: 0xfe84, # ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
84 0x00a6: None, # UNDEFINED
85 0x00a7: None, # UNDEFINED
86 0x00a8: 0xfe8e, # ARABIC LETTER ALEF FINAL FORM
87 0x00a9: 0xfe8f, # ARABIC LETTER BEH ISOLATED FORM
88 0x00aa: 0xfe95, # ARABIC LETTER TEH ISOLATED FORM
89 0x00ab: 0xfe99, # ARABIC LETTER THEH ISOLATED FORM
90 0x00ac: 0x060c, # ARABIC COMMA
91 0x00ad: 0xfe9d, # ARABIC LETTER JEEM ISOLATED FORM
92 0x00ae: 0xfea1, # ARABIC LETTER HAH ISOLATED FORM
93 0x00af: 0xfea5, # ARABIC LETTER KHAH ISOLATED FORM
94 0x00b0: 0x0660, # ARABIC-INDIC DIGIT ZERO
95 0x00b1: 0x0661, # ARABIC-INDIC DIGIT ONE
96 0x00b2: 0x0662, # ARABIC-INDIC DIGIT TWO
97 0x00b3: 0x0663, # ARABIC-INDIC DIGIT THREE
98 0x00b4: 0x0664, # ARABIC-INDIC DIGIT FOUR
99 0x00b5: 0x0665, # ARABIC-INDIC DIGIT FIVE
100 0x00b6: 0x0666, # ARABIC-INDIC DIGIT SIX
101 0x00b7: 0x0667, # ARABIC-INDIC DIGIT SEVEN
102 0x00b8: 0x0668, # ARABIC-INDIC DIGIT EIGHT
103 0x00b9: 0x0669, # ARABIC-INDIC DIGIT NINE
104 0x00ba: 0xfed1, # ARABIC LETTER FEH ISOLATED FORM
105 0x00bb: 0x061b, # ARABIC SEMICOLON
106 0x00bc: 0xfeb1, # ARABIC LETTER SEEN ISOLATED FORM
107 0x00bd: 0xfeb5, # ARABIC LETTER SHEEN ISOLATED FORM
108 0x00be: 0xfeb9, # ARABIC LETTER SAD ISOLATED FORM
109 0x00bf: 0x061f, # ARABIC QUESTION MARK
110 0x00c0: 0x00a2, # CENT SIGN
111 0x00c1: 0xfe80, # ARABIC LETTER HAMZA ISOLATED FORM
112 0x00c2: 0xfe81, # ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
113 0x00c3: 0xfe83, # ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM
114 0x00c4: 0xfe85, # ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
115 0x00c5: 0xfeca, # ARABIC LETTER AIN FINAL FORM
116 0x00c6: 0xfe8b, # ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
117 0x00c7: 0xfe8d, # ARABIC LETTER ALEF ISOLATED FORM
118 0x00c8: 0xfe91, # ARABIC LETTER BEH INITIAL FORM
119 0x00c9: 0xfe93, # ARABIC LETTER TEH MARBUTA ISOLATED FORM
120 0x00ca: 0xfe97, # ARABIC LETTER TEH INITIAL FORM
121 0x00cb: 0xfe9b, # ARABIC LETTER THEH INITIAL FORM
122 0x00cc: 0xfe9f, # ARABIC LETTER JEEM INITIAL FORM
123 0x00cd: 0xfea3, # ARABIC LETTER HAH INITIAL FORM
124 0x00ce: 0xfea7, # ARABIC LETTER KHAH INITIAL FORM
125 0x00cf: 0xfea9, # ARABIC LETTER DAL ISOLATED FORM
126 0x00d0: 0xfeab, # ARABIC LETTER THAL ISOLATED FORM