summaryrefslogtreecommitdiffstats
path: root/Lib/encodings/cp1255.py
blob: c987b85f45e7e033c76537714412f03d8130c5a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
""" Python Character Mapping Codec generated from 'CP1255.TXT' with gencodec.py.

Written by Marc-Andre Lemburg (mal@lemburg.com).

(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
(c) Copyright 2000 Guido van Rossum.

"""#"

import codecs

### Codec APIs

class Codec(codecs.Codec):

    def encode(self,input,errors='strict'):

        return codecs.charmap_encode(input,errors,encoding_map)
        
    def decode(self,input,errors='strict'):

        return codecs.charmap_decode(input,errors,decoding_map)

class StreamWriter(Codec,codecs.StreamWriter):
    pass
        
class StreamReader(Codec,codecs.StreamReader):
    pass

### encodings module API

def getregentry():

    return (Codec().encode,Codec().decode,StreamReader,StreamWriter)

### Decoding Map

decoding_map = codecs.make_identity_dict(range(256))
decoding_map.update({
	0x0080: 0x20ac,	# EURO SIGN
	0x0081: None,	# UNDEFINED
	0x0082: 0x201a,	# SINGLE LOW-9 QUOTATION MARK
	0x0083: 0x0192,	# LATIN SMALL LETTER F WITH HOOK
	0x0084: 0x201e,	# DOUBLE LOW-9 QUOTATION MARK
	0x0085: 0x2026,	# HORIZONTAL ELLIPSIS
	0x0086: 0x2020,	# DAGGER
	0x0087: 0x2021,	# DOUBLE DAGGER
	0x0088: 0x02c6,	# MODIFIER LETTER CIRCUMFLEX ACCENT
	0x0089: 0x2030,	# PER MILLE SIGN
	0x008a: None,	# UNDEFINED
	0x008b: 0x2039,	# SINGLE LEFT-POINTING ANGLE QUOTATION MARK
	0x008c: None,	# UNDEFINED
	0x008d: None,	# UNDEFINED
	0x008e: None,	# UNDEFINED
	0x008f: None,	# UNDEFINED
	0x0090: None,	# UNDEFINED
	0x0091: 0x2018,	# LEFT SINGLE QUOTATION MARK
	0x0092: 0x2019,	# RIGHT SINGLE QUOTATION MARK
	0x0093: 0x201c,	# LEFT DOUBLE QUOTATION MARK
	0x0094: 0x201d,	# RIGHT DOUBLE QUOTATION MARK
	0x0095: 0x2022,	# BULLET
	0x0096: 0x2013,	# EN DASH
	0x0097: 0x2014,	# EM DASH
	0x0098: 0x02dc,	# SMALL TILDE
	0x0099: 0x2122,	# TRADE MARK SIGN
	0x009a: None,	# UNDEFINED
	0x009b: 0x203a,	# SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
	0x009c: None,	# UNDEFINED
	0x009d: None,	# UNDEFINED
	0x009e: None,	# UNDEFINED
	0x009f: None,	# UNDEFINED
	0x00a4: 0x20aa,	# NEW SHEQEL SIGN
	0x00aa: 0x00d7,	# MULTIPLICATION SIGN
	0x00ba: 0x00f7,	# DIVISION SIGN
	0x00c0: 0x05b0,	# HEBREW POINT SHEVA
	0x00c1: 0x05b1,	# HEBREW POINT HATAF SEGOL
	0x00c2: 0x05b2,	# HEBREW POINT HATAF PATAH
	0x00c3: 0x05b3,	# HEBREW POINT HATAF QAMATS
	0x00c4: 0x05b4,	# HEBREW POINT HIRIQ
	0x00c5: 0x05b5,	# HEBREW POINT TSERE
	0x00c6: 0x05b6,	# HEBREW POINT SEGOL
	0x00c7: 0x05b7,	# HEBREW POINT PATAH
	0x00c8: 0x05b8,	# HEBREW POINT QAMATS
	0x00c9: 0x05b9,	# HEBREW POINT HOLAM
	0x00ca: None,	# UNDEFINED
	0x00cb: 0x05bb,	# HEBREW POINT QUBUTS
	0x00cc: 0x05bc,	# HEBREW POINT DAGESH OR MAPIQ
	0x00cd: 0x05bd,	# HEBREW POINT METEG
	0x00ce: 0x05be,	# HEBREW PUNCTUATION MAQAF
	0x00cf: 0x05bf,	# HEBREW POINT RAFE
	0x00d0: 0x05c0,	# HEBREW PUNCTUATION PASEQ
	0x00d1: 0x05c1,	# HEBREW POINT SHIN DOT
	0x00d2: 0x05c2,	# HEBREW POINT SIN DOT
	0x00d3: 0x05c3,	# HEBREW PUNCTUATION SOF PASUQ
	0x00d4: 0x05f0,	# HEBREW LIGATURE YIDDISH DOUBLE VAV
	0x00d5: 0x05f1,	# HEBREW LIGATURE YIDDISH VAV YOD
	0x00d6: 0x05f2,	# HEBREW LIGATURE YIDDISH DOUBLE YOD
	0x00d7: 0x05f3,	# HEBREW PUNCTUATION GERESH
	0x00d8: 0x05f4,	# HEBREW PUNCTUATION GERSHAYIM
	0x00d9: None,	# UNDEFINED
	0x00da: None,	# UNDEFINED
	0x00db: None,	# UNDEFINED
	0x00dc: None,	# UNDEFINED
	0x00dd: None,	# UNDEFINED
	0x00de: None,	# UNDEFINED
	0x00df: None,	# UNDEFINED
	0x00e0: 0x05d0,	# HEBREW LETTER ALEF
	0x00e1: 0x05d1,	# HEBREW LETTER BET
	0x00e2: 0x05d2,	# HEBREW LETTER GIMEL
	0x00e3: 0x05d3,	# HEBREW LETTER DALET
	0x00e4: 0x05d4,	# HEBREW LETTER HE
	0x00e5: 0x05d5,	# HEBREW LETTER VAV
	0x00e6: 0x05d6,	# HEBREW LETTER ZAYIN
	0x00e7: 0x05d7,	# HEBREW LETTER HET
	0x00e8: 0x05d8,	# HEBREW LETTER TET
	0x00e9: 0x05d9,	# HEBREW LETTER YOD
	0x00ea: 0x05da,	# HEBREW LETTER FINAL KAF
	0x00eb: 0x05db,	# HEBREW LETTER KAF
	0x00ec: 0x05dc,	# HEBREW LETTER LAMED
	0x00ed: 0x05dd,	# HEBREW LETTER FINAL MEM
	0x00ee: 0x05de,	# HEBREW LETTER MEM
	0x00ef: 0x05df,	# HEBREW LETTER FINAL NUN
	0x00f0: 0x05e0,	# HEBREW LETTER NUN
	0x00f1: 0x05e1,	# HEBREW LETTER SAMEKH
	0x00f2: 0x05e2,	# HEBREW LETTER AYIN
	0x00f3: 0x05e3,	# HEBREW LETTER FINAL PE
	0x00f4: 0x05e4,	# HEBREW LETTER PE
	0x00f5: 0x05e5,	# HEBREW LETTER FINAL TSADI
	0x00f6: 0x05e6,	# HEBREW LETTER TSADI
	0x00f7: 0x05e7,	# HEBREW LETTER QOF
	0x00f8: 0x05e8,	# HEBREW LETTER RESH
	0x00f9: 0x05e9,	# HEBREW LETTER SHIN
	0x00fa: 0x05ea,	# HEBREW LETTER TAV
	0x00fb: None,	# UNDEFINED
	0x00fc: None,	# UNDEFINED
	0x00fd: 0x200e,	# LEFT-TO-RIGHT MARK
	0x00fe: 0x200f,	# RIGHT-TO-LEFT MARK
	0x00ff: None,	# UNDEFINED
})

### Encoding Map

encoding_map = {}
for k,v in decoding_map.items():
    encoding_map[v] = k