py7za


Namepy7za JSON
Version 0.3.1 PyPI version JSON
download
home_pagehttps://gitlab.com/Jaap.vanderVelde/py7za
SummaryDescription
upload_time2024-03-21 05:22:52
maintainerNone
docs_urlNone
authorBMT, Jaap van der Velde
requires_python>=3.8
licenseMIT
keywords package
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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)](https://py7za.readthedocs.io).

## Install

Install the package for use from scripts:
```commandline
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: 
```commandline
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:
```commandline
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:
```commandline
py7za-box **/*.csv
```

And the reverse:
```commandline
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](https://gitlab.com/Jaap.vanderVelde/py7za/-/blob/master/LICENSE.txt).

## Changelog

See [CHANGELOG.md](https://gitlab.com/Jaap.vanderVelde/py7za/-/blob/master/CHANGELOG.md).
            

Raw data

            {
    "_id": null,
    "home_page": "https://gitlab.com/Jaap.vanderVelde/py7za",
    "name": "py7za",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "package",
    "author": "BMT, Jaap van der Velde",
    "author_email": "jaap.vandervelde@bmtglobal.com",
    "download_url": "https://files.pythonhosted.org/packages/40/a4/5681d8798169cf3ea74be71b3376e1746697265f64de0ffc2d0385931dad/py7za-0.3.1.tar.gz",
    "platform": null,
    "description": "# Py7za (\"pizza\")\n\nPython wrapper for running the 7za.exe utility from https://www.7-zip.org/\n\nThe 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.\n\nOther 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).\n\nAdditionally, 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.\n\nFinally, 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.\n\nFor more information, check the [Py7za documentation at Read the Docs (py7za.readthedocs.io)](https://py7za.readthedocs.io).\n\n## Install\n\nInstall the package for use from scripts:\n```commandline\npip install py7za\n```\n\nOf if you want to use the command-line interface `py7za-box` as well, make sure the dependencies for it are installed like this: \n```commandline\npip install py7za[box]\npy7za-box --help\nbox --help\nunbox --help\n```\n\nOn Linux, you will have to have `p7zip` installed for `py7za` to work, as there is no Linux binary included in the package. For example:\n```commandline\nsudo yum install -y p7zip\nsudo apt-get install -y p7zip\n```\n\n### Command line py7za-box\n\nTo quickly replace every .csv file in a directory and in all its subdirectories with a zip-file containing that .csv:\n```commandline\npy7za-box **/*.csv\n```\n\nAnd the reverse:\n```commandline\npy7za-box **/*.csv.zip --unbox\n```\n\nMore in the documentation https://py7za.readthedocs.io\n\n## Dependencies\n\nThe 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]`.\n\n## License\n\nThis package is licensed under the MIT license. See [LICENSE.txt](https://gitlab.com/Jaap.vanderVelde/py7za/-/blob/master/LICENSE.txt).\n\n## Changelog\n\nSee [CHANGELOG.md](https://gitlab.com/Jaap.vanderVelde/py7za/-/blob/master/CHANGELOG.md).",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Description",
    "version": "0.3.1",
    "project_urls": {
        "Download": "https://gitlab.com/Jaap.vanderVelde/py7za/repository/archive.zip?ref=0.3.1",
        "Homepage": "https://gitlab.com/Jaap.vanderVelde/py7za"
    },
    "split_keywords": [
        "package"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "40a45681d8798169cf3ea74be71b3376e1746697265f64de0ffc2d0385931dad",
                "md5": "e9bb4d2ef14d9efb04cc7cc89ba1fa4c",
                "sha256": "79dd2a1cc13d7a6eccc5176cc020ad20f5b9a6da8dd3a6839bc41ce066e758c0"
            },
            "downloads": -1,
            "filename": "py7za-0.3.1.tar.gz",
            "has_sig": false,
            "md5_digest": "e9bb4d2ef14d9efb04cc7cc89ba1fa4c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 562661,
            "upload_time": "2024-03-21T05:22:52",
            "upload_time_iso_8601": "2024-03-21T05:22:52.488829Z",
            "url": "https://files.pythonhosted.org/packages/40/a4/5681d8798169cf3ea74be71b3376e1746697265f64de0ffc2d0385931dad/py7za-0.3.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-21 05:22:52",
    "github": false,
    "gitlab": true,
    "bitbucket": false,
    "codeberg": false,
    "gitlab_user": "Jaap.vanderVelde",
    "gitlab_project": "py7za",
    "lcname": "py7za"
}
        
Elapsed time: 0.21892s