ezlock

Super simple file based locking


Keywords
locking, process, simple
License
MIT
Install
pip install ezlock==0.1.3

Documentation

ezlock

Super simple file-based locking.

pip install ezlock

For a 1 time process:

# first.py
from ezlock import Lock
import time

with Lock():
    print("I got the lock and I'm keeping it for 20s")
    time.sleep(20)

and

# second.py
...
with Lock():
    print("Trying to get a lock too")

running

>>> python3 first.py &
I got the lock and I'm keeping it for 20s
>>> echo "before 20s"
before 20s
>>> python3 second.py
locking.LockError: Attempted to acquire on already locked lock!

Lock files have an owner. A lock can check if it owns a file with lock.mine. Locks will only release a lock that's not theirs if it's forced i.e. lock.release(force=True).

You can wait for a lock to be released with lock.wait()