Skip to main content

bz3 compress and decompress

Project description

✨ python-bz3 ✨

The python binding for bzip3 with parallel support

pypi python implementation wheel license action

install

pip install bzip3

Usage

from bz3 import compress_file, decompress_file, test_file, compress, decompress
import bz3

with open("test_inp.txt", "rb") as inp, open("compressed.bz3", "wb") as out:
    compress_file(inp, out, 1000 * 1000)

with open("compressed.bz3", "rb") as inp:
    test_file(inp, True)    

with open("compressed.bz3", "rb") as inp, open("output.txt", "wb") as out:
    decompress_file(inp, out)

print(decompress(compress(b"12121")))

with bz3.open("test.bz3", "wt", encoding="utf-8", num_threads=4) as f:
    f.write("test data")

with bz3.open("test.bz3", "rt", encoding="utf-8", num_threads=4) as f:
    print(f.read())
  • use BZ3_USE_CFFI env var to specify a backend
  • num_threads is only available on cython backend which have openmp support

Public functions

from typing import IO, Optional, Union

def compress_file(input: IO, output: IO, block_size: int) -> None: ...
def decompress_file(input: IO, output: IO) -> None: ...
def recover_file(input: IO, output: IO) -> None: ...
def test_file(input: IO, should_raise: bool = ...) -> bool: ...


class BZ3File:
    def __init__(self, filename, mode: str = ..., block_size: int = ..., num_threads: int = ..., ignore_error: bool = False) -> None: ...
    def close(self) -> None: ...
    @property
    def closed(self): ...
    def fileno(self): ...
    def seekable(self): ...
    def readable(self): ...
    def writable(self): ...
    def peek(self, n: int = ...): ...
    def read(self, size: int = ...): ...
    def read1(self, size: int = ...): ...
    def readinto(self, b): ...
    def readline(self, size: int = ...): ...
    def readlines(self, size: int = ...): ...
    def write(self, data): ...
    def writelines(self, seq): ...
    def seek(self, offset, whence=...): ...
    def tell(self): ...

def open(filename, mode: str = ..., block_size: int = ..., encoding: str = ..., errors: str = ..., newline: str = ..., num_threads: int = 1, ignore_error: bool = False) -> BZ3File: ...
def compress(data: bytes, block_size: int = ..., num_threads: int = 1) -> bytes: ...
def decompress(data: bytes, num_threads: int = 1) -> bytes: ...

def libversion() -> str: ... # Get bzip3 version
def bound(inp: int) -> int: ... # Return the recommended size of the output buffer for the compression functions.

# High-level api
# Compress a block of data into out buffer, zerocopy, both parameters accept objects which implements buffer-protocol.
# out must be writabel, size of out must be at least equal to bound(len(inp))
def compress_into(inp: Union[bytes, bytearray], out: bytearray) -> int: ...
# Decompress a block of data into out buffer, zerocopy
def decompress_into(inp: Union[bytes, bytearray], out: bytearray) -> int: ...
  • Note, high-level api won't work with low-level api, see this

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bzip3-0.1.4.tar.gz (262.9 kB view hashes)

Uploaded Source

Built Distributions

bzip3-0.1.4-pp310-pypy310_pp73-win_amd64.whl (383.7 kB view hashes)

Uploaded PyPy Windows x86-64

bzip3-0.1.4-pp39-pypy39_pp73-win_amd64.whl (383.5 kB view hashes)

Uploaded PyPy Windows x86-64

bzip3-0.1.4-pp38-pypy38_pp73-win_amd64.whl (383.0 kB view hashes)

Uploaded PyPy Windows x86-64

bzip3-0.1.4-pp37-pypy37_pp73-win_amd64.whl (382.9 kB view hashes)

Uploaded PyPy Windows x86-64

bzip3-0.1.4-cp312-cp312-win_amd64.whl (394.9 kB view hashes)

Uploaded CPython 3.12 Windows x86-64

bzip3-0.1.4-cp312-cp312-manylinux2014_x86_64.whl (450.0 kB view hashes)

Uploaded CPython 3.12

bzip3-0.1.4-cp311-cp311-win_amd64.whl (393.6 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

bzip3-0.1.4-cp311-cp311-manylinux2014_x86_64.whl (451.6 kB view hashes)

Uploaded CPython 3.11

bzip3-0.1.4-cp310-cp310-win_amd64.whl (393.3 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

bzip3-0.1.4-cp310-cp310-manylinux2014_x86_64.whl (452.4 kB view hashes)

Uploaded CPython 3.10

bzip3-0.1.4-cp39-cp39-win_amd64.whl (394.0 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

bzip3-0.1.4-cp39-cp39-manylinux2014_x86_64.whl (453.2 kB view hashes)

Uploaded CPython 3.9

bzip3-0.1.4-cp38-cp38-win_amd64.whl (394.2 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

bzip3-0.1.4-cp38-cp38-manylinux2014_x86_64.whl (453.9 kB view hashes)

Uploaded CPython 3.8

bzip3-0.1.4-cp37-cp37m-win_amd64.whl (391.1 kB view hashes)

Uploaded CPython 3.7m Windows x86-64

bzip3-0.1.4-cp37-cp37m-manylinux2014_x86_64.whl (451.4 kB view hashes)

Uploaded CPython 3.7m

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page