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.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_strategy
argument ofXZFile
/xz.open
to 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:RollingBlockReadStrategy
andKeepBlockReadStrategy
- 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
BinaryIO
instead ofIO[bytes]
- Specify the Python versions required in package metadata
- Test the
mode
attribute 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
filename
argument ofXZFile
is 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.typed
file in conformance with PEP 561
0.2.0 - 2021-10-23
- Write modes (
w
,x
,r+
,w+
,x+
) 🎉 - Allow to
seek
past the end of the fileobj - Calling
len
on a fileobj gives its length, andbool
tells if it is empty - Export useful constants and functions from
lzma
for 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
fileno
method
0.1.0 - 2021-05-13
- Initial public release 🎉