1*cda5da8dSAndroid Build Coastguard Worker""" Python 'utf-7' Codec 2*cda5da8dSAndroid Build Coastguard Worker 3*cda5da8dSAndroid Build Coastguard WorkerWritten by Brian Quinlan ([email protected]). 4*cda5da8dSAndroid Build Coastguard Worker""" 5*cda5da8dSAndroid Build Coastguard Workerimport codecs 6*cda5da8dSAndroid Build Coastguard Worker 7*cda5da8dSAndroid Build Coastguard Worker### Codec APIs 8*cda5da8dSAndroid Build Coastguard Worker 9*cda5da8dSAndroid Build Coastguard Workerencode = codecs.utf_7_encode 10*cda5da8dSAndroid Build Coastguard Worker 11*cda5da8dSAndroid Build Coastguard Workerdef decode(input, errors='strict'): 12*cda5da8dSAndroid Build Coastguard Worker return codecs.utf_7_decode(input, errors, True) 13*cda5da8dSAndroid Build Coastguard Worker 14*cda5da8dSAndroid Build Coastguard Workerclass IncrementalEncoder(codecs.IncrementalEncoder): 15*cda5da8dSAndroid Build Coastguard Worker def encode(self, input, final=False): 16*cda5da8dSAndroid Build Coastguard Worker return codecs.utf_7_encode(input, self.errors)[0] 17*cda5da8dSAndroid Build Coastguard Worker 18*cda5da8dSAndroid Build Coastguard Workerclass IncrementalDecoder(codecs.BufferedIncrementalDecoder): 19*cda5da8dSAndroid Build Coastguard Worker _buffer_decode = codecs.utf_7_decode 20*cda5da8dSAndroid Build Coastguard Worker 21*cda5da8dSAndroid Build Coastguard Workerclass StreamWriter(codecs.StreamWriter): 22*cda5da8dSAndroid Build Coastguard Worker encode = codecs.utf_7_encode 23*cda5da8dSAndroid Build Coastguard Worker 24*cda5da8dSAndroid Build Coastguard Workerclass StreamReader(codecs.StreamReader): 25*cda5da8dSAndroid Build Coastguard Worker decode = codecs.utf_7_decode 26*cda5da8dSAndroid Build Coastguard Worker 27*cda5da8dSAndroid Build Coastguard Worker### encodings module API 28*cda5da8dSAndroid Build Coastguard Worker 29*cda5da8dSAndroid Build Coastguard Workerdef getregentry(): 30*cda5da8dSAndroid Build Coastguard Worker return codecs.CodecInfo( 31*cda5da8dSAndroid Build Coastguard Worker name='utf-7', 32*cda5da8dSAndroid Build Coastguard Worker encode=encode, 33*cda5da8dSAndroid Build Coastguard Worker decode=decode, 34*cda5da8dSAndroid Build Coastguard Worker incrementalencoder=IncrementalEncoder, 35*cda5da8dSAndroid Build Coastguard Worker incrementaldecoder=IncrementalDecoder, 36*cda5da8dSAndroid Build Coastguard Worker streamreader=StreamReader, 37*cda5da8dSAndroid Build Coastguard Worker streamwriter=StreamWriter, 38*cda5da8dSAndroid Build Coastguard Worker ) 39