Skip to main content

uncompresspy

uncompresspy is a pure Python package for uncompressing LZW files (.Z), such as the ones created by Unix's shell tool compress. It is available on PyPI for Python 3.10+.

Key features

While there are other Python packages for uncompressing LZW files, uncompresspy distinguishes itself from others on the following aspects:

  • It is implemented purely in Python and requires no external dependencies (thus fully cross-platform).
  • Full compatibility with all files created by compress (i.e., same output as uncompress).
  • Does not require holding the entire input file in memory (the file is read as necessary).
  • Faster than all other available pure Python implementations (compared to the next fastest you can expect a speedup of at least 1.5x in poorly compressed files, but upwards of 44x on extremely compressed files).
  • Allows partial/on-demand decompression and does not require holding the full decompressed stream in memory (only package to do so).
  • Provides a file-like interface (only package to do so).

Caveats

  • uncompresspy only provides an implementation for decompression, other packages may provide compression features.
  • Although extremely optimized, uncompresspy still lags behind C/C++ based implementations when decompressing most files, due to the inherent speed disadvantages of the language.
  • To speed up the decompression, uncompresspy stores dynamically-sized bytearrays in its dictionary, rather than the classic technique of building a stack and then reversing it. This means that in some scenarios (particularly highly compressed files) memory usage may be higher than in other packages (though this is usually offset by the other memory management techniques mentioned above).

Metadata

Release files for uncompresspy 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for uncompresspy 0.4.1
File Size Uploaded
uncompresspy-0.4.1.tar.gz 10.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for uncompresspy 0.4.1
File Interpreter ABI Platform
uncompresspy-0.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 20.9 kB

Release files / uncompresspy-0.4.1.tar.gz

Download URL uncompresspy-0.4.1.tar.gz
Size 10.8 kB
Tags Source
SHA-256 checksum
How to use checksums
e79ead66eaed8d42364d807c0ba3f3a8aef0e0087a9beaf1a60f23a808a6c147
BLAKE2b-256 checksum
How to use checksums
ebfb8c892ae2d7eb746bfc11f46f475674d2912226d8df966709d66202c88fd0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / uncompresspy-0.4.1-py3-none-any.whl

Download URL uncompresspy-0.4.1-py3-none-any.whl
Size 10.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b7afd3c67ec39608bfd86f2c0832deaa1ff89ed0741a2e23cdba7819ee2a47d5
BLAKE2b-256 checksum
How to use checksums
06babaf49db30801e20a741388a9d456b7330011f45f7c7560cb2c7ab3c3fa0d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release history Release notifications | RSS feed

This release

0.4.1 This release

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page