bz2_codec.py (1805B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\stdlib\encodings\bz2_codec.py 2 import codecs 3 import bz2 4 5 def bz2_encode(input, errors = 'strict'): 6 output = bz2.compress(input) 7 return (output, len(input)) 8 9 10 def bz2_decode(input, errors = 'strict'): 11 output = bz2.decompress(input) 12 return (output, len(input)) 13 14 15 class Codec(codecs.Codec): 16 17 def encode(self, input, errors = 'strict'): 18 return bz2_encode(input, errors) 19 20 def decode(self, input, errors = 'strict'): 21 return bz2_decode(input, errors) 22 23 24 class IncrementalEncoder(codecs.IncrementalEncoder): 25 26 def __init__(self, errors = 'strict'): 27 self.errors = errors 28 self.compressobj = bz2.BZ2Compressor() 29 30 def encode(self, input, final = False): 31 if final: 32 c = self.compressobj.compress(input) 33 return c + self.compressobj.flush() 34 else: 35 return self.compressobj.compress(input) 36 37 def reset(self): 38 self.compressobj = bz2.BZ2Compressor() 39 40 41 class IncrementalDecoder(codecs.IncrementalDecoder): 42 43 def __init__(self, errors = 'strict'): 44 self.errors = errors 45 self.decompressobj = bz2.BZ2Decompressor() 46 47 def decode(self, input, final = False): 48 try: 49 return self.decompressobj.decompress(input) 50 except EOFError: 51 return '' 52 53 def reset(self): 54 self.decompressobj = bz2.BZ2Decompressor() 55 56 57 class StreamWriter(Codec, codecs.StreamWriter): 58 pass 59 60 61 class StreamReader(Codec, codecs.StreamReader): 62 pass 63 64 65 def getregentry(): 66 return codecs.CodecInfo(name='bz2', encode=bz2_encode, decode=bz2_decode, incrementalencoder=IncrementalEncoder, incrementaldecoder=IncrementalDecoder, streamwriter=StreamWriter, streamreader=StreamReader)