Up to [cvs.NetBSD.org] / pkgsrc / archivers / py-rarfile
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
Fix PLIST after py-setuptools update; bump depends and revision
py-*: remove unused tool dependency py-setuptools includes the py-wheel functionality nowadays
py-rarfile: updated to 4.2 Version 4.2 (2024-04-03) Features: * Support ``unrar-free`` >= 0.2.0. * Add :meth:`RarFile.is_solid` to check if archive uses solid compression. Fixes: * Support old multi-volume archives better where ENDARC does not contain NEXTVOL. Cleanups: * ci: Drop Python 3.7, add 3.12 * ci: upgrade actions
py-rarfile: updated to 4.1 Version 4.1 (2023-09-17) Features: * Support 7zip/p7zip as decompression backend. * RAR5: check password before trying to read file (chigusa) New APIs: * Make get_rar_version a public function (Safihre) * New option: ``part_only`` for :class:`RarFile`, to read only single file and allow it to be middle-part of multi-volume archive. * Add :meth:`RarFile.printdir`, use it in dumprar. Needed to examine FILE_COPY or HARD_LINK entries that do not contain data. Fixes: * Use OS separator to access filename. Should fix subdirectory entry access on Windows. * DirectReader: check seek position on each read. Fixes read reading from multiple entries in parallel on RarFile backed by file object. * DirectReader: properly disable CRC check when seeking. * Reset _hdrenc_main before processing a new volume. Fixes CRC checks on multi-volume reads. * Adapt to Python 3.10 argparse (MeggyCal) * SFX: Handle volume numbering special cases better. * nsdatetime: support pypy internal use * Throw error if backend does not support passwords. Cleanups: * ci: Use proper unrar on Windows. MingW one tolaretes paths with ``/`` better than upstream build. * ci: Add Python 3.10 to the testing (Christian Clauss) * Avoid isascii, not in 3.6
py-rarfile: updated to 4.0 rarfile v4.0 Main goals are: Increased zipfile-compatibility, thus also achieving smaller difference between RAR3 and RAR5 archives. Implement RarFile.extract on top of RarFile.open instead using unrar x directly, thus making maintenance of alternative backends more manageable. Negative aspect of that is that there are features that internal extract code does not support - hard links, NTFS streams and junctions. Breaking changes: Directory names will have "/" appended. RarFile.extract operates only on single entry, so when used on directory it will create directory but not extract files under it. RarFile.extract/RarFile.extractall/RarFile.testrar will not launch special unrar command line, instead they are implemented on top of RarFile.open. Keyword args in top-level APIs were renamed to match zipfile: RarFile(rarfile) -> RarFile(file) RarFile.setpassword(password) -> .setpassword(pwd) RarFile.getinfo(fname) -> .getinfo(name) RarFile.open(fname, mode, psw) -> .open(name, mode, pwd) RarFile.read(fname, psw) -> .read(name, pwd) PATH_SEP cannot be changed from "/". New features: RarFile.extract will return final sanitized filename for target file. RarInfo.is_dir is now preferred spelling of isdir(). Old method kept as alias. New RarInfo.is_file and RarInfo.is_symlink methods. Only one of ~RarInfo.is_file, ~RarInfo.is_dir or ~RarInfo.is_symlink can be True. RarFile.printdir has file argument for output. RarFile.__iter__ loops over RarInfo entries. RAR3: throw NeedFirstVolume exception with current volume number, like RAR5 does. Nanosecond timestamp support. Visible as nsdatetime instance. Minimal CLI when run as script: python3 -m rarfile Skip old file versions in versioned archive. Cleanups: Use PBKDF2 implementation from hashlib. Improve test coverage.
*: bump PKGREVISION for egg.mk users They now have a tool dependency on py-setuptools instead of a DEPENDS
py-rarfile: updated to 3.3 rarfile v3.3 Fixes: Add the .sfx test files to MANIFEST.in for inclusion in pypi tarball. Add all files in git to tarball. rarfile v3.2 New features: Support unar as decompression backend. It has much better support for RAR features than bsdtar. Support SFX archives - archive header is searched in first 2MB of the file. Add HACK_TMP_DIR option, to force temp files into specific directory. Fixes: Always use "/" for path separator in command-line, gives better results on Windows. Cleanups: Drop module-level options from docs, they create confusion. Drop support for Python 2 and 3.5 and earlier. Python 2 is dead and requiring Python 3.6 gives blake2s, stdlib that supports pathlib, and ordered dict without compat hacks. Replace PyCrypto with PyCryptodome in tests. Use Github Actions for CI.
py-rarfile: updated to 3.1 Version 3.1: This will be last version with support for Python 2.x New feature: Accept pathlib objects as filenames. Accept bytes filenames in Python 3 Fixes: Use bug-compatible SHA1 for longer passwords (> 28 chars) in RAR3 encrypted headers. Return true/false from _check_unrar_tool Include all test files in archive Include volume number in NeedFirstVolume exception if available (rar5). Cleanups: Convert tests to pytest.
Import py-rarfile-3.0 as archivers/py-rarfile This is Python module for RAR archive reading. The interface is made as zipfile like as possible. Licensed under ISC license. Features: * Supports both RAR3 and RAR5 format archives. * Supports multi volume archives. * Supports Unicode filenames. * Supports password-protected archives. * Supports archive and file comments. * Archive parsing and non-compressed files are handled in pure Python code. * Compressed files are extracted by executing external tool: either unrar from RARLAB or bsdtar from libarchive. * Works with both Python 2.7 and 3.x.