Sourced from filelock's releases.
3.31.1
What's Changed
- ♻️ refactor(coverage): key exclusions on probed capability by
@gaborbernatin tox-dev/filelock#679- scope a lease's claim to the context that acquired it by
@dxbjavidin tox-dev/filelock#680Full Changelog: https://github.com/tox-dev/filelock/compare/3.31.0...3.31.1
Sourced from filelock's changelog.
########### Changelog ###########
.. towncrier-draft-entries:: Unreleased
.. towncrier release notes start
3.32.0 (2026-07-21)
SoftReadWriteLockcloses the directory handle it opens to scan for readers as soon as a scan stops early, rather than holding it until the generator is collected. :pr:685- Declare support for Python 3.15 and run the test suite against it and its free-threaded build, both currently in beta. :pr:
683- The source distribution ships the capability probes the tests import, and reading one no longer needs
coverageinstalled, so the suite runs from an unpacked sdist instead of failing on a missingcoverage_pragmas. :pr:685
3.31.2 (2026-07-21)
filelockimports again on runtimes whoseerrnoomitsENOTSUP, such as GraalPy, where importing the package raisedImportError. It probes the code instead, preferringENOTSUP, falling back toEOPNOTSUPPwhere that name is absent, and dropping toENOSYS/EXDEVwhere neither exists. Platforms definingENOTSUPkeep their behavior. :pr:681
3.31.1 (2026-07-20)
- A
SoftFileLeaseacquired on one thread keeps its claim when another thread fails to acquire the same lease object, so its heartbeat carries on refreshing the marker instead of being torn down and letting a peer take the live claim. :pr:680
3.31.0 (2026-07-18)
- Support Termux/Android, whose CPython ships without
os.linkand reportssys.platform == "android".import filelockand bothFileLockandSoftFileLocknow work there,StrictSoftFileLockreports its missing hard-link support only when acquired, and process liveness reads/procon Android instead of PID-only checks. :pr:678StrictSoftFileLockno longer lets two processes hold the lock at once under heavy contention. A holder now keeps its intent claim for the whole hold, so a contender whose directory scan races the holder's freshly linked claim can no longer miss it and win alongside it. A held lock now exposes both anintentand aheldclaim. :pr:678
3.30.3 (2026-07-17)
AsyncFileLockandAsyncSoftFileLockno longer raise a deadlockRuntimeErrorwhen a different asyncio task
... (truncated)