cp1258.py 3.02 KB
Newer Older
1
""" Python Character Mapping Codec generated from 'CP1258.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
        0x0080: 0x20ac, # EURO SIGN
        0x0081: None,   # UNDEFINED
        0x0082: 0x201a, # SINGLE LOW-9 QUOTATION MARK
        0x0083: 0x0192, # LATIN SMALL LETTER F WITH HOOK
        0x0084: 0x201e, # DOUBLE LOW-9 QUOTATION MARK
        0x0085: 0x2026, # HORIZONTAL ELLIPSIS
        0x0086: 0x2020, # DAGGER
        0x0087: 0x2021, # DOUBLE DAGGER
        0x0088: 0x02c6, # MODIFIER LETTER CIRCUMFLEX ACCENT
        0x0089: 0x2030, # PER MILLE SIGN
        0x008a: None,   # UNDEFINED
        0x008b: 0x2039, # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
        0x008c: 0x0152, # LATIN CAPITAL LIGATURE OE
        0x008d: None,   # UNDEFINED
        0x008e: None,   # UNDEFINED
        0x008f: None,   # UNDEFINED
        0x0090: None,   # UNDEFINED
        0x0091: 0x2018, # LEFT SINGLE QUOTATION MARK
        0x0092: 0x2019, # RIGHT SINGLE QUOTATION MARK
        0x0093: 0x201c, # LEFT DOUBLE QUOTATION MARK
        0x0094: 0x201d, # RIGHT DOUBLE QUOTATION MARK
        0x0095: 0x2022, # BULLET
        0x0096: 0x2013, # EN DASH
        0x0097: 0x2014, # EM DASH
        0x0098: 0x02dc, # SMALL TILDE
        0x0099: 0x2122, # TRADE MARK SIGN
        0x009a: None,   # UNDEFINED
        0x009b: 0x203a, # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
        0x009c: 0x0153, # LATIN SMALL LIGATURE OE
        0x009d: None,   # UNDEFINED
        0x009e: None,   # UNDEFINED
        0x009f: 0x0178, # LATIN CAPITAL LETTER Y WITH DIAERESIS
        0x00c3: 0x0102, # LATIN CAPITAL LETTER A WITH BREVE
        0x00cc: 0x0300, # COMBINING GRAVE ACCENT
        0x00d0: 0x0110, # LATIN CAPITAL LETTER D WITH STROKE
        0x00d2: 0x0309, # COMBINING HOOK ABOVE
        0x00d5: 0x01a0, # LATIN CAPITAL LETTER O WITH HORN
        0x00dd: 0x01af, # LATIN CAPITAL LETTER U WITH HORN
        0x00de: 0x0303, # COMBINING TILDE
        0x00e3: 0x0103, # LATIN SMALL LETTER A WITH BREVE
        0x00ec: 0x0301, # COMBINING ACUTE ACCENT
        0x00f0: 0x0111, # LATIN SMALL LETTER D WITH STROKE
        0x00f2: 0x0323, # COMBINING DOT BELOW
        0x00f5: 0x01a1, # LATIN SMALL LETTER O WITH HORN
        0x00fd: 0x01b0, # LATIN SMALL LETTER U WITH HORN
        0x00fe: 0x20ab, # DONG SIGN
86
})
87 88 89

### Encoding Map

90
encoding_map = codecs.make_encoding_map(decoding_map)