mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	
		
			
	
	
		
			284 lines
		
	
	
	
		
			9.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			284 lines
		
	
	
	
		
			9.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | """ Python Character Mapping Codec generated from 'CP875.TXT'.
 | ||
|  | 
 | ||
|  | 
 | ||
|  | Written by Marc-Andre Lemburg (mal@lemburg.com). | ||
|  | 
 | ||
|  | (c) Copyright CNRI, All Rights Reserved. NO WARRANTY. | ||
|  | 
 | ||
|  | """#"
 | ||
|  | 
 | ||
|  | 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 = { | ||
|  | 
 | ||
|  | 	0x0004: 0x009c,	# CONTROL | ||
|  | 	0x0005: 0x0009,	# HORIZONTAL TABULATION | ||
|  | 	0x0006: 0x0086,	# CONTROL | ||
|  | 	0x0007: 0x007f,	# DELETE | ||
|  | 	0x0008: 0x0097,	# CONTROL | ||
|  | 	0x0009: 0x008d,	# CONTROL | ||
|  | 	0x000a: 0x008e,	# CONTROL | ||
|  | 	0x0014: 0x009d,	# CONTROL | ||
|  | 	0x0015: 0x0085,	# CONTROL | ||
|  | 	0x0016: 0x0008,	# BACKSPACE | ||
|  | 	0x0017: 0x0087,	# CONTROL | ||
|  | 	0x001a: 0x0092,	# CONTROL | ||
|  | 	0x001b: 0x008f,	# CONTROL | ||
|  | 	0x0020: 0x0080,	# CONTROL | ||
|  | 	0x0021: 0x0081,	# CONTROL | ||
|  | 	0x0022: 0x0082,	# CONTROL | ||
|  | 	0x0023: 0x0083,	# CONTROL | ||
|  | 	0x0024: 0x0084,	# CONTROL | ||
|  | 	0x0025: 0x000a,	# LINE FEED | ||
|  | 	0x0026: 0x0017,	# END OF TRANSMISSION BLOCK | ||
|  | 	0x0027: 0x001b,	# ESCAPE | ||
|  | 	0x0028: 0x0088,	# CONTROL | ||
|  | 	0x0029: 0x0089,	# CONTROL | ||
|  | 	0x002a: 0x008a,	# CONTROL | ||
|  | 	0x002b: 0x008b,	# CONTROL | ||
|  | 	0x002c: 0x008c,	# CONTROL | ||
|  | 	0x002d: 0x0005,	# ENQUIRY | ||
|  | 	0x002e: 0x0006,	# ACKNOWLEDGE | ||
|  | 	0x002f: 0x0007,	# BELL | ||
|  | 	0x0030: 0x0090,	# CONTROL | ||
|  | 	0x0031: 0x0091,	# CONTROL | ||
|  | 	0x0032: 0x0016,	# SYNCHRONOUS IDLE | ||
|  | 	0x0033: 0x0093,	# CONTROL | ||
|  | 	0x0034: 0x0094,	# CONTROL | ||
|  | 	0x0035: 0x0095,	# CONTROL | ||
|  | 	0x0036: 0x0096,	# CONTROL | ||
|  | 	0x0037: 0x0004,	# END OF TRANSMISSION | ||
|  | 	0x0038: 0x0098,	# CONTROL | ||
|  | 	0x0039: 0x0099,	# CONTROL | ||
|  | 	0x003a: 0x009a,	# CONTROL | ||
|  | 	0x003b: 0x009b,	# CONTROL | ||
|  | 	0x003c: 0x0014,	# DEVICE CONTROL FOUR | ||
|  | 	0x003d: 0x0015,	# NEGATIVE ACKNOWLEDGE | ||
|  | 	0x003e: 0x009e,	# CONTROL | ||
|  | 	0x003f: 0x001a,	# SUBSTITUTE | ||
|  | 	0x0040: 0x0020,	# SPACE | ||
|  | 	0x0041: 0x0391,	# GREEK CAPITAL LETTER ALPHA | ||
|  | 	0x0042: 0x0392,	# GREEK CAPITAL LETTER BETA | ||
|  | 	0x0043: 0x0393,	# GREEK CAPITAL LETTER GAMMA | ||
|  | 	0x0044: 0x0394,	# GREEK CAPITAL LETTER DELTA | ||
|  | 	0x0045: 0x0395,	# GREEK CAPITAL LETTER EPSILON | ||
|  | 	0x0046: 0x0396,	# GREEK CAPITAL LETTER ZETA | ||
|  | 	0x0047: 0x0397,	# GREEK CAPITAL LETTER ETA | ||
|  | 	0x0048: 0x0398,	# GREEK CAPITAL LETTER THETA | ||
|  | 	0x0049: 0x0399,	# GREEK CAPITAL LETTER IOTA | ||
|  | 	0x004a: 0x005b,	# LEFT SQUARE BRACKET | ||
|  | 	0x004b: 0x002e,	# FULL STOP | ||
|  | 	0x004c: 0x003c,	# LESS-THAN SIGN | ||
|  | 	0x004d: 0x0028,	# LEFT PARENTHESIS | ||
|  | 	0x004e: 0x002b,	# PLUS SIGN | ||
|  | 	0x004f: 0x0021,	# EXCLAMATION MARK | ||
|  | 	0x0050: 0x0026,	# AMPERSAND | ||
|  | 	0x0051: 0x039a,	# GREEK CAPITAL LETTER KAPPA | ||
|  | 	0x0052: 0x039b,	# GREEK CAPITAL LETTER LAMDA | ||
|  | 	0x0053: 0x039c,	# GREEK CAPITAL LETTER MU | ||
|  | 	0x0054: 0x039d,	# GREEK CAPITAL LETTER NU | ||
|  | 	0x0055: 0x039e,	# GREEK CAPITAL LETTER XI | ||
|  | 	0x0056: 0x039f,	# GREEK CAPITAL LETTER OMICRON | ||
|  | 	0x0057: 0x03a0,	# GREEK CAPITAL LETTER PI | ||
|  | 	0x0058: 0x03a1,	# GREEK CAPITAL LETTER RHO | ||
|  | 	0x0059: 0x03a3,	# GREEK CAPITAL LETTER SIGMA | ||
|  | 	0x005a: 0x005d,	# RIGHT SQUARE BRACKET | ||
|  | 	0x005b: 0x0024,	# DOLLAR SIGN | ||
|  | 	0x005c: 0x002a,	# ASTERISK | ||
|  | 	0x005d: 0x0029,	# RIGHT PARENTHESIS | ||
|  | 	0x005e: 0x003b,	# SEMICOLON | ||
|  | 	0x005f: 0x005e,	# CIRCUMFLEX ACCENT | ||
|  | 	0x0060: 0x002d,	# HYPHEN-MINUS | ||
|  | 	0x0061: 0x002f,	# SOLIDUS | ||
|  | 	0x0062: 0x03a4,	# GREEK CAPITAL LETTER TAU | ||
|  | 	0x0063: 0x03a5,	# GREEK CAPITAL LETTER UPSILON | ||
|  | 	0x0064: 0x03a6,	# GREEK CAPITAL LETTER PHI | ||
|  | 	0x0065: 0x03a7,	# GREEK CAPITAL LETTER CHI | ||
|  | 	0x0066: 0x03a8,	# GREEK CAPITAL LETTER PSI | ||
|  | 	0x0067: 0x03a9,	# GREEK CAPITAL LETTER OMEGA | ||
|  | 	0x0068: 0x03aa,	# GREEK CAPITAL LETTER IOTA WITH DIALYTIKA | ||
|  | 	0x0069: 0x03ab,	# GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA | ||
|  | 	0x006a: 0x007c,	# VERTICAL LINE | ||
|  | 	0x006b: 0x002c,	# COMMA | ||
|  | 	0x006c: 0x0025,	# PERCENT SIGN | ||
|  | 	0x006d: 0x005f,	# LOW LINE | ||
|  | 	0x006e: 0x003e,	# GREATER-THAN SIGN | ||
|  | 	0x006f: 0x003f,	# QUESTION MARK | ||
|  | 	0x0070: 0x00a8,	# DIAERESIS | ||
|  | 	0x0071: 0x0386,	# GREEK CAPITAL LETTER ALPHA WITH TONOS | ||
|  | 	0x0072: 0x0388,	# GREEK CAPITAL LETTER EPSILON WITH TONOS | ||
|  | 	0x0073: 0x0389,	# GREEK CAPITAL LETTER ETA WITH TONOS | ||
|  | 	0x0074: 0x00a0,	# NO-BREAK SPACE | ||
|  | 	0x0075: 0x038a,	# GREEK CAPITAL LETTER IOTA WITH TONOS | ||
|  | 	0x0076: 0x038c,	# GREEK CAPITAL LETTER OMICRON WITH TONOS | ||
|  | 	0x0077: 0x038e,	# GREEK CAPITAL LETTER UPSILON WITH TONOS | ||
|  | 	0x0078: 0x038f,	# GREEK CAPITAL LETTER OMEGA WITH TONOS | ||
|  | 	0x0079: 0x0060,	# GRAVE ACCENT | ||
|  | 	0x007a: 0x003a,	# COLON | ||
|  | 	0x007b: 0x0023,	# NUMBER SIGN | ||
|  | 	0x007c: 0x0040,	# COMMERCIAL AT | ||
|  | 	0x007d: 0x0027,	# APOSTROPHE | ||
|  | 	0x007e: 0x003d,	# EQUALS SIGN | ||
|  | 	0x007f: 0x0022,	# QUOTATION MARK | ||
|  | 	0x0080: 0x0385,	# GREEK DIALYTIKA TONOS | ||
|  | 	0x0081: 0x0061,	# LATIN SMALL LETTER A | ||
|  | 	0x0082: 0x0062,	# LATIN SMALL LETTER B | ||
|  | 	0x0083: 0x0063,	# LATIN SMALL LETTER C | ||
|  | 	0x0084: 0x0064,	# LATIN SMALL LETTER D | ||
|  | 	0x0085: 0x0065,	# LATIN SMALL LETTER E | ||
|  | 	0x0086: 0x0066,	# LATIN SMALL LETTER F | ||
|  | 	0x0087: 0x0067,	# LATIN SMALL LETTER G | ||
|  | 	0x0088: 0x0068,	# LATIN SMALL LETTER H | ||
|  | 	0x0089: 0x0069,	# LATIN SMALL LETTER I | ||
|  | 	0x008a: 0x03b1,	# GREEK SMALL LETTER ALPHA | ||
|  | 	0x008b: 0x03b2,	# GREEK SMALL LETTER BETA | ||
|  | 	0x008c: 0x03b3,	# GREEK SMALL LETTER GAMMA | ||
|  | 	0x008d: 0x03b4,	# GREEK SMALL LETTER DELTA | ||
|  | 	0x008e: 0x03b5,	# GREEK SMALL LETTER EPSILON | ||
|  | 	0x008f: 0x03b6,	# GREEK SMALL LETTER ZETA | ||
|  | 	0x0090: 0x00b0,	# DEGREE SIGN | ||
|  | 	0x0091: 0x006a,	# LATIN SMALL LETTER J | ||
|  | 	0x0092: 0x006b,	# LATIN SMALL LETTER K | ||
|  | 	0x0093: 0x006c,	# LATIN SMALL LETTER L | ||
|  | 	0x0094: 0x006d,	# LATIN SMALL LETTER M | ||
|  | 	0x0095: 0x006e,	# LATIN SMALL LETTER N | ||
|  | 	0x0096: 0x006f,	# LATIN SMALL LETTER O | ||
|  | 	0x0097: 0x0070,	# LATIN SMALL LETTER P | ||
|  | 	0x0098: 0x0071,	# LATIN SMALL LETTER Q | ||
|  | 	0x0099: 0x0072,	# LATIN SMALL LETTER R | ||
|  | 	0x009a: 0x03b7,	# GREEK SMALL LETTER ETA | ||
|  | 	0x009b: 0x03b8,	# GREEK SMALL LETTER THETA | ||
|  | 	0x009c: 0x03b9,	# GREEK SMALL LETTER IOTA | ||
|  | 	0x009d: 0x03ba,	# GREEK SMALL LETTER KAPPA | ||
|  | 	0x009e: 0x03bb,	# GREEK SMALL LETTER LAMDA | ||
|  | 	0x009f: 0x03bc,	# GREEK SMALL LETTER MU | ||
|  | 	0x00a0: 0x00b4,	# ACUTE ACCENT | ||
|  | 	0x00a1: 0x007e,	# TILDE | ||
|  | 	0x00a2: 0x0073,	# LATIN SMALL LETTER S | ||
|  | 	0x00a3: 0x0074,	# LATIN SMALL LETTER T | ||
|  | 	0x00a4: 0x0075,	# LATIN SMALL LETTER U | ||
|  | 	0x00a5: 0x0076,	# LATIN SMALL LETTER V | ||
|  | 	0x00a6: 0x0077,	# LATIN SMALL LETTER W | ||
|  | 	0x00a7: 0x0078,	# LATIN SMALL LETTER X | ||
|  | 	0x00a8: 0x0079,	# LATIN SMALL LETTER Y | ||
|  | 	0x00a9: 0x007a,	# LATIN SMALL LETTER Z | ||
|  | 	0x00aa: 0x03bd,	# GREEK SMALL LETTER NU | ||
|  | 	0x00ab: 0x03be,	# GREEK SMALL LETTER XI | ||
|  | 	0x00ac: 0x03bf,	# GREEK SMALL LETTER OMICRON | ||
|  | 	0x00ad: 0x03c0,	# GREEK SMALL LETTER PI | ||
|  | 	0x00ae: 0x03c1,	# GREEK SMALL LETTER RHO | ||
|  | 	0x00af: 0x03c3,	# GREEK SMALL LETTER SIGMA | ||
|  | 	0x00b0: 0x00a3,	# POUND SIGN | ||
|  | 	0x00b1: 0x03ac,	# GREEK SMALL LETTER ALPHA WITH TONOS | ||
|  | 	0x00b2: 0x03ad,	# GREEK SMALL LETTER EPSILON WITH TONOS | ||
|  | 	0x00b3: 0x03ae,	# GREEK SMALL LETTER ETA WITH TONOS | ||
|  | 	0x00b4: 0x03ca,	# GREEK SMALL LETTER IOTA WITH DIALYTIKA | ||
|  | 	0x00b5: 0x03af,	# GREEK SMALL LETTER IOTA WITH TONOS | ||
|  | 	0x00b6: 0x03cc,	# GREEK SMALL LETTER OMICRON WITH TONOS | ||
|  | 	0x00b7: 0x03cd,	# GREEK SMALL LETTER UPSILON WITH TONOS | ||
|  | 	0x00b8: 0x03cb,	# GREEK SMALL LETTER UPSILON WITH DIALYTIKA | ||
|  | 	0x00b9: 0x03ce,	# GREEK SMALL LETTER OMEGA WITH TONOS | ||
|  | 	0x00ba: 0x03c2,	# GREEK SMALL LETTER FINAL SIGMA | ||
|  | 	0x00bb: 0x03c4,	# GREEK SMALL LETTER TAU | ||
|  | 	0x00bc: 0x03c5,	# GREEK SMALL LETTER UPSILON | ||
|  | 	0x00bd: 0x03c6,	# GREEK SMALL LETTER PHI | ||
|  | 	0x00be: 0x03c7,	# GREEK SMALL LETTER CHI | ||
|  | 	0x00bf: 0x03c8,	# GREEK SMALL LETTER PSI | ||
|  | 	0x00c0: 0x007b,	# LEFT CURLY BRACKET | ||
|  | 	0x00c1: 0x0041,	# LATIN CAPITAL LETTER A | ||
|  | 	0x00c2: 0x0042,	# LATIN CAPITAL LETTER B | ||
|  | 	0x00c3: 0x0043,	# LATIN CAPITAL LETTER C | ||
|  | 	0x00c4: 0x0044,	# LATIN CAPITAL LETTER D | ||
|  | 	0x00c5: 0x0045,	# LATIN CAPITAL LETTER E | ||
|  | 	0x00c6: 0x0046,	# LATIN CAPITAL LETTER F | ||
|  | 	0x00c7: 0x0047,	# LATIN CAPITAL LETTER G | ||
|  | 	0x00c8: 0x0048,	# LATIN CAPITAL LETTER H | ||
|  | 	0x00c9: 0x0049,	# LATIN CAPITAL LETTER I | ||
|  | 	0x00ca: 0x00ad,	# SOFT HYPHEN | ||
|  | 	0x00cb: 0x03c9,	# GREEK SMALL LETTER OMEGA | ||
|  | 	0x00cc: 0x0390,	# GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS | ||
|  | 	0x00cd: 0x03b0,	# GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS | ||
|  | 	0x00ce: 0x2018,	# LEFT SINGLE QUOTATION MARK | ||
|  | 	0x00cf: 0x2015,	# HORIZONTAL BAR | ||
|  | 	0x00d0: 0x007d,	# RIGHT CURLY BRACKET | ||
|  | 	0x00d1: 0x004a,	# LATIN CAPITAL LETTER J | ||
|  | 	0x00d2: 0x004b,	# LATIN CAPITAL LETTER K | ||
|  | 	0x00d3: 0x004c,	# LATIN CAPITAL LETTER L | ||
|  | 	0x00d4: 0x004d,	# LATIN CAPITAL LETTER M | ||
|  | 	0x00d5: 0x004e,	# LATIN CAPITAL LETTER N | ||
|  | 	0x00d6: 0x004f,	# LATIN CAPITAL LETTER O | ||
|  | 	0x00d7: 0x0050,	# LATIN CAPITAL LETTER P | ||
|  | 	0x00d8: 0x0051,	# LATIN CAPITAL LETTER Q | ||
|  | 	0x00d9: 0x0052,	# LATIN CAPITAL LETTER R | ||
|  | 	0x00da: 0x00b1,	# PLUS-MINUS SIGN | ||
|  | 	0x00db: 0x00bd,	# VULGAR FRACTION ONE HALF | ||
|  | 	0x00dc: 0x001a,	# SUBSTITUTE | ||
|  | 	0x00dd: 0x0387,	# GREEK ANO TELEIA | ||
|  | 	0x00de: 0x2019,	# RIGHT SINGLE QUOTATION MARK | ||
|  | 	0x00df: 0x00a6,	# BROKEN BAR | ||
|  | 	0x00e0: 0x005c,	# REVERSE SOLIDUS | ||
|  | 	0x00e1: 0x001a,	# SUBSTITUTE | ||
|  | 	0x00e2: 0x0053,	# LATIN CAPITAL LETTER S | ||
|  | 	0x00e3: 0x0054,	# LATIN CAPITAL LETTER T | ||
|  | 	0x00e4: 0x0055,	# LATIN CAPITAL LETTER U | ||
|  | 	0x00e5: 0x0056,	# LATIN CAPITAL LETTER V | ||
|  | 	0x00e6: 0x0057,	# LATIN CAPITAL LETTER W | ||
|  | 	0x00e7: 0x0058,	# LATIN CAPITAL LETTER X | ||
|  | 	0x00e8: 0x0059,	# LATIN CAPITAL LETTER Y | ||
|  | 	0x00e9: 0x005a,	# LATIN CAPITAL LETTER Z | ||
|  | 	0x00ea: 0x00b2,	# SUPERSCRIPT TWO | ||
|  | 	0x00eb: 0x00a7,	# SECTION SIGN | ||
|  | 	0x00ec: 0x001a,	# SUBSTITUTE | ||
|  | 	0x00ed: 0x001a,	# SUBSTITUTE | ||
|  | 	0x00ee: 0x00ab,	# LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | ||
|  | 	0x00ef: 0x00ac,	# NOT SIGN | ||
|  | 	0x00f0: 0x0030,	# DIGIT ZERO | ||
|  | 	0x00f1: 0x0031,	# DIGIT ONE | ||
|  | 	0x00f2: 0x0032,	# DIGIT TWO | ||
|  | 	0x00f3: 0x0033,	# DIGIT THREE | ||
|  | 	0x00f4: 0x0034,	# DIGIT FOUR | ||
|  | 	0x00f5: 0x0035,	# DIGIT FIVE | ||
|  | 	0x00f6: 0x0036,	# DIGIT SIX | ||
|  | 	0x00f7: 0x0037,	# DIGIT SEVEN | ||
|  | 	0x00f8: 0x0038,	# DIGIT EIGHT | ||
|  | 	0x00f9: 0x0039,	# DIGIT NINE | ||
|  | 	0x00fa: 0x00b3,	# SUPERSCRIPT THREE | ||
|  | 	0x00fb: 0x00a9,	# COPYRIGHT SIGN | ||
|  | 	0x00fc: 0x001a,	# SUBSTITUTE | ||
|  | 	0x00fd: 0x001a,	# SUBSTITUTE | ||
|  | 	0x00fe: 0x00bb,	# RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | ||
|  | 	0x00ff: 0x009f,	# CONTROL | ||
|  | } | ||
|  | 
 | ||
|  | ### Encoding Map | ||
|  | 
 | ||
|  | encoding_map = {} | ||
|  | for k,v in decoding_map.items(): | ||
|  |     encoding_map[v] = k |