NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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)