NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #43 most downloaded on PyPI
A platform independent file lock.
Last release today
28 Sep 2026
Release timing varies
gaps range from 8 days to 2 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
2 versions withdrawn
withdrawn after publishing
12 years old
124 releases · first in 2014
<!-- Release notes generated using configuration in .github/release.yml at main -->
<!-- Release notes generated using configuration in .github/release.yml at main -->
/tmp by @kota-iizuka in https://github.com/tox-dev/filelock/pull/317Full Changelog: https://github.com/tox-dev/filelock/compare/3.13.1...3.13.2
<!-- Release notes generated using configuration in .github/release.yml at main -->
One column per quarter.
<!-- Release notes generated using configuration in .github/release.yml at main -->
Full Changelog: https://github.com/tox-dev/filelock/compare/3.13.0...3.13.1
Allow users to subclass ~filelock.FileLock with custom keyword arguments 284.
<!-- Release notes generated using configuration in .github/release.yml at 3.13.0 -->
<!-- Release notes generated using configuration in .github/release.yml at 3.13.0 -->
Full Changelog: https://github.com/tox-dev/filelock/compare/3.12.4...3.13.0
Support reentrant locking on lock file path via optional is_singleton instance 283.
<!-- Release notes generated using configuration in .github/release.yml at main -->
<!-- Release notes generated using configuration in .github/release.yml at main -->
Full Changelog: https://github.com/tox-dev/filelock/compare/3.12.3...3.12.4
<!-- Release notes generated using configuration in .github/release.yml at main -->
<!-- Release notes generated using configuration in .github/release.yml at main -->
Full Changelog: https://github.com/tox-dev/filelock/compare/3.12.2...3.12.3
Add tox.ini to sdist 265.
Create parent directories if necessary 254.
Restore 'if TYPE_CHECKING' syntax for FileLock definition by @dlax in https://github.com/tox-dev/py-filelock/pull/245
Full Changelog: https://github.com/tox-dev/py-filelock/compare/3.12.1...3.12.2
Restore if TYPE_CHECKING syntax for ~filelock.FileLock definition 245.
Add trusted-publish by @gaborbernat in https://github.com/tox-dev/py-filelock/pull/236
Full Changelog: https://github.com/tox-dev/py-filelock/compare/3.12.0...3.12.1
Fix: #225 :Get rid of warning about inability to link to _thread._local. by @csm10495 in https://github.com/tox-dev/py-filelock/pull/226
Full Changelog: https://github.com/tox-dev/py-filelock/compare/3.11.0...3.12.0
Make the thread local behavior something the caller can enable/disable via a flag during the lock creation, it's on by default.
Better error handling on Windows.
Bump pypa/gh-action-pypi-publish from 1.8.3 to 1.8.5 by @dependabot in https://github.com/tox-dev/py-filelock/pull/218
Full Changelog: https://github.com/tox-dev/py-filelock/compare/3.10.7...3.11.0
use fchmod by @jfennick in https://github.com/tox-dev/py-filelock/pull/214
Full Changelog: https://github.com/tox-dev/py-filelock/compare/3.10.6...3.10.7
Use os.fchmod instead of os.chmod to work around bug in PyPy via Anaconda.
Bugfix/147 by @jahrules in https://github.com/tox-dev/py-filelock/pull/213
Full Changelog: https://github.com/tox-dev/py-filelock/compare/3.10.5...3.10.6
Enhance the robustness of the try/catch block in _soft.py. by jahrules.
proposed fix for issue #67 by @jahrules in https://github.com/tox-dev/py-filelock/pull/212
Full Changelog: https://github.com/tox-dev/py-filelock/compare/3.10.4...3.10.5
Add explicit error check as certain UNIX filesystems do not support flock. by jahrules.
updated os.open to preserve mode by @jahrules in https://github.com/tox-dev/py-filelock/pull/211
Full Changelog: https://github.com/tox-dev/py-filelock/compare/3.10.3...3.10.4
Update os.open to preserve mode= for certain edge cases. by jahrules.
Bump pypa/gh-action-pypi-publish from 1.8.1 to 1.8.3 by @dependabot in https://github.com/tox-dev/py-filelock/pull/207
Full Changelog: https://github.com/tox-dev/py-filelock/compare/3.10.2...3.10.3
changed from os.umask to os.chmod by @jahrules in https://github.com/tox-dev/py-filelock/pull/206
Full Changelog: https://github.com/tox-dev/py-filelock/compare/3.10.1...3.10.2
Bug fix for using filelock with threaded programs causing undesired file permissions - by jahrules.
Bump pypa/gh-action-pypi-publish from 1.7.1 to 1.8.1 by @dependabot in https://github.com/tox-dev/py-filelock/pull/200
Full Changelog: https://github.com/tox-dev/py-filelock/compare/3.10.0...3.10.1
added multiuser support and associated tests by @jahrules in https://github.com/tox-dev/py-filelock/pull/192
Full Changelog: https://github.com/tox-dev/py-filelock/compare/3.9.1...3.10.0
[pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/tox-dev/py-filelock/pull/188
Full Changelog: https://github.com/tox-dev/py-filelock/compare/3.9.0...3.9.1
Use time.perf_counter instead of time.monotonic for calculating timeouts.
Move to hatchling build backend by @gaborbernat in https://github.com/tox-dev/py-filelock/pull/185
Full Changelog: https://github.com/tox-dev/py-filelock/compare/3.8.2...3.9.0
Bump pypa/gh-action-pypi-publish from 1.5.1 to 1.6.1 by @dependabot in https://github.com/tox-dev/py-filelock/pull/178
Full Changelog: https://github.com/tox-dev/py-filelock/compare/3.8.1...3.8.2
[pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/tox-dev/py-filelock/pull/166
Full Changelog: https://github.com/tox-dev/py-filelock/compare/3.8.0...3.8.1
[pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/tox-dev/py-filelock/pull/149
Full Changelog: https://github.com/tox-dev/py-filelock/compare/3.7.1...3.8.0
Bump project dependencies
Add timeout unit to docstrings
Support 3.11
Make the readme documentation point to the index page
Make the readme documentation point to the index page
Add ability to return immediately when a lock cannot be obtained
Add ability to return immediately when a lock cannot be obtained
Fix pylint warning "Abstract class ~filelock.WindowsFileLock with abstract methods instantiated" 135 - by vonschultz
Fix pylint warning "Abstract class ~filelock.WindowsFileLock with abstract methods instantiated" 135 - by vonschultz
Fix pylint warning "Abstract class ~filelock.UnixFileLock with abstract methods instantiated" 135 - by vonschultz
Use time.monotonic instead of time.time for calculating timeouts.
Use time.monotonic instead of time.time for calculating timeouts.
Enable use as context decorator
Enable use as context decorator
- Drop support for python 3.6 *
Drop support for python 3.6
Add stacklevel to deprecation warnings for argument name change
Add stacklevel to deprecation warnings for argument name change
Add correct spelling of poll interval parameter for ~filelock.BaseFileLock.acquire method, raise deprecation warning when using the misspelled form 11…
Add correct spelling of poll interval parameter for ~filelock.BaseFileLock.acquire method, raise deprecation warning when using the misspelled form 119 - by XuehaiPan.
Accept path types (like pathlib.Path and pathlib.PurePath) in the constructor for ~filelock.FileLock objects.
Accept path types (like pathlib.Path and pathlib.PurePath) in the constructor for ~filelock.FileLock objects.
Add changelog to the documentation 108 - by gaborbernat
Add changelog to the documentation 108 - by gaborbernat
Leave the log level of the filelock logger as not set (previously was set to warning) 108 - by gaborbernat
Drop python 2.7 and 3.5 support, add type hints 100 - by gaborbernat
Drop python 2.7 and 3.5 support, add type hints 100 - by gaborbernat
Document asyncio support - by gaborbernat
fix typo 98 - by jugmac00
Changed logger name from filelock._api to filelock 97 - by hkennyv
Improve documentation
Changed logger name from filelock._api to filelock 97 - by hkennyv
1. #96 - Raise when trying to acquire in R/O or missing folder 2. #95 - Move log from info to debug
Raise when trying to acquire in R/O or missing folder 96 - by gaborbernat
Move lock acquire/release log from INFO to DEBUG 95 - by gaborbernat
Fix spelling and remove ignored flake8 checks - by gaborbernat
Split main module 94 - by gaborbernat
Move test suite to pytest 93 - by gaborbernat
Update links for new home at tox-dev 88 - by hugovk
Update links for new home at tox-dev 88 - by hugovk
Fixed link to LICENSE file 63 - by sharkwouter
Adopt tox-dev organization best practices 87 - by gaborbernat
Ownership moved from benediktschmitt to the tox-dev organization (new primary maintainer gaborbernat)
*fixed* setuptools and twine/warehouse error by making the license only 1 line long
fixed setuptools and twine/warehouse error by making the license only 1 line long
update version for pypi upload
fixed python2 setup error
added test.py module to MANIFEST and made tests available in the setup commands 48
fixed documentation thanks to AnkurTank 49
Update Trove classifiers for PyPI
test: Skip test_del on PyPy since it hangs
- Fix README rendering on PyPI *
Fix README rendering on PyPI
*updated* docs config for older sphinx compatibility
38 from cottsay/shebang
updated docs config for older sphinx compatibility
removed misleading shebang from module
- *updated* use setuptools *
updated use setuptools
- *clean up* - Fixed unit test for Python 2.7 - Added Travis banner - Added Travis CI support *
clean up
Fixed unit test for Python 2.7
Added Travis banner
Added Travis CI support
- *updated* README *
updated README
- *updated* readme *
updated readme
Nothing published for this version
*updated* major version number due to 29 and 27
updated major version number due to 29 and 27
fixed use proper Python3 reraise method
Attempting to clean up lock file on Unix after ~filelock.BaseFileLock.release
*changed* The logger is now acquired when first needed. 24
changed The logger is now acquired when first needed. 24
- correct spelling mistake
correct spelling mistake
*added* official support for python 2 20
added official support for python 2 20
- *updated* readme *
updated readme
*updated* change order of the examples (16)
updated readme 19
added example 16
updated readthedocs url
updated change order of the examples (16)
- Added logging - Removed unused imports *
Added logging
Removed unused imports
*fixed* 14 (moved license and readme file to MANIFEST)
fixed 14 (moved license and readme file to MANIFEST)
*changed* unlocking sequence to fix transient test failures
changed unlocking sequence to fix transient test failures
changed threads in tests so exceptions surface
added test lock file cleanup
Don't remove file after releasing lock
Don't remove file after releasing lock
updated docs
*added* the new classes to __all__
added the new classes to __all__
*fixed* 2 which has been introduced with the lock counter
fixed 5
updated test cases
updated documentation
fixed 2 which has been introduced with the lock counter
*added* default timeout (fixes 2)
added default timeout (fixes 2)
*added* new test case, *fixed* unhandled exception
added new test case, fixed unhandled exception
*fixed* a timeout could still be thrown if the lock is already acquired
fixed a timeout could still be thrown if the lock is already acquired
- *fixed* 1 *
fixed 1
Your coding agent can read these notes before it upgrades. Set up the MCP server →