xref: /aosp_15_r20/prebuilts/build-tools/common/py3-stdlib/encodings/mbcs.py (revision cda5da8d549138a6648c5ee6d7a49cf8f4a657be)
1*cda5da8dSAndroid Build Coastguard Worker""" Python 'mbcs' Codec for Windows
2*cda5da8dSAndroid Build Coastguard Worker
3*cda5da8dSAndroid Build Coastguard Worker
4*cda5da8dSAndroid Build Coastguard WorkerCloned by Mark Hammond ([email protected]) from ascii.py,
5*cda5da8dSAndroid Build Coastguard Workerwhich was written by Marc-Andre Lemburg ([email protected]).
6*cda5da8dSAndroid Build Coastguard Worker
7*cda5da8dSAndroid Build Coastguard Worker(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
8*cda5da8dSAndroid Build Coastguard Worker
9*cda5da8dSAndroid Build Coastguard Worker"""
10*cda5da8dSAndroid Build Coastguard Worker# Import them explicitly to cause an ImportError
11*cda5da8dSAndroid Build Coastguard Worker# on non-Windows systems
12*cda5da8dSAndroid Build Coastguard Workerfrom codecs import mbcs_encode, mbcs_decode
13*cda5da8dSAndroid Build Coastguard Worker# for IncrementalDecoder, IncrementalEncoder, ...
14*cda5da8dSAndroid Build Coastguard Workerimport codecs
15*cda5da8dSAndroid Build Coastguard Worker
16*cda5da8dSAndroid Build Coastguard Worker### Codec APIs
17*cda5da8dSAndroid Build Coastguard Worker
18*cda5da8dSAndroid Build Coastguard Workerencode = mbcs_encode
19*cda5da8dSAndroid Build Coastguard Worker
20*cda5da8dSAndroid Build Coastguard Workerdef decode(input, errors='strict'):
21*cda5da8dSAndroid Build Coastguard Worker    return mbcs_decode(input, errors, True)
22*cda5da8dSAndroid Build Coastguard Worker
23*cda5da8dSAndroid Build Coastguard Workerclass IncrementalEncoder(codecs.IncrementalEncoder):
24*cda5da8dSAndroid Build Coastguard Worker    def encode(self, input, final=False):
25*cda5da8dSAndroid Build Coastguard Worker        return mbcs_encode(input, self.errors)[0]
26*cda5da8dSAndroid Build Coastguard Worker
27*cda5da8dSAndroid Build Coastguard Workerclass IncrementalDecoder(codecs.BufferedIncrementalDecoder):
28*cda5da8dSAndroid Build Coastguard Worker    _buffer_decode = mbcs_decode
29*cda5da8dSAndroid Build Coastguard Worker
30*cda5da8dSAndroid Build Coastguard Workerclass StreamWriter(codecs.StreamWriter):
31*cda5da8dSAndroid Build Coastguard Worker    encode = mbcs_encode
32*cda5da8dSAndroid Build Coastguard Worker
33*cda5da8dSAndroid Build Coastguard Workerclass StreamReader(codecs.StreamReader):
34*cda5da8dSAndroid Build Coastguard Worker    decode = mbcs_decode
35*cda5da8dSAndroid Build Coastguard Worker
36*cda5da8dSAndroid Build Coastguard Worker### encodings module API
37*cda5da8dSAndroid Build Coastguard Worker
38*cda5da8dSAndroid Build Coastguard Workerdef getregentry():
39*cda5da8dSAndroid Build Coastguard Worker    return codecs.CodecInfo(
40*cda5da8dSAndroid Build Coastguard Worker        name='mbcs',
41*cda5da8dSAndroid Build Coastguard Worker        encode=encode,
42*cda5da8dSAndroid Build Coastguard Worker        decode=decode,
43*cda5da8dSAndroid Build Coastguard Worker        incrementalencoder=IncrementalEncoder,
44*cda5da8dSAndroid Build Coastguard Worker        incrementaldecoder=IncrementalDecoder,
45*cda5da8dSAndroid Build Coastguard Worker        streamreader=StreamReader,
46*cda5da8dSAndroid Build Coastguard Worker        streamwriter=StreamWriter,
47*cda5da8dSAndroid Build Coastguard Worker    )
48