2024-01-12 06:34:59 by Adam Ciarcinski | Files touched by this commit (3) | |
Log message:
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
|
2022-10-14 13:48:48 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
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.
|
2022-01-04 21:55:40 by Thomas Klausner | Files touched by this commit (1595) |
Log message:
*: bump PKGREVISION for egg.mk users
They now have a tool dependency on py-setuptools instead of a DEPENDS
|
2021-10-26 11:57:20 by Nia Alarie | Files touched by this commit (140) |
Log message:
archivers: Replace RMD160 checksums with BLAKE2s checksums
All checksums have been double-checked against existing RMD160 and SHA512
hashes.
|
2021-10-07 15:06:15 by Nia Alarie | Files touched by this commit (140) |
Log message:
archivers: Remove SHA1 distfiles hashes
|
2020-07-29 14:10:46 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
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.
|
2019-09-16 10:56:18 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
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.
|
2017-04-14 16:01:02 by Leonardo Taccari | Files touched by this commit (4) |
Log message:
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.
|