def compress(string, level=6): if level < Z_BEST_SPEED or level > Z_BEST_COMPRESSION: raise error, "Bad compression level" deflater = Deflater(level, 0) deflater.setInput(string, 0, len(string)) deflater.finish() return _get_deflate_data(deflater)
def __init__(self, level=6, method=DEFLATED, wbits=MAX_WBITS, memLevel=0, strategy=0): if abs(wbits) > MAX_WBITS or abs(wbits) < 8: raise ValueError, "Invalid initialization option" self.deflater = Deflater(level, wbits < 0) self.deflater.setStrategy(strategy) if wbits < 0: _get_deflate_data(self.deflater) self._ended = False
def compress(string, level=6): if level < Z_BEST_SPEED or level > Z_BEST_COMPRESSION: raise error("Bad compression level") deflater = Deflater(level, 0) try: string = _to_input(string) deflater.setInput(string, 0, len(string)) deflater.finish() return _get_deflate_data(deflater) finally: deflater.end()
def __init__(self, level=6, method=DEFLATED, wbits=MAX_WBITS, memLevel=0, strategy=0): if abs(wbits) & 16: if wbits > 0: wbits -= 16 else: wbits += 16 self._gzip = True else: self._gzip = False if abs(wbits) > MAX_WBITS or abs(wbits) < 8: raise ValueError, "Invalid initialization option: %s" % (wbits,) self.deflater = Deflater(level, wbits < 0 or self._gzip) self.deflater.setStrategy(strategy) self._ended = False self._size = 0 self._crc32 = CRC32()
if not sys.platform.startswith('java'): import zlib def _compress(text): return zlib.compress(text, 9) else: # Custom compress implementation needed to avoid memory leak: # http://bugs.jython.org/issue1775 # This is based on the zlib.compress in Jython 2.5.2 but has a memory # leak fix and is also a little faster. from java.util.zip import Deflater import jarray _DEFLATOR = Deflater(9, False) def _compress(text): _DEFLATOR.setInput(text) _DEFLATOR.finish() buf = jarray.zeros(1024, 'b') compressed = [] while not _DEFLATOR.finished(): length = _DEFLATOR.deflate(buf, 0, 1024) compressed.append(buf[:length].tostring()) _DEFLATOR.reset() return ''.join(compressed)