Pure Python package for uncompressing LZW files (.Z), such as the ones created by Unix's shell tool compress
Project description
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 asuncompress). - 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).
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file uncompresspy-0.4.1.tar.gz.
File metadata
- Download URL: uncompresspy-0.4.1.tar.gz
- Upload date:
- Size: 10.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e79ead66eaed8d42364d807c0ba3f3a8aef0e0087a9beaf1a60f23a808a6c147
|
|
| MD5 |
b281b85fd089d10f56d346c5da3cf95a
|
|
| BLAKE2b-256 |
ebfb8c892ae2d7eb746bfc11f46f475674d2912226d8df966709d66202c88fd0
|
File details
Details for the file uncompresspy-0.4.1-py3-none-any.whl.
File metadata
- Download URL: uncompresspy-0.4.1-py3-none-any.whl
- Upload date:
- Size: 10.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7afd3c67ec39608bfd86f2c0832deaa1ff89ed0741a2e23cdba7819ee2a47d5
|
|
| MD5 |
8f1520aa6286bd6877f2e193d7deffe4
|
|
| BLAKE2b-256 |
06babaf49db30801e20a741388a9d456b7330011f45f7c7560cb2c7ab3c3fa0d
|