mbcs.py 1.18 KB
Newer Older
1 2 3 4 5 6 7 8 9
""" Python 'mbcs' Codec for Windows


Cloned by Mark Hammond (mhammond@skippinet.com.au) from ascii.py,
which was written by Marc-Andre Lemburg (mal@lemburg.com).

(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.

"""
10 11 12 13
# Import them explicitly to cause an ImportError
# on non-Windows systems
from codecs import mbcs_encode, mbcs_decode
# for IncrementalDecoder, IncrementalEncoder, ...
14 15 16 17
import codecs

### Codec APIs

18
encode = mbcs_encode
19

20 21
def decode(input, errors='strict'):
    return mbcs_decode(input, errors, True)
22

23 24
class IncrementalEncoder(codecs.IncrementalEncoder):
    def encode(self, input, final=False):
25
        return mbcs_encode(input, self.errors)[0]
26

27
class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
28
    _buffer_decode = mbcs_decode
Tim Peters's avatar
Tim Peters committed
29

30 31
class StreamWriter(codecs.StreamWriter):
    encode = mbcs_encode
32

33 34
class StreamReader(codecs.StreamReader):
    decode = mbcs_decode
35 36 37 38

### encodings module API

def getregentry():
39 40
    return codecs.CodecInfo(
        name='mbcs',
41 42
        encode=encode,
        decode=decode,
43 44 45 46 47
        incrementalencoder=IncrementalEncoder,
        incrementaldecoder=IncrementalDecoder,
        streamreader=StreamReader,
        streamwriter=StreamWriter,
    )