lockfile 0.1 - platform-independent advisory locks for Python
Python's distribution supports a few different ways to lock files. None are platform-independent though. A number of implementations of file locks are out there, but as an exploration of the possibilities I wrote the lockfile module. It offers these features: * A platform-independent API * Three classes implementing file locks - LinkFileLock - relies on atomic nature of the link(2) system call. - MkdirFileLock - relies on atomic nature of the mkdir(2) systemm call. - SQLiteFileLock - provides locks through a SQLite database. * Locking is done on a per-thread basis by default, though locking can be done on a per-process basis instead. * Context manager support. The module contains documentation in ReST format and a decent set of test cases written using doctest. Almost all the test cases are attached to the _FileLock base class, so other implementations (e.g., using different relational databases or object databases like ZODB) can be sure they satisfy the same constraints. The lockfile module is available from PyPI: http://pypi.python.org/pypi/lockfile/ I welcome feedback from anyone who gives it a whirl. The code is stored in a Mercurial repository on my laptop, so subject to occasional access problems when I'm on the train others are welcome to have access to the source code. If that's of interest to you, drop me a note. -- Skip Montanaro - skip@pobox.com - http://www.webfast.com/~skip/
participants (1)
-
skip@pobox.com