API¶
A platform independent file lock that supports the with-statement.
- filelock.__version__¶
version of the project as a string
- filelock.FileLock¶
alias of
filelock._unix.UnixFileLock
- class filelock.SoftFileLock(lock_file, timeout=- 1)¶
Bases:
filelock._api.BaseFileLock
Simply watches the existence of the lock file.
- exception filelock.Timeout(lock_file)¶
Bases:
TimeoutError
Raised when the lock could not be acquired in timeout seconds.
- lock_file¶
The path of the file lock.
- class filelock.UnixFileLock(lock_file, timeout=- 1)¶
Bases:
filelock._api.BaseFileLock
Uses the
fcntl.flock()
to hard lock the lock file on unix systems.
- class filelock.WindowsFileLock(lock_file, timeout=- 1)¶
Bases:
filelock._api.BaseFileLock
,abc.ABC
Uses the
msvcrt.locking()
function to hard lock the lock file on windows systems.
- class filelock.BaseFileLock(lock_file, timeout=- 1)¶
Bases:
abc.ABC
Abstract base class for a file lock object.
- property lock_file¶
- Return type
str
- Returns
path to the lock file
- property timeout¶
- Return type
float
- Returns
the default timeout value
New in version 2.0.0.
- property is_locked¶
- Return type
bool
- Returns
A boolean indicating if the lock file is holding the lock currently.
Changed in version 2.0.0: This was previously a method and is now a property.
- acquire(timeout=None, poll_intervall=0.05)¶
Try to acquire the file lock.
- Parameters
timeout (
typing.Optional
[float
,None
]) – maximum wait time for acquiring the lock,None
means use the defaulttimeout
is and iftimeout < 0
, there is no timeout and this method will block until the lock could be acquiredpoll_intervall (
float
) – interval of trying to acquire the lock file
- Raises
Timeout – if fails to acquire lock within the timeout period
- Return type
- Returns
a context object that will unlock the file when the context is exited
# You can use this method in the context manager (recommended) with lock.acquire(): pass # Or use an equivalent try-finally construct: lock.acquire() try: pass finally: lock.release()
Changed in version 2.0.0: This method returns now a proxy object instead of self, so that it can be used in a with statement without side effects.
- release(force=False)¶
Releases the file lock. Please note, that the lock is only completely released, if the lock counter is 0. Also note, that the lock file itself is not automatically deleted.
- Parameters
force (
bool
) – If true, the lock counter is ignored and the lock is released in every case/- Return type
None
- class filelock.AcquireReturnProxy(lock)¶
Bases:
object
A context aware object that will release the lock file when exiting.