1""" Python Character Mapping Codec iso8859_6 generated from 'MAPPINGS/ISO8859/8859-6.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-6', 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 '\ufffe' 211 '\ufffe' 212 '\xa4' # 0xA4 -> CURRENCY SIGN 213 '\ufffe' 214 '\ufffe' 215 '\ufffe' 216 '\ufffe' 217 '\ufffe' 218 '\ufffe' 219 '\ufffe' 220 '\u060c' # 0xAC -> ARABIC COMMA 221 '\xad' # 0xAD -> SOFT HYPHEN 222 '\ufffe' 223 '\ufffe' 224 '\ufffe' 225 '\ufffe' 226 '\ufffe' 227 '\ufffe' 228 '\ufffe' 229 '\ufffe' 230 '\ufffe' 231 '\ufffe' 232 '\ufffe' 233 '\ufffe' 234 '\ufffe' 235 '\u061b' # 0xBB -> ARABIC SEMICOLON 236 '\ufffe' 237 '\ufffe' 238 '\ufffe' 239 '\u061f' # 0xBF -> ARABIC QUESTION MARK 240 '\ufffe' 241 '\u0621' # 0xC1 -> ARABIC LETTER HAMZA 242 '\u0622' # 0xC2 -> ARABIC LETTER ALEF WITH MADDA ABOVE 243 '\u0623' # 0xC3 -> ARABIC LETTER ALEF WITH HAMZA ABOVE 244 '\u0624' # 0xC4 -> ARABIC LETTER WAW WITH HAMZA ABOVE 245 '\u0625' # 0xC5 -> ARABIC LETTER ALEF WITH HAMZA BELOW 246 '\u0626' # 0xC6 -> ARABIC LETTER YEH WITH HAMZA ABOVE 247 '\u0627' # 0xC7 -> ARABIC LETTER ALEF 248 '\u0628' # 0xC8 -> ARABIC LETTER BEH 249 '\u0629' # 0xC9 -> ARABIC LETTER TEH MARBUTA 250 '\u062a' # 0xCA -> ARABIC LETTER TEH 251 '\u062b' # 0xCB -> ARABIC LETTER THEH 252 '\u062c' # 0xCC -> ARABIC LETTER JEEM 253 '\u062d' # 0xCD -> ARABIC LETTER HAH 254 '\u062e' # 0xCE -> ARABIC LETTER KHAH 255 '\u062f' # 0xCF -> ARABIC LETTER DAL 256 '\u0630' # 0xD0 -> ARABIC LETTER THAL 257 '\u0631' # 0xD1 -> ARABIC LETTER REH 258 '\u0632' # 0xD2 -> ARABIC LETTER ZAIN 259 '\u0633' # 0xD3 -> ARABIC LETTER SEEN 260 '\u0634' # 0xD4 -> ARABIC LETTER SHEEN 261 '\u0635' # 0xD5 -> ARABIC LETTER SAD 262 '\u0636' # 0xD6 -> ARABIC LETTER DAD 263 '\u0637' # 0xD7 -> ARABIC LETTER TAH 264 '\u0638' # 0xD8 -> ARABIC LETTER ZAH 265 '\u0639' # 0xD9 -> ARABIC LETTER AIN 266 '\u063a' # 0xDA -> ARABIC LETTER GHAIN 267 '\ufffe' 268 '\ufffe' 269 '\ufffe' 270 '\ufffe' 271 '\ufffe' 272 '\u0640' # 0xE0 -> ARABIC TATWEEL 273 '\u0641' # 0xE1 -> ARABIC LETTER FEH 274 '\u0642' # 0xE2 -> ARABIC LETTER QAF 275 '\u0643' # 0xE3 -> ARABIC LETTER KAF 276 '\u0644' # 0xE4 -> ARABIC LETTER LAM 277 '\u0645' # 0xE5 -> ARABIC LETTER MEEM 278 '\u0646' # 0xE6 -> ARABIC LETTER NOON 279 '\u0647' # 0xE7 -> ARABIC LETTER HEH 280 '\u0648' # 0xE8 -> ARABIC LETTER WAW 281 '\u0649' # 0xE9 -> ARABIC LETTER ALEF MAKSURA 282 '\u064a' # 0xEA -> ARABIC LETTER YEH 283 '\u064b' # 0xEB -> ARABIC FATHATAN 284 '\u064c' # 0xEC -> ARABIC DAMMATAN 285 '\u064d' # 0xED -> ARABIC KASRATAN 286 '\u064e' # 0xEE -> ARABIC FATHA 287 '\u064f' # 0xEF -> ARABIC DAMMA 288 '\u0650' # 0xF0 -> ARABIC KASRA 289 '\u0651' # 0xF1 -> ARABIC SHADDA 290 '\u0652' # 0xF2 -> ARABIC SUKUN 291 '\ufffe' 292 '\ufffe' 293 '\ufffe' 294 '\ufffe' 295 '\ufffe' 296 '\ufffe' 297 '\ufffe' 298 '\ufffe' 299 '\ufffe' 300 '\ufffe' 301 '\ufffe' 302 '\ufffe' 303 '\ufffe' 304) 305 306### Encoding table 307encoding_table=codecs.charmap_build(decoding_table) 308