5 Version 2.2 (unreleased)
6 ------------------------
10 * Relaxed volume naming. Now it just calculates new volume name by finding number
11 in old one and increasing it, without any expectations what that number should be.
12 * Compressed size is per-volume, sum them together, so that user sees complete
13 compressed size for files split over several volumes.
14 * Couple timestamp parsing fixes.
18 * Use ``struct.Struct()`` to cache unpack formats.
19 * Support missing ``os.devnull``. (Python 2.3)
21 Version 2.1 (2010-07-31)
22 ------------------------
26 * Minimal implmentation for .extract(), .extractall(), .testrar().
27 They are simple shortcuts to ``unrar`` invocation.
28 * Accept RarInfo object where filename is expected.
29 * Include dumprar.py in .tgz. It can be used to visualize RAR structure
31 * Support for encrypted file headers.
35 * Don't read past ENDARC, there could be non-RAR data there.
36 * RAR 2.x: It does not write ENDARC, but our volume code expected it. Fix that.
37 * RAR 2.x: Support more than 200 old-style volumes.
41 * Load comment only when requested.
42 * Cleanup of internal config variables. They should have now final names.
43 * .open(): Add mode=r argument to match zipfile.
44 * Doc and comments cleanup, minimize duplication.
45 * Common wrappers for both compressed and uncompressed files,
46 now .open() also does CRC-checking.
48 Version 2.0 (2010-04-29)
49 ------------------------
53 * Python 3 support. Still works with 2.x.
54 * Parses extended time fields. (.mtime, .ctime, .atime)
55 * .open() method. This makes possible to process large
56 entries that do not fit into memory.
57 * Supports password-protected archives.
58 * Supports archive comments.
62 * Uses subprocess module to launch unrar.
63 * .filename is always Unicode string, .unicode_filename is now deprecated.
64 * .CRC is unsigned again, as python3 crc32() is unsigned.
66 Version 1.1 (2008-08-31)
67 ------------------------
71 * Replace os.tempnam() with tempfile.mkstemp(). (Jason Moiron)
72 * Fix infinite loop in _extract_hack on unexpected EOF
73 * RarInfo.CRC is now signed value to match crc32()
74 * RarFile.read() now checks file crc
79 * throw proper exceptions (subclasses of rarfile.Error)
80 * RarInfo has fields pre-initialized, so they appear in help()
81 * rename RarInfo.data to RarInfo.header_data
82 * dont use "print" when header parsing fails
83 * use try/finally to delete temp rar
85 Version 1.0 (2005-08-08)
86 ------------------------