Patool
=======
Patool is an archive file manager.
Various archive formats can be created, extracted, tested, listed,
searched, repacked and compared with patool. The advantage of patool is
its simplicity in handling archive files without having to remember a
myriad of programs and options.
The archive format is determined by the file(1) program and as
a fallback by the archive file extension.
patool supports 7z (.7z, .cb7), ACE (.ace, .cba), ADF (.adf), ALZIP (.alz),
APE (.ape), AR (.a), ARC (.arc), ARJ (.arj), BZIP2 (.bz2), BZIP3 (.bz3),
CAB (.cab), CHM (.chm), COMPRESS (.Z), CPIO (.cpio), DEB (.deb), DMS (.dms),
FLAC (.flac), GZIP (.gz), ISO (.iso), LRZIP (.lrz), LZH (.lha, .lzh),
LZIP (.lz), LZMA (.lzma), LZOP (.lzo), RPM (.rpm), RAR (.rar, .cbr),
RZIP (.rz), SHN (.shn), TAR (.tar, .cbt), UDF (.udf), XZ (.xz),
ZIP (.zip, .jar, .cbz), ZOO (.zoo) and ZSTANDARD (.zst) archive formats.
It relies on helper applications to handle those archive formats
(for example `xz` for XZ (.xz) archives).
The archive formats TAR, ZIP, BZIP2 and GZIP are supported natively
and do not require helper applications to be installed.
Examples
---------
```
# Extract several archives with different formats
patool extract archive.zip otherarchive.rar
# Extract archive with password
patool extract --password somepassword archive.rar
# Test archive integrity
patool test --verbose dist.tar.gz
# List files stored in an archive
patool list package.deb
# Create a new archive
patool create --verbose /path/to/myfiles.zip file1.txt dir/
# Create a new archive with password
patool create --verbose --password somepassword /path/to/myfiles.zip file1.txt dir/
# Show differences between two archives
patool diff release1.0.tar.gz release2.0.zip
# Search for text inside archives
patool search "def urlopen" python-3.3.tar.gz
# Repackage an archive in a different format
patool repack linux-2.6.33.tar.gz linux-2.6.33.tar.bz2
```
Website
--------
See https://wummel.github.io/patool/ for more info and downloads.
API
----
You can use patool functions from other Python applications.
Log output will be on sys.stdout and sys.stderr.
On errors, `PatoolError` will be raised.
Note that extra options or customization
for specific archive programs are not supported.
```
import patoolib
patoolib.extract_archive("archive.zip", outdir="/tmp")
patoolib.test_archive("dist.tar.gz", verbosity=1)
patoolib.list_archive("package.deb")
patoolib.create_archive("/path/to/myfiles.zip", ("file1.txt", "dir/"))
patoolib.diff_archives("release1.0.tar.gz", "release2.0.zip")
patoolib.search_archive("def urlopen", "python3.3.tar.gz")
patoolib.repack_archive("linux-2.6.33.tar.gz", "linux-2.6.33.tar.bz2")
patoolib.is_archive("package.deb")
```
See https://wummel.github.io/patool/ for detailed API documentation.
Test suite
-----------
Patool has [extensive unit tests](https://github.com/wummel/patool/tree/master/tests) to ensure the code quality.
The tests are run on each commit by a github runner.
Bash completion
----------------
Install the argcomplete python package with
`apt-get install python3-argcomplete`,
then run
`eval "$(register-python-argcomplete patool)"`.
After that typing `patool`, a `<SPACE>` and then `<TAB>`
lists available options and commands.
Raw data
{
"_id": null,
"home_page": "https://github.com/wummel/patool",
"name": "patool",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "archiver, archive, compression, commandline, manager",
"author": "Bastian Kleineidam",
"author_email": "bastian.kleineidam@web.de",
"download_url": "https://files.pythonhosted.org/packages/64/da/02cbec351bc37b65a799f69161bb748603d41293c0efde1fb7fe0cb40325/patool-3.1.0.tar.gz",
"platform": null,
"description": "Patool\n=======\n\nPatool is an archive file manager.\n\nVarious archive formats can be created, extracted, tested, listed,\nsearched, repacked and compared with patool. The advantage of patool is\nits simplicity in handling archive files without having to remember a\nmyriad of programs and options.\n\nThe archive format is determined by the file(1) program and as\na fallback by the archive file extension.\n\npatool supports 7z (.7z, .cb7), ACE (.ace, .cba), ADF (.adf), ALZIP (.alz),\nAPE (.ape), AR (.a), ARC (.arc), ARJ (.arj), BZIP2 (.bz2), BZIP3 (.bz3),\nCAB (.cab), CHM (.chm), COMPRESS (.Z), CPIO (.cpio), DEB (.deb), DMS (.dms),\nFLAC (.flac), GZIP (.gz), ISO (.iso), LRZIP (.lrz), LZH (.lha, .lzh),\nLZIP (.lz), LZMA (.lzma), LZOP (.lzo), RPM (.rpm), RAR (.rar, .cbr),\nRZIP (.rz), SHN (.shn), TAR (.tar, .cbt), UDF (.udf), XZ (.xz),\nZIP (.zip, .jar, .cbz), ZOO (.zoo) and ZSTANDARD (.zst) archive formats.\n\nIt relies on helper applications to handle those archive formats\n(for example `xz` for XZ (.xz) archives).\n\nThe archive formats TAR, ZIP, BZIP2 and GZIP are supported natively\nand do not require helper applications to be installed.\n\nExamples\n---------\n```\n# Extract several archives with different formats\npatool extract archive.zip otherarchive.rar\n\n# Extract archive with password\npatool extract --password somepassword archive.rar\n\n# Test archive integrity\npatool test --verbose dist.tar.gz\n\n# List files stored in an archive\npatool list package.deb\n\n# Create a new archive\npatool create --verbose /path/to/myfiles.zip file1.txt dir/\n\n# Create a new archive with password\npatool create --verbose --password somepassword /path/to/myfiles.zip file1.txt dir/\n\n# Show differences between two archives\npatool diff release1.0.tar.gz release2.0.zip\n\n# Search for text inside archives\npatool search \"def urlopen\" python-3.3.tar.gz\n\n# Repackage an archive in a different format\npatool repack linux-2.6.33.tar.gz linux-2.6.33.tar.bz2\n```\n\nWebsite\n--------\nSee https://wummel.github.io/patool/ for more info and downloads.\n\nAPI\n----\nYou can use patool functions from other Python applications.\nLog output will be on sys.stdout and sys.stderr.\nOn errors, `PatoolError` will be raised.\nNote that extra options or customization\nfor specific archive programs are not supported.\n\n```\nimport patoolib\npatoolib.extract_archive(\"archive.zip\", outdir=\"/tmp\")\npatoolib.test_archive(\"dist.tar.gz\", verbosity=1)\npatoolib.list_archive(\"package.deb\")\npatoolib.create_archive(\"/path/to/myfiles.zip\", (\"file1.txt\", \"dir/\"))\npatoolib.diff_archives(\"release1.0.tar.gz\", \"release2.0.zip\")\npatoolib.search_archive(\"def urlopen\", \"python3.3.tar.gz\")\npatoolib.repack_archive(\"linux-2.6.33.tar.gz\", \"linux-2.6.33.tar.bz2\")\npatoolib.is_archive(\"package.deb\")\n```\n\nSee https://wummel.github.io/patool/ for detailed API documentation.\n\nTest suite\n-----------\nPatool has [extensive unit tests](https://github.com/wummel/patool/tree/master/tests) to ensure the code quality.\nThe tests are run on each commit by a github runner.\n\n\nBash completion\n----------------\nInstall the argcomplete python package with\n`apt-get install python3-argcomplete`,\nthen run\n`eval \"$(register-python-argcomplete patool)\"`.\nAfter that typing `patool`, a `<SPACE>` and then `<TAB>`\nlists available options and commands.\n",
"bugtrack_url": null,
"license": "GPL-3",
"summary": "portable archive file manager",
"version": "3.1.0",
"project_urls": {
"Homepage": "https://github.com/wummel/patool",
"Source": "https://github.com/wummel/patool"
},
"split_keywords": [
"archiver",
" archive",
" compression",
" commandline",
" manager"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "a368c1a6597c901b1f750d2fcf562181c18c0d6c284908e4df57f1029d8b8887",
"md5": "78c474b0d22798fd05dbaea20b6d7c66",
"sha256": "401a918bdbf65434fd59c038bdb2c15ff7185675aedddb4494330c3e8e4fe80d"
},
"downloads": -1,
"filename": "patool-3.1.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "78c474b0d22798fd05dbaea20b6d7c66",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=3.10",
"size": 98433,
"upload_time": "2024-11-19T06:31:34",
"upload_time_iso_8601": "2024-11-19T06:31:34.359970Z",
"url": "https://files.pythonhosted.org/packages/a3/68/c1a6597c901b1f750d2fcf562181c18c0d6c284908e4df57f1029d8b8887/patool-3.1.0-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "64da02cbec351bc37b65a799f69161bb748603d41293c0efde1fb7fe0cb40325",
"md5": "32336263183f5080aeebeb094ecf5a1f",
"sha256": "417ed1ff7b9c979ce8a10114ed9bc280b08e3af3df3072e761303a3e00aaba04"
},
"downloads": -1,
"filename": "patool-3.1.0.tar.gz",
"has_sig": false,
"md5_digest": "32336263183f5080aeebeb094ecf5a1f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 2006989,
"upload_time": "2024-11-19T06:31:31",
"upload_time_iso_8601": "2024-11-19T06:31:31.521000Z",
"url": "https://files.pythonhosted.org/packages/64/da/02cbec351bc37b65a799f69161bb748603d41293c0efde1fb7fe0cb40325/patool-3.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-19 06:31:31",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "wummel",
"github_project": "patool",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "patool"
}