Subject: CVS commit: pkgsrc/archivers/py-rarfile
From: Adam Ciarcinski
Date: 2022-10-14 13:48:48
Message id: 20221014114848.F18C2FA90@cvs.NetBSD.org

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.

Files:
RevisionActionfile
1.5modifypkgsrc/archivers/py-rarfile/Makefile
1.6modifypkgsrc/archivers/py-rarfile/distinfo