Skip to main content

Description

Project description

Py7za ("pizza")

Python wrapper for running the 7za.exe utility from https://www.7-zip.org/

The wrapper simply runs the application in a separate process and added functionality primarily aimed at running the tool in several parallel processes from the command-line.

Other than providing that utility, the wrapper tries to provide users Python API access to 7za in a way as simple, and as close to the original as possible. See some documentation for the command line options here https://sevenzip.osdn.jp/chm/cmdline/index.htm (no affiliation).

Additionally, the package contains the generic AsyncIOPool class, which allows you to queue up a large number of asynchronous tasks, and it will keep a certain number of them running at all times, until all tasks are done. This works for any asyncio Task, but can be handily combined with the Py7za class.

Finally, a command line utility py7za-box ("pizza box", and its aliases box and unbox) is included, which allows you to quickly replace individual files with their zipped equivalent in-place and vice versa, without writing any code. The idea is that a user may want to zip many files in a large project, without removing them from their original location, and still be able to find them by name and easily extract them individually.

For more information, check the Py7za documentation at Read the Docs (py7za.readthedocs.io).

Install

Install the package for use from scripts:

pip install py7za

Of if you want to use the command-line interface py7za-box as well, make sure the dependencies for it are installed like this:

pip install py7za[box]
py7za-box --help
box --help
unbox --help

On Linux, you will have to have p7zip installed for py7za to work, as there is no Linux binary included in the package. For example:

sudo yum install -y p7zip
sudo apt-get install -y p7zip

Command line py7za-box

To quickly replace every .csv file in a directory and in all its subdirectories with a zip-file containing that .csv:

py7za-box **/*.csv

And the reverse:

py7za-box **/*.csv.zip --unbox

More in the documentation https://py7za.readthedocs.io

Dependencies

The only external dependency is on conffu for the configuration of the command-line tool. If you only want to use the Py7za class, and just use pip install py7za, this dependency won't be installed. To install the dependency, use pip install py7za[box].

License

This package is licensed under the MIT license. See LICENSE.txt.

Changelog

See CHANGELOG.md.

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

py7za-0.4.1.tar.gz (650.7 kB view details)

Uploaded Source

File details

Details for the file py7za-0.4.1.tar.gz.

File metadata

  • Download URL: py7za-0.4.1.tar.gz
  • Upload date:
  • Size: 650.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for py7za-0.4.1.tar.gz
Algorithm Hash digest
SHA256 3dd10fd2ab0bcf8ceb2672cf9c36fb63838aca00f2fe2ad678309df55a3768cb
MD5 fe74944c350a0861b68a97fb3f81b9e2
BLAKE2b-256 ab4e79b24b8e1c08e8e4fa8e556f429387f9d43cb310e0632ff6342c7a9d2f83

See more details on using hashes here.

Supported by

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