Skip to content

Latest commit

 

History

History
584 lines (385 loc) · 11.4 KB

Changelog.rst

File metadata and controls

584 lines (385 loc) · 11.4 KB

Py7zr ChangeLog

All notable changes to this project will be documented in this file.

Fixed

  • Fix is_solid() method to return correct result.(#72)

Added

  • Add benchmark test.(#90)

Fixed

  • Fix readme: extraction mode code was wrong. for extraction 'r' is correct.

Fixed

  • Fix race condition for changing current working directory of caller, which cause failures in multithreading.(#80,#82)
  • Same as v0.5.1

Added

  • Support filtering a target of extracted files from archive (#64)

Fixed

  • Fixed extraction of 7zip file with BZip2 algorithm.(#66)
  • same as v0.5rc3.

Fixed

  • Fix symbolic link extraction with relative path target directory.

Added

  • Support COPY method for decompression.

Changed

  • When archive has an archive which is same name, then write with postfix '_0'.

Added

  • Add release note automation workflow with Github actions.

Fixed

  • Fix extraction of archive which has zero size files and directories(#54).
  • Revert zero size file logic(#47).

Fixed

  • Revert zero size file logic which break extraction by 7zip.

Fixed

  • Support for making archive with zero size files(#47).
  • Produced broken archive when target has many directorires(#48).
  • Reduce test warnings, fix annotations.
  • Fix coverage error on test.

Fixed

  • Support for making archive with symbolic links.

Changed

  • Update documents.

Fixed

  • Fix write logics (#42)
  • Fix read FilesInfo block.

Support making a 7zip archive.

Added

  • Support for compression and archiving.
  • Support encoded(compressed) header and set as default.(#39)
  • SevenZipFile: accept pathlib.Path as a file argument.
  • Unit test: read and write UTF-16LE string for filename.
  • Support for shutil.register_archive_format() and shutil.make_archive() by exposing pack_7zarchive()
  • Support custom filters for compression.

Fixed

  • Skip rare case when directory already exist, that can happen multiple process working in same working directory.
  • Write: Produce a good archive file for multiple target files.
  • SignatureHeader function: write nextheaderofs and nextheadersize as real_uint64.
  • docs: description of start header structure.

Removed

Changed

  • Test: Use tmp_path fixture which is pytest default one.
  • Move setuptools configurations in setup.py into setup.cfg.

Added

  • Support for pypy3 (pypy3.5-7.0) and later(pypy3.6-7.1 or later).
  • unit test for NullHandler, BufferHandler, FileHandler.
  • Update document to add 7zformat descriptions.

Changed

Fixed

  • Update README to indicate supported python version as 3.5 and later, pypy3 7.1 and later.

Changed

  • Use seek&truncate for padding trailer if needed.

Added

  • Docs: class diagram, design note, 7z formats and presentations.
  • Test for a target includes padding file.

Changed

  • Test file package naming.

Fixed

  • Fix infinite loop when archive file need padding data for extraction.

Added

  • Add test for zerofile with multi-foler archive.

Fixed

  • Fix zerofile extraction error with multithread mode(#24, thanks @Arten013)

Added

  • typing hints
  • CI test with mypy
  • Unit test: SignatureHeader.write() method.
  • Unit test: unknown mode for SevenZipFile constructor.
  • Unit test: SevenZipFile.write() method.

Changed

  • Conditional priority not likely to be external in header.
  • Refactoring read_uint64().

Fixed

  • SignatureHeader.write(): fix exception to write 7zip version.

Added

  • CLI i subcommand: show codec information.
  • Decompression performance test as regression test.
  • Add more unit test for helper functions.

Changed

  • List subcommand now do not show compressed file size in solid compression. This is as same behavior as p7zip command.
  • Merge io.py into archiveinfo.py
  • Drop internal intermediate queue, which is not used.

Fixed

  • Always overwrite when archive has multiple file with same name.

Added

  • Add some code related to support write feature(wip).
  • Static check for import order in python sources and MANIFEST.in

Changed

  • Concurrent decompression with threading when an archive is in multi folder compression.
  • Pytest configurations are set in tox.ini

Fixed

  • Package now has test code and data.

Fixed

  • Detect race condition on os.mkdir

Fixed

  • Wrong file size when lzma+bcj compression.

Fixed

  • Suppress warning: not dequeue from queue length 0

Changed

  • When a directory exist for target, do not raise error, and when out of it raise exception
  • Refactoring FileArchivesList and FileArchive classes.

Changed

  • When a directory exist for target, do not raise error, and when out of it raise exception

Changed

  • Refactoring CLI with cli package and class.

Fixed

  • Archive with zero size file cause exception with file not found error(#4).

Removed

  • Drop unused code chunks.
  • Drop Digests class and related unit test.

Added

  • Add write(), close() and testzip() dummy methods which raises NotImplementedError.
  • Add more unit tests for write functions.

Fixed

  • Fix Sphinx error in documentation.
  • SevenZipFile: Check mode before touch file.
  • Fix write_boolean() when array size is over 8.
  • Fix write_uint64() and read_uint64().

Added

  • Introduce compression package.
  • Introduce SevenZipCompressor class.
  • Add write() method for each header class.
  • Add tests for write methods.
  • Add method for registering shutil.

Changed

  • Each header classes has __slots__ definitions for speed and memory optimization.
  • Rename to 'io' package from 'archiveio'
  • Each header classes has classmethod 'retrieve' and constructor does not reading a archive file anymore.
  • Change to internalize _read() method for each header classes.
  • get_decompressor() method now become SevenZipDecompressor class.
  • Each header classes initializes members to None in constructor.
  • Method definitions map become an internal member of SevenZipDecompressor or SevenZipCompressor class.
  • Add test package compress

Fixed

  • Fix ArchiveProperties read function.

Added

  • Test for CLI.

Changed

  • Improve main function.
  • Improve tests, checks outputs with sha256

Added

  • CI test on AppVeyor.

Changed

  • Worker class refactoring.

Fixed

  • Fix test cases: bugzilla_16 and github_14.
  • Test: set timezone to UTC on Unix and do nothing on Windows.

Fixed

  • Fix too many file descriptors opened error.

Changed

  • Test: check sha256 for extracted files

Fixed

  • Fix decompressiong archive with LZMA2 and BCJ method
  • Fix decompressing multi block archive
  • Fix file mode on unix/linux.

Added

  • Set file modes for extracted files.
  • More unit test.

Changed

  • Travis-CI test on python 3.7.

Fixed

  • Fix to set extracted files timestamp as same as archived.

Added

  • PyPi package index.

Fixed

  • setup: set universal = 0 because only python 3 is supported.

Changed

  • refactoring all the code.