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