cp1026.py 11.6 KB
Newer Older
1
""" Python Character Mapping Codec generated from 'CP1026.TXT' with gencodec.py.
2 3 4 5

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

(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
6
(c) Copyright 2000 Guido van Rossum.
7 8 9 10 11 12 13 14 15 16 17 18

"""#"

import codecs

### Codec APIs

class Codec(codecs.Codec):

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

        return codecs.charmap_encode(input,errors,encoding_map)
Tim Peters's avatar
Tim Peters committed
19

20 21 22 23 24 25
    def decode(self,input,errors='strict'):

        return codecs.charmap_decode(input,errors,decoding_map)

class StreamWriter(Codec,codecs.StreamWriter):
    pass
Tim Peters's avatar
Tim Peters committed
26

27 28 29 30 31 32 33 34 35 36 37
class StreamReader(Codec,codecs.StreamReader):
    pass

### encodings module API

def getregentry():

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

### Decoding Map

38 39
decoding_map = codecs.make_identity_dict(range(256))
decoding_map.update({
Tim Peters's avatar
Tim Peters committed
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 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275
        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: 0x00a0, # NO-BREAK SPACE
        0x0042: 0x00e2, # LATIN SMALL LETTER A WITH CIRCUMFLEX
        0x0043: 0x00e4, # LATIN SMALL LETTER A WITH DIAERESIS
        0x0044: 0x00e0, # LATIN SMALL LETTER A WITH GRAVE
        0x0045: 0x00e1, # LATIN SMALL LETTER A WITH ACUTE
        0x0046: 0x00e3, # LATIN SMALL LETTER A WITH TILDE
        0x0047: 0x00e5, # LATIN SMALL LETTER A WITH RING ABOVE
        0x0048: 0x007b, # LEFT CURLY BRACKET
        0x0049: 0x00f1, # LATIN SMALL LETTER N WITH TILDE
        0x004a: 0x00c7, # LATIN CAPITAL LETTER C WITH CEDILLA
        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: 0x00e9, # LATIN SMALL LETTER E WITH ACUTE
        0x0052: 0x00ea, # LATIN SMALL LETTER E WITH CIRCUMFLEX
        0x0053: 0x00eb, # LATIN SMALL LETTER E WITH DIAERESIS
        0x0054: 0x00e8, # LATIN SMALL LETTER E WITH GRAVE
        0x0055: 0x00ed, # LATIN SMALL LETTER I WITH ACUTE
        0x0056: 0x00ee, # LATIN SMALL LETTER I WITH CIRCUMFLEX
        0x0057: 0x00ef, # LATIN SMALL LETTER I WITH DIAERESIS
        0x0058: 0x00ec, # LATIN SMALL LETTER I WITH GRAVE
        0x0059: 0x00df, # LATIN SMALL LETTER SHARP S (GERMAN)
        0x005a: 0x011e, # LATIN CAPITAL LETTER G WITH BREVE
        0x005b: 0x0130, # LATIN CAPITAL LETTER I WITH DOT ABOVE
        0x005c: 0x002a, # ASTERISK
        0x005d: 0x0029, # RIGHT PARENTHESIS
        0x005e: 0x003b, # SEMICOLON
        0x005f: 0x005e, # CIRCUMFLEX ACCENT
        0x0060: 0x002d, # HYPHEN-MINUS
        0x0061: 0x002f, # SOLIDUS
        0x0062: 0x00c2, # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
        0x0063: 0x00c4, # LATIN CAPITAL LETTER A WITH DIAERESIS
        0x0064: 0x00c0, # LATIN CAPITAL LETTER A WITH GRAVE
        0x0065: 0x00c1, # LATIN CAPITAL LETTER A WITH ACUTE
        0x0066: 0x00c3, # LATIN CAPITAL LETTER A WITH TILDE
        0x0067: 0x00c5, # LATIN CAPITAL LETTER A WITH RING ABOVE
        0x0068: 0x005b, # LEFT SQUARE BRACKET
        0x0069: 0x00d1, # LATIN CAPITAL LETTER N WITH TILDE
        0x006a: 0x015f, # LATIN SMALL LETTER S WITH CEDILLA
        0x006b: 0x002c, # COMMA
        0x006c: 0x0025, # PERCENT SIGN
        0x006d: 0x005f, # LOW LINE
        0x006e: 0x003e, # GREATER-THAN SIGN
        0x006f: 0x003f, # QUESTION MARK
        0x0070: 0x00f8, # LATIN SMALL LETTER O WITH STROKE
        0x0071: 0x00c9, # LATIN CAPITAL LETTER E WITH ACUTE
        0x0072: 0x00ca, # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
        0x0073: 0x00cb, # LATIN CAPITAL LETTER E WITH DIAERESIS
        0x0074: 0x00c8, # LATIN CAPITAL LETTER E WITH GRAVE
        0x0075: 0x00cd, # LATIN CAPITAL LETTER I WITH ACUTE
        0x0076: 0x00ce, # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
        0x0077: 0x00cf, # LATIN CAPITAL LETTER I WITH DIAERESIS
        0x0078: 0x00cc, # LATIN CAPITAL LETTER I WITH GRAVE
        0x0079: 0x0131, # LATIN SMALL LETTER DOTLESS I
        0x007a: 0x003a, # COLON
        0x007b: 0x00d6, # LATIN CAPITAL LETTER O WITH DIAERESIS
        0x007c: 0x015e, # LATIN CAPITAL LETTER S WITH CEDILLA
        0x007d: 0x0027, # APOSTROPHE
        0x007e: 0x003d, # EQUALS SIGN
        0x007f: 0x00dc, # LATIN CAPITAL LETTER U WITH DIAERESIS
        0x0080: 0x00d8, # LATIN CAPITAL LETTER O WITH STROKE
        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: 0x00ab, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
        0x008b: 0x00bb, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
        0x008c: 0x007d, # RIGHT CURLY BRACKET
        0x008d: 0x0060, # GRAVE ACCENT
        0x008e: 0x00a6, # BROKEN BAR
        0x008f: 0x00b1, # PLUS-MINUS SIGN
        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: 0x00aa, # FEMININE ORDINAL INDICATOR
        0x009b: 0x00ba, # MASCULINE ORDINAL INDICATOR
        0x009c: 0x00e6, # LATIN SMALL LIGATURE AE
        0x009d: 0x00b8, # CEDILLA
        0x009e: 0x00c6, # LATIN CAPITAL LIGATURE AE
        0x009f: 0x00a4, # CURRENCY SIGN
        0x00a0: 0x00b5, # MICRO SIGN
        0x00a1: 0x00f6, # LATIN SMALL LETTER O WITH DIAERESIS
        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: 0x00a1, # INVERTED EXCLAMATION MARK
        0x00ab: 0x00bf, # INVERTED QUESTION MARK
        0x00ac: 0x005d, # RIGHT SQUARE BRACKET
        0x00ad: 0x0024, # DOLLAR SIGN
        0x00ae: 0x0040, # COMMERCIAL AT
        0x00af: 0x00ae, # REGISTERED SIGN
        0x00b0: 0x00a2, # CENT SIGN
        0x00b1: 0x00a3, # POUND SIGN
        0x00b2: 0x00a5, # YEN SIGN
        0x00b3: 0x00b7, # MIDDLE DOT
        0x00b4: 0x00a9, # COPYRIGHT SIGN
        0x00b5: 0x00a7, # SECTION SIGN
        0x00b7: 0x00bc, # VULGAR FRACTION ONE QUARTER
        0x00b8: 0x00bd, # VULGAR FRACTION ONE HALF
        0x00b9: 0x00be, # VULGAR FRACTION THREE QUARTERS
        0x00ba: 0x00ac, # NOT SIGN
        0x00bb: 0x007c, # VERTICAL LINE
        0x00bc: 0x00af, # MACRON
        0x00bd: 0x00a8, # DIAERESIS
        0x00be: 0x00b4, # ACUTE ACCENT
        0x00bf: 0x00d7, # MULTIPLICATION SIGN
        0x00c0: 0x00e7, # LATIN SMALL LETTER C WITH CEDILLA
        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: 0x00f4, # LATIN SMALL LETTER O WITH CIRCUMFLEX
        0x00cc: 0x007e, # TILDE
        0x00cd: 0x00f2, # LATIN SMALL LETTER O WITH GRAVE
        0x00ce: 0x00f3, # LATIN SMALL LETTER O WITH ACUTE
        0x00cf: 0x00f5, # LATIN SMALL LETTER O WITH TILDE
        0x00d0: 0x011f, # LATIN SMALL LETTER G WITH BREVE
        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: 0x00b9, # SUPERSCRIPT ONE
        0x00db: 0x00fb, # LATIN SMALL LETTER U WITH CIRCUMFLEX
        0x00dc: 0x005c, # REVERSE SOLIDUS
        0x00dd: 0x00f9, # LATIN SMALL LETTER U WITH GRAVE
        0x00de: 0x00fa, # LATIN SMALL LETTER U WITH ACUTE
        0x00df: 0x00ff, # LATIN SMALL LETTER Y WITH DIAERESIS
        0x00e0: 0x00fc, # LATIN SMALL LETTER U WITH DIAERESIS
        0x00e1: 0x00f7, # DIVISION SIGN
        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: 0x00d4, # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
        0x00ec: 0x0023, # NUMBER SIGN
        0x00ed: 0x00d2, # LATIN CAPITAL LETTER O WITH GRAVE
        0x00ee: 0x00d3, # LATIN CAPITAL LETTER O WITH ACUTE
        0x00ef: 0x00d5, # LATIN CAPITAL LETTER O WITH TILDE
        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: 0x00db, # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
        0x00fc: 0x0022, # QUOTATION MARK
        0x00fd: 0x00d9, # LATIN CAPITAL LETTER U WITH GRAVE
        0x00fe: 0x00da, # LATIN CAPITAL LETTER U WITH ACUTE
        0x00ff: 0x009f, # CONTROL
276
})
277 278 279

### Encoding Map

280
encoding_map = codecs.make_encoding_map(decoding_map)