All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.6.0 - 2025-10-18
- End of Python 3.7, 3.8, and 3.9 support
- Fix test xz files generation for xz-utils 5.5.1+
- Update license metadata as per PEP 639
- Freeze dev dependencies versions
- Use
pyproject.tomland modern build system - Update dev dependencies
- Update GitHub actions dependencies
- Add tests for CPython 3.12, 3.13 and 3.14; and PyPy 3.10 and 3.11
- Use CPython 3.14 for misc. tests
- Improve tox & CI pipelines
- Use ruff as linter and formatter
0.5.0 - 2023-02-27
- End of Python 3.6 support
- Necessary code changes following dev dependency update: black, pylint, pytest
- Refactor a descriptor following PEP 487
- Add tests for CPython 3.11 and PyPy 3.9
- Use CPython 3.11 for misc. tests
- Update GitHub actions dependencies
- Import typing modules impacted by PEP 585 based on Python version
0.4.0 - 2022-01-09
- Advanced users may use the new
block_read_strategyargument ofXZFile/xz.opento customize the strategy for freeing block readers, and implement a different tradeoff between memory consumption and read speed when alternating reads between several blocks; the following strategies are provided:RollingBlockReadStrategyandKeepBlockReadStrategy
- Free memory after a block is fully read
- Free memory of LZMA decompressors when many blocks are partially read; this is a tradeoff defaulting to keeping the last 8 LZMA decompressors used
- Typing: use
BinaryIOinstead ofIO[bytes]
- Specify the Python versions required in package metadata
- Test the
modeattribute of objects returned byxz.open/XZFile - Minor improvements in some docstrings
0.3.1 - 2021-12-26
- Add tests for CPython 3.10 and PyPy 3.8
- Use CPython 3.10 for misc. tests
- Clarify which Python versions are supported in readme
- Fix some linting issues found by latest versions of mypy/pylint
0.3.0 - 2021-11-07
- The
filenameargument ofXZFileis now mandatory; this change should have very limited impact as not providing it makes no sense and would have raised aTypeError, plus it was already mandatory onxz.open
- Type hints
- Type validation with mypy
- Distribute
py.typedfile in conformance with PEP 561
0.2.0 - 2021-10-23
- Write modes (
w,x,r+,w+,x+) 🎉 - Allow to
seekpast the end of the fileobj - Calling
lenon a fileobj gives its length, andbooltells if it is empty - Export useful constants and functions from
lzmafor easy access: checks, filters, etc.
- Test that no warnings are generated
- Change development status to Alpha
0.1.2 - 2021-09-19
- Add
__version__attribute to module, despite PEP 396 being rejected
0.1.1 - 2021-05-14
- Implementation of the
filenomethod
0.1.0 - 2021-05-13
- Initial public release 🎉