• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1""" Python Character Mapping Codec iso8859_8 generated from 'MAPPINGS/ISO8859/8859-8.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_table)
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_table)[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='iso8859-8',
36        encode=Codec().encode,
37        decode=Codec().decode,
38        incrementalencoder=IncrementalEncoder,
39        incrementaldecoder=IncrementalDecoder,
40        streamreader=StreamReader,
41        streamwriter=StreamWriter,
42    )
43
44
45### Decoding Table
46
47decoding_table = (
48    '\x00'     #  0x00 -> NULL
49    '\x01'     #  0x01 -> START OF HEADING
50    '\x02'     #  0x02 -> START OF TEXT
51    '\x03'     #  0x03 -> END OF TEXT
52    '\x04'     #  0x04 -> END OF TRANSMISSION
53    '\x05'     #  0x05 -> ENQUIRY
54    '\x06'     #  0x06 -> ACKNOWLEDGE
55    '\x07'     #  0x07 -> BELL
56    '\x08'     #  0x08 -> BACKSPACE
57    '\t'       #  0x09 -> HORIZONTAL TABULATION
58    '\n'       #  0x0A -> LINE FEED
59    '\x0b'     #  0x0B -> VERTICAL TABULATION
60    '\x0c'     #  0x0C -> FORM FEED
61    '\r'       #  0x0D -> CARRIAGE RETURN
62    '\x0e'     #  0x0E -> SHIFT OUT
63    '\x0f'     #  0x0F -> SHIFT IN
64    '\x10'     #  0x10 -> DATA LINK ESCAPE
65    '\x11'     #  0x11 -> DEVICE CONTROL ONE
66    '\x12'     #  0x12 -> DEVICE CONTROL TWO
67    '\x13'     #  0x13 -> DEVICE CONTROL THREE
68    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
69    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
70    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
71    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
72    '\x18'     #  0x18 -> CANCEL
73    '\x19'     #  0x19 -> END OF MEDIUM
74    '\x1a'     #  0x1A -> SUBSTITUTE
75    '\x1b'     #  0x1B -> ESCAPE
76    '\x1c'     #  0x1C -> FILE SEPARATOR
77    '\x1d'     #  0x1D -> GROUP SEPARATOR
78    '\x1e'     #  0x1E -> RECORD SEPARATOR
79    '\x1f'     #  0x1F -> UNIT SEPARATOR
80    ' '        #  0x20 -> SPACE
81    '!'        #  0x21 -> EXCLAMATION MARK
82    '"'        #  0x22 -> QUOTATION MARK
83    '#'        #  0x23 -> NUMBER SIGN
84    '$'        #  0x24 -> DOLLAR SIGN
85    '%'        #  0x25 -> PERCENT SIGN
86    '&'        #  0x26 -> AMPERSAND
87    "'"        #  0x27 -> APOSTROPHE
88    '('        #  0x28 -> LEFT PARENTHESIS
89    ')'        #  0x29 -> RIGHT PARENTHESIS
90    '*'        #  0x2A -> ASTERISK
91    '+'        #  0x2B -> PLUS SIGN
92    ','        #  0x2C -> COMMA
93    '-'        #  0x2D -> HYPHEN-MINUS
94    '.'        #  0x2E -> FULL STOP
95    '/'        #  0x2F -> SOLIDUS
96    '0'        #  0x30 -> DIGIT ZERO
97    '1'        #  0x31 -> DIGIT ONE
98    '2'        #  0x32 -> DIGIT TWO
99    '3'        #  0x33 -> DIGIT THREE
100    '4'        #  0x34 -> DIGIT FOUR
101    '5'        #  0x35 -> DIGIT FIVE
102    '6'        #  0x36 -> DIGIT SIX
103    '7'        #  0x37 -> DIGIT SEVEN
104    '8'        #  0x38 -> DIGIT EIGHT
105    '9'        #  0x39 -> DIGIT NINE
106    ':'        #  0x3A -> COLON
107    ';'        #  0x3B -> SEMICOLON
108    '<'        #  0x3C -> LESS-THAN SIGN
109    '='        #  0x3D -> EQUALS SIGN
110    '>'        #  0x3E -> GREATER-THAN SIGN
111    '?'        #  0x3F -> QUESTION MARK
112    '@'        #  0x40 -> COMMERCIAL AT
113    'A'        #  0x41 -> LATIN CAPITAL LETTER A
114    'B'        #  0x42 -> LATIN CAPITAL LETTER B
115    'C'        #  0x43 -> LATIN CAPITAL LETTER C
116    'D'        #  0x44 -> LATIN CAPITAL LETTER D
117    'E'        #  0x45 -> LATIN CAPITAL LETTER E
118    'F'        #  0x46 -> LATIN CAPITAL LETTER F
119    'G'        #  0x47 -> LATIN CAPITAL LETTER G
120    'H'        #  0x48 -> LATIN CAPITAL LETTER H
121    'I'        #  0x49 -> LATIN CAPITAL LETTER I
122    'J'        #  0x4A -> LATIN CAPITAL LETTER J
123    'K'        #  0x4B -> LATIN CAPITAL LETTER K
124    'L'        #  0x4C -> LATIN CAPITAL LETTER L
125    'M'        #  0x4D -> LATIN CAPITAL LETTER M
126    'N'        #  0x4E -> LATIN CAPITAL LETTER N
127    'O'        #  0x4F -> LATIN CAPITAL LETTER O
128    'P'        #  0x50 -> LATIN CAPITAL LETTER P
129    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
130    'R'        #  0x52 -> LATIN CAPITAL LETTER R
131    'S'        #  0x53 -> LATIN CAPITAL LETTER S
132    'T'        #  0x54 -> LATIN CAPITAL LETTER T
133    'U'        #  0x55 -> LATIN CAPITAL LETTER U
134    'V'        #  0x56 -> LATIN CAPITAL LETTER V
135    'W'        #  0x57 -> LATIN CAPITAL LETTER W
136    'X'        #  0x58 -> LATIN CAPITAL LETTER X
137    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
138    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
139    '['        #  0x5B -> LEFT SQUARE BRACKET
140    '\\'       #  0x5C -> REVERSE SOLIDUS
141    ']'        #  0x5D -> RIGHT SQUARE BRACKET
142    '^'        #  0x5E -> CIRCUMFLEX ACCENT
143    '_'        #  0x5F -> LOW LINE
144    '`'        #  0x60 -> GRAVE ACCENT
145    'a'        #  0x61 -> LATIN SMALL LETTER A
146    'b'        #  0x62 -> LATIN SMALL LETTER B
147    'c'        #  0x63 -> LATIN SMALL LETTER C
148    'd'        #  0x64 -> LATIN SMALL LETTER D
149    'e'        #  0x65 -> LATIN SMALL LETTER E
150    'f'        #  0x66 -> LATIN SMALL LETTER F
151    'g'        #  0x67 -> LATIN SMALL LETTER G
152    'h'        #  0x68 -> LATIN SMALL LETTER H
153    'i'        #  0x69 -> LATIN SMALL LETTER I
154    'j'        #  0x6A -> LATIN SMALL LETTER J
155    'k'        #  0x6B -> LATIN SMALL LETTER K
156    'l'        #  0x6C -> LATIN SMALL LETTER L
157    'm'        #  0x6D -> LATIN SMALL LETTER M
158    'n'        #  0x6E -> LATIN SMALL LETTER N
159    'o'        #  0x6F -> LATIN SMALL LETTER O
160    'p'        #  0x70 -> LATIN SMALL LETTER P
161    'q'        #  0x71 -> LATIN SMALL LETTER Q
162    'r'        #  0x72 -> LATIN SMALL LETTER R
163    's'        #  0x73 -> LATIN SMALL LETTER S
164    't'        #  0x74 -> LATIN SMALL LETTER T
165    'u'        #  0x75 -> LATIN SMALL LETTER U
166    'v'        #  0x76 -> LATIN SMALL LETTER V
167    'w'        #  0x77 -> LATIN SMALL LETTER W
168    'x'        #  0x78 -> LATIN SMALL LETTER X
169    'y'        #  0x79 -> LATIN SMALL LETTER Y
170    'z'        #  0x7A -> LATIN SMALL LETTER Z
171    '{'        #  0x7B -> LEFT CURLY BRACKET
172    '|'        #  0x7C -> VERTICAL LINE
173    '}'        #  0x7D -> RIGHT CURLY BRACKET
174    '~'        #  0x7E -> TILDE
175    '\x7f'     #  0x7F -> DELETE
176    '\x80'     #  0x80 -> <control>
177    '\x81'     #  0x81 -> <control>
178    '\x82'     #  0x82 -> <control>
179    '\x83'     #  0x83 -> <control>
180    '\x84'     #  0x84 -> <control>
181    '\x85'     #  0x85 -> <control>
182    '\x86'     #  0x86 -> <control>
183    '\x87'     #  0x87 -> <control>
184    '\x88'     #  0x88 -> <control>
185    '\x89'     #  0x89 -> <control>
186    '\x8a'     #  0x8A -> <control>
187    '\x8b'     #  0x8B -> <control>
188    '\x8c'     #  0x8C -> <control>
189    '\x8d'     #  0x8D -> <control>
190    '\x8e'     #  0x8E -> <control>
191    '\x8f'     #  0x8F -> <control>
192    '\x90'     #  0x90 -> <control>
193    '\x91'     #  0x91 -> <control>
194    '\x92'     #  0x92 -> <control>
195    '\x93'     #  0x93 -> <control>
196    '\x94'     #  0x94 -> <control>
197    '\x95'     #  0x95 -> <control>
198    '\x96'     #  0x96 -> <control>
199    '\x97'     #  0x97 -> <control>
200    '\x98'     #  0x98 -> <control>
201    '\x99'     #  0x99 -> <control>
202    '\x9a'     #  0x9A -> <control>
203    '\x9b'     #  0x9B -> <control>
204    '\x9c'     #  0x9C -> <control>
205    '\x9d'     #  0x9D -> <control>
206    '\x9e'     #  0x9E -> <control>
207    '\x9f'     #  0x9F -> <control>
208    '\xa0'     #  0xA0 -> NO-BREAK SPACE
209    '\ufffe'
210    '\xa2'     #  0xA2 -> CENT SIGN
211    '\xa3'     #  0xA3 -> POUND SIGN
212    '\xa4'     #  0xA4 -> CURRENCY SIGN
213    '\xa5'     #  0xA5 -> YEN SIGN
214    '\xa6'     #  0xA6 -> BROKEN BAR
215    '\xa7'     #  0xA7 -> SECTION SIGN
216    '\xa8'     #  0xA8 -> DIAERESIS
217    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
218    '\xd7'     #  0xAA -> MULTIPLICATION SIGN
219    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
220    '\xac'     #  0xAC -> NOT SIGN
221    '\xad'     #  0xAD -> SOFT HYPHEN
222    '\xae'     #  0xAE -> REGISTERED SIGN
223    '\xaf'     #  0xAF -> MACRON
224    '\xb0'     #  0xB0 -> DEGREE SIGN
225    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
226    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
227    '\xb3'     #  0xB3 -> SUPERSCRIPT THREE
228    '\xb4'     #  0xB4 -> ACUTE ACCENT
229    '\xb5'     #  0xB5 -> MICRO SIGN
230    '\xb6'     #  0xB6 -> PILCROW SIGN
231    '\xb7'     #  0xB7 -> MIDDLE DOT
232    '\xb8'     #  0xB8 -> CEDILLA
233    '\xb9'     #  0xB9 -> SUPERSCRIPT ONE
234    '\xf7'     #  0xBA -> DIVISION SIGN
235    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
236    '\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
237    '\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
238    '\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
239    '\ufffe'
240    '\ufffe'
241    '\ufffe'
242    '\ufffe'
243    '\ufffe'
244    '\ufffe'
245    '\ufffe'
246    '\ufffe'
247    '\ufffe'
248    '\ufffe'
249    '\ufffe'
250    '\ufffe'
251    '\ufffe'
252    '\ufffe'
253    '\ufffe'
254    '\ufffe'
255    '\ufffe'
256    '\ufffe'
257    '\ufffe'
258    '\ufffe'
259    '\ufffe'
260    '\ufffe'
261    '\ufffe'
262    '\ufffe'
263    '\ufffe'
264    '\ufffe'
265    '\ufffe'
266    '\ufffe'
267    '\ufffe'
268    '\ufffe'
269    '\ufffe'
270    '\ufffe'
271    '\u2017'   #  0xDF -> DOUBLE LOW LINE
272    '\u05d0'   #  0xE0 -> HEBREW LETTER ALEF
273    '\u05d1'   #  0xE1 -> HEBREW LETTER BET
274    '\u05d2'   #  0xE2 -> HEBREW LETTER GIMEL
275    '\u05d3'   #  0xE3 -> HEBREW LETTER DALET
276    '\u05d4'   #  0xE4 -> HEBREW LETTER HE
277    '\u05d5'   #  0xE5 -> HEBREW LETTER VAV
278    '\u05d6'   #  0xE6 -> HEBREW LETTER ZAYIN
279    '\u05d7'   #  0xE7 -> HEBREW LETTER HET
280    '\u05d8'   #  0xE8 -> HEBREW LETTER TET
281    '\u05d9'   #  0xE9 -> HEBREW LETTER YOD
282    '\u05da'   #  0xEA -> HEBREW LETTER FINAL KAF
283    '\u05db'   #  0xEB -> HEBREW LETTER KAF
284    '\u05dc'   #  0xEC -> HEBREW LETTER LAMED
285    '\u05dd'   #  0xED -> HEBREW LETTER FINAL MEM
286    '\u05de'   #  0xEE -> HEBREW LETTER MEM
287    '\u05df'   #  0xEF -> HEBREW LETTER FINAL NUN
288    '\u05e0'   #  0xF0 -> HEBREW LETTER NUN
289    '\u05e1'   #  0xF1 -> HEBREW LETTER SAMEKH
290    '\u05e2'   #  0xF2 -> HEBREW LETTER AYIN
291    '\u05e3'   #  0xF3 -> HEBREW LETTER FINAL PE
292    '\u05e4'   #  0xF4 -> HEBREW LETTER PE
293    '\u05e5'   #  0xF5 -> HEBREW LETTER FINAL TSADI
294    '\u05e6'   #  0xF6 -> HEBREW LETTER TSADI
295    '\u05e7'   #  0xF7 -> HEBREW LETTER QOF
296    '\u05e8'   #  0xF8 -> HEBREW LETTER RESH
297    '\u05e9'   #  0xF9 -> HEBREW LETTER SHIN
298    '\u05ea'   #  0xFA -> HEBREW LETTER TAV
299    '\ufffe'
300    '\ufffe'
301    '\u200e'   #  0xFD -> LEFT-TO-RIGHT MARK
302    '\u200f'   #  0xFE -> RIGHT-TO-LEFT MARK
303    '\ufffe'
304)
305
306### Encoding table
307encoding_table=codecs.charmap_build(decoding_table)
308