/zopflipy

A Python bindings for Zopfli

Primary LanguagePythonApache License 2.0Apache-2.0

ZopfliPy

A Python bindings for Zopfli.

https://ci.appveyor.com/api/projects/status/98a7e7d6qlkvs6vl/branch/master?svg=true

Installation

$ pip install zopflipy

Requirements

  • Python 3.9+

Usage

ZopfliCompressor

>>> import zopfli
>>> c = zopfli.ZopfliCompressor(zopfli.ZOPFLI_FORMAT_DEFLATE)
>>> z = c.compress(b'Hello, world!') + c.flush()
>>> d = zopfli.ZopfliDecompressor(zopfli.ZOPFLI_FORMAT_DEFLATE)
>>> d.decompress(z) + d.flush()
b'Hello, world!''

ZopfliDeflater

>>> import zopfli
>>> c = zopfli.ZopfliDeflater()
>>> z = c.compress(b'Hello, world!') + c.flush()
>>> d = zopfli.ZopfliDecompressor(zopfli.ZOPFLI_FORMAT_DEFLATE)
>>> d.decompress(z) + d.flush()
b'Hello, world!''

ZopfliPNG

>>> import zopfli
>>> png = zopfli.ZopfliPNG()
>>> with open('in.png', 'rb') as fp:
...     data = fp.read()
>>> len(png.optimize(data)) < len(data)
True

ZipFile

A subclass of zipfile.ZipFile which uses ZopfliCompressor for the zipfile.ZIP_DEFLATED compression method.

>>> import zipfile
>>> import zopfli
>>> with zopfli.ZipFile('a.zip', 'w', zipfile.ZIP_DEFLATED) as zf:
...     zf.writestr('a.txt', b'Hello, world!')

License

ZopfliPy is distributed under the terms of the Apache License, Version 2.0.