cp737.py (6304B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\stdlib\encodings\cp737.py 2 import codecs 3 4 class Codec(codecs.Codec): 5 6 def encode(self, input, errors = 'strict'): 7 return codecs.charmap_encode(input, errors, encoding_map) 8 9 def decode(self, input, errors = 'strict'): 10 return codecs.charmap_decode(input, errors, decoding_table) 11 12 13 class IncrementalEncoder(codecs.IncrementalEncoder): 14 15 def encode(self, input, final = False): 16 return codecs.charmap_encode(input, self.errors, encoding_map)[0] 17 18 19 class IncrementalDecoder(codecs.IncrementalDecoder): 20 21 def decode(self, input, final = False): 22 return codecs.charmap_decode(input, self.errors, decoding_table)[0] 23 24 25 class StreamWriter(Codec, codecs.StreamWriter): 26 pass 27 28 29 class StreamReader(Codec, codecs.StreamReader): 30 pass 31 32 33 def getregentry(): 34 return codecs.CodecInfo(name='cp737', encode=Codec().encode, decode=Codec().decode, incrementalencoder=IncrementalEncoder, incrementaldecoder=IncrementalDecoder, streamreader=StreamReader, streamwriter=StreamWriter) 35 36 37 decoding_map = codecs.make_identity_dict(range(256)) 38 decoding_map.update({128: 913, 39 129: 914, 40 130: 915, 41 131: 916, 42 132: 917, 43 133: 918, 44 134: 919, 45 135: 920, 46 136: 921, 47 137: 922, 48 138: 923, 49 139: 924, 50 140: 925, 51 141: 926, 52 142: 927, 53 143: 928, 54 144: 929, 55 145: 931, 56 146: 932, 57 147: 933, 58 148: 934, 59 149: 935, 60 150: 936, 61 151: 937, 62 152: 945, 63 153: 946, 64 154: 947, 65 155: 948, 66 156: 949, 67 157: 950, 68 158: 951, 69 159: 952, 70 160: 953, 71 161: 954, 72 162: 955, 73 163: 956, 74 164: 957, 75 165: 958, 76 166: 959, 77 167: 960, 78 168: 961, 79 169: 963, 80 170: 962, 81 171: 964, 82 172: 965, 83 173: 966, 84 174: 967, 85 175: 968, 86 176: 9617, 87 177: 9618, 88 178: 9619, 89 179: 9474, 90 180: 9508, 91 181: 9569, 92 182: 9570, 93 183: 9558, 94 184: 9557, 95 185: 9571, 96 186: 9553, 97 187: 9559, 98 188: 9565, 99 189: 9564, 100 190: 9563, 101 191: 9488, 102 192: 9492, 103 193: 9524, 104 194: 9516, 105 195: 9500, 106 196: 9472, 107 197: 9532, 108 198: 9566, 109 199: 9567, 110 200: 9562, 111 201: 9556, 112 202: 9577, 113 203: 9574, 114 204: 9568, 115 205: 9552, 116 206: 9580, 117 207: 9575, 118 208: 9576, 119 209: 9572, 120 210: 9573, 121 211: 9561, 122 212: 9560, 123 213: 9554, 124 214: 9555, 125 215: 9579, 126 216: 9578, 127 217: 9496, 128 218: 9484, 129 219: 9608, 130 220: 9604, 131 221: 9612, 132 222: 9616, 133 223: 9600, 134 224: 969, 135 225: 940, 136 226: 941, 137 227: 942, 138 228: 970, 139 229: 943, 140 230: 972, 141 231: 973, 142 232: 971, 143 233: 974, 144 234: 902, 145 235: 904, 146 236: 905, 147 237: 906, 148 238: 908, 149 239: 910, 150 240: 911, 151 241: 177, 152 242: 8805, 153 243: 8804, 154 244: 938, 155 245: 939, 156 246: 247, 157 247: 8776, 158 248: 176, 159 249: 8729, 160 250: 183, 161 251: 8730, 162 252: 8319, 163 253: 178, 164 254: 9632, 165 255: 160}) 166 decoding_table = u'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039a\u039b\u039c\u039d\u039e\u039f\u03a0\u03a1\u03a3\u03a4\u03a5\u03a6\u03a7\u03a8\u03a9\u03b1\u03b2\u03b3\u03b4\u03b5\u03b6\u03b7\u03b8\u03b9\u03ba\u03bb\u03bc\u03bd\u03be\u03bf\u03c0\u03c1\u03c3\u03c2\u03c4\u03c5\u03c6\u03c7\u03c8\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255d\u255c\u255b\u2510\u2514\u2534\u252c\u251c\u2500\u253c\u255e\u255f\u255a\u2554\u2569\u2566\u2560\u2550\u256c\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256b\u256a\u2518\u250c\u2588\u2584\u258c\u2590\u2580\u03c9\u03ac\u03ad\u03ae\u03ca\u03af\u03cc\u03cd\u03cb\u03ce\u0386\u0388\u0389\u038a\u038c\u038e\u038f\xb1\u2265\u2264\u03aa\u03ab\xf7\u2248\xb0\u2219\xb7\u221a\u207f\xb2\u25a0\xa0' 167 encoding_map = {0: 0, 168 1: 1, 169 2: 2, 170 3: 3, 171 4: 4, 172 5: 5, 173 6: 6, 174 7: 7, 175 8: 8, 176 9: 9, 177 10: 10, 178 11: 11, 179 12: 12, 180 13: 13, 181 14: 14, 182 15: 15, 183 16: 16, 184 17: 17, 185 18: 18, 186 19: 19, 187 20: 20, 188 21: 21, 189 22: 22, 190 23: 23, 191 24: 24, 192 25: 25, 193 26: 26, 194 27: 27, 195 28: 28, 196 29: 29, 197 30: 30, 198 31: 31, 199 32: 32, 200 33: 33, 201 34: 34, 202 35: 35, 203 36: 36, 204 37: 37, 205 38: 38, 206 39: 39, 207 40: 40, 208 41: 41, 209 42: 42, 210 43: 43, 211 44: 44, 212 45: 45, 213 46: 46, 214 47: 47, 215 48: 48, 216 49: 49, 217 50: 50, 218 51: 51, 219 52: 52, 220 53: 53, 221 54: 54, 222 55: 55, 223 56: 56, 224 57: 57, 225 58: 58, 226 59: 59, 227 60: 60, 228 61: 61, 229 62: 62, 230 63: 63, 231 64: 64, 232 65: 65, 233 66: 66, 234 67: 67, 235 68: 68, 236 69: 69, 237 70: 70, 238 71: 71, 239 72: 72, 240 73: 73, 241 74: 74, 242 75: 75, 243 76: 76, 244 77: 77, 245 78: 78, 246 79: 79, 247 80: 80, 248 81: 81, 249 82: 82, 250 83: 83, 251 84: 84, 252 85: 85, 253 86: 86, 254 87: 87, 255 88: 88, 256 89: 89, 257 90: 90, 258 91: 91, 259 92: 92, 260 93: 93, 261 94: 94, 262 95: 95, 263 96: 96, 264 97: 97, 265 98: 98, 266 99: 99, 267 100: 100, 268 101: 101, 269 102: 102, 270 103: 103, 271 104: 104, 272 105: 105, 273 106: 106, 274 107: 107, 275 108: 108, 276 109: 109, 277 110: 110, 278 111: 111, 279 112: 112, 280 113: 113, 281 114: 114, 282 115: 115, 283 116: 116, 284 117: 117, 285 118: 118, 286 119: 119, 287 120: 120, 288 121: 121, 289 122: 122, 290 123: 123, 291 124: 124, 292 125: 125, 293 126: 126, 294 127: 127, 295 160: 255, 296 176: 248, 297 177: 241, 298 178: 253, 299 183: 250, 300 247: 246, 301 902: 234, 302 904: 235, 303 905: 236, 304 906: 237, 305 908: 238, 306 910: 239, 307 911: 240, 308 913: 128, 309 914: 129, 310 915: 130, 311 916: 131, 312 917: 132, 313 918: 133, 314 919: 134, 315 920: 135, 316 921: 136, 317 922: 137, 318 923: 138, 319 924: 139, 320 925: 140, 321 926: 141, 322 927: 142, 323 928: 143, 324 929: 144, 325 931: 145, 326 932: 146, 327 933: 147, 328 934: 148, 329 935: 149, 330 936: 150, 331 937: 151, 332 938: 244, 333 939: 245, 334 940: 225, 335 941: 226, 336 942: 227, 337 943: 229, 338 945: 152, 339 946: 153, 340 947: 154, 341 948: 155, 342 949: 156, 343 950: 157, 344 951: 158, 345 952: 159, 346 953: 160, 347 954: 161, 348 955: 162, 349 956: 163, 350 957: 164, 351 958: 165, 352 959: 166, 353 960: 167, 354 961: 168, 355 962: 170, 356 963: 169, 357 964: 171, 358 965: 172, 359 966: 173, 360 967: 174, 361 968: 175, 362 969: 224, 363 970: 228, 364 971: 232, 365 972: 230, 366 973: 231, 367 974: 233, 368 8319: 252, 369 8729: 249, 370 8730: 251, 371 8776: 247, 372 8804: 243, 373 8805: 242, 374 9472: 196, 375 9474: 179, 376 9484: 218, 377 9488: 191, 378 9492: 192, 379 9496: 217, 380 9500: 195, 381 9508: 180, 382 9516: 194, 383 9524: 193, 384 9532: 197, 385 9552: 205, 386 9553: 186, 387 9554: 213, 388 9555: 214, 389 9556: 201, 390 9557: 184, 391 9558: 183, 392 9559: 187, 393 9560: 212, 394 9561: 211, 395 9562: 200, 396 9563: 190, 397 9564: 189, 398 9565: 188, 399 9566: 198, 400 9567: 199, 401 9568: 204, 402 9569: 181, 403 9570: 182, 404 9571: 185, 405 9572: 209, 406 9573: 210, 407 9574: 203, 408 9575: 207, 409 9576: 208, 410 9577: 202, 411 9578: 216, 412 9579: 215, 413 9580: 206, 414 9600: 223, 415 9604: 220, 416 9608: 219, 417 9612: 221, 418 9616: 222, 419 9617: 176, 420 9618: 177, 421 9619: 178, 422 9632: 254}