All notable changes to this project will be documented in this file.
- Fix is_solid() method to return correct result.(#72)
- Add benchmark test.(#90)
- Fix readme: extraction mode code was wrong. for extraction 'r' is correct.
- Fix race condition for changing current working directory of caller, which cause failures in multithreading.(#80,#82)
- Same as v0.5.1
- Support filtering a target of extracted files from archive (#64)
- Fixed extraction of 7zip file with BZip2 algorithm.(#66)
- same as v0.5rc3.
- Fix symbolic link extraction with relative path target directory.
- Support COPY method for decompression.
- When archive has an archive which is same name, then write with postfix '_0'.
- Add release note automation workflow with Github actions.
- Fix extraction of archive which has zero size files and directories(#54).
- Revert zero size file logic(#47).
- Revert zero size file logic which break extraction by 7zip.
- 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.
- Support for making archive with symbolic links.
- Update documents.
- Fix write logics (#42)
- Fix read FilesInfo block.
Support making a 7zip archive.
- 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.
- 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.
- Drop py7zr.properties.FileAttributes; please use stat.FILE_ATTRIBUTES*
- Test: Use tmp_path fixture which is pytest default one.
- Move setuptools configurations in setup.py into setup.cfg.
- 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.
- NullHandler, BufferHandler, FileHandler: open() now takes mode argument.
- Upper limit of max_length of decompress() call is now io.DEFAULT_BUFFER_SIZE.
- Drop padding logic introduced in v0.3.5 that may be cuased by python core bug, when max_length > io.DEFAULT_BUFFER_SIZE.
- Remove print functions from API and moves CLI
- API should not output anything other than error message.
* Introduce FileInfo class to represent file attributes inside archive.
- Introduce ArchiveInfo class to represent archive attributes.
- provide archiveinfo() method to provide ArchiveInfo object.
- now list() method returns List[FileInfo]
- Every print things moves to Cli class.
- API should not output anything other than error message.
* Introduce FileInfo class to represent file attributes inside archive.
- Update tests according to API change.
- Update documents to refrect API changes.
- Update README to indicate supported python version as 3.5 and later, pypy3 7.1 and later.
- Use seek&truncate for padding trailer if needed.
- Docs: class diagram, design note, 7z formats and presentations.
- Test for a target includes padding file.
- Test file package naming.
- Fix infinite loop when archive file need padding data for extraction.
- Add test for zerofile with multi-foler archive.
- Fix zerofile extraction error with multithread mode(#24, thanks @Arten013)
- typing hints
- CI test with mypy
- Unit test: SignatureHeader.write() method.
- Unit test: unknown mode for SevenZipFile constructor.
- Unit test: SevenZipFile.write() method.
- Conditional priority not likely to be external in header.
- Refactoring read_uint64().
- SignatureHeader.write(): fix exception to write 7zip version.
- CLI i subcommand: show codec information.
- Decompression performance test as regression test.
- Add more unit test for helper functions.
- 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.
- Always overwrite when archive has multiple file with same name.
- Add some code related to support write feature(wip).
- Static check for import order in python sources and MANIFEST.in
- Concurrent decompression with threading when an archive is in multi folder compression.
- Pytest configurations are set in tox.ini
- Package now has test code and data.
- Detect race condition on os.mkdir
- Wrong file size when lzma+bcj compression.
- Suppress warning: not dequeue from queue length 0
- When a directory exist for target, do not raise error, and when out of it raise exception
- Refactoring FileArchivesList and FileArchive classes.
- When a directory exist for target, do not raise error, and when out of it raise exception
- Refactoring CLI with cli package and class.
- Archive with zero size file cause exception with file not found error(#4).
- Drop unused code chunks.
- Drop Digests class and related unit test.
- Add write(), close() and testzip() dummy methods which raises NotImplementedError.
- Add more unit tests for write functions.
- 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().
- Introduce compression package.
- Introduce SevenZipCompressor class.
- Add write() method for each header class.
- Add tests for write methods.
- Add method for registering shutil.
- 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
- Fix ArchiveProperties read function.
- Test for CLI.
- Improve main function.
- Improve tests, checks outputs with sha256
- CI test on AppVeyor.
- Worker class refactoring.
- Fix test cases: bugzilla_16 and github_14.
- Test: set timezone to UTC on Unix and do nothing on Windows.
- Fix too many file descriptors opened error.
- Test: check sha256 for extracted files
- Fix decompressiong archive with LZMA2 and BCJ method
- Fix decompressing multi block archive
- Fix file mode on unix/linux.
- Set file modes for extracted files.
- More unit test.
- Travis-CI test on python 3.7.
- Fix to set extracted files timestamp as same as archived.
- PyPi package index.
- setup: set universal = 0 because only python 3 is supported.
- refactoring all the code.