API¶
A platform independent file lock that supports the with-statement.
- filelock.__version__¶
version of the project as a string
- class filelock.AcquireReturnProxy(lock)[source]¶
Bases:
object
A context-aware object that will release the lock file when exiting.
- class filelock.AsyncAcquireReturnProxy(lock)[source]¶
Bases:
object
A context-aware object that will release the lock file when exiting.
- filelock.AsyncFileLock¶
alias of
AsyncUnixFileLock
- class filelock.AsyncSoftFileLock(lock_file, timeout=-1, mode=420, thread_local=False, *, blocking=True, is_singleton=False, loop=None, run_in_executor=True, executor=None)[source]¶
Bases:
SoftFileLock
,BaseAsyncFileLock
Simply watches the existence of the lock file.
- class filelock.AsyncUnixFileLock(lock_file, timeout=-1, mode=420, thread_local=False, *, blocking=True, is_singleton=False, loop=None, run_in_executor=True, executor=None)[source]¶
Bases:
UnixFileLock
,BaseAsyncFileLock
Uses the
fcntl.flock()
to hard lock the lock file on unix systems.
- class filelock.AsyncWindowsFileLock(lock_file, timeout=-1, mode=420, thread_local=False, *, blocking=True, is_singleton=False, loop=None, run_in_executor=True, executor=None)[source]¶
Bases:
WindowsFileLock
,BaseAsyncFileLock
Uses the
msvcrt.locking()
to hard lock the lock file on windows systems.
- class filelock.BaseAsyncFileLock(lock_file, timeout=-1, mode=420, thread_local=False, *, blocking=True, is_singleton=False, loop=None, run_in_executor=True, executor=None)[source]¶
Bases:
BaseFileLock
Base class for asynchronous file locks.
- property run_in_executor¶
::return: whether run in executor.
- property executor¶
::return: the executor.
- property loop¶
::return: the event loop.
- async acquire(timeout=None, poll_interval=0.05, *, blocking=None)[source]¶
Try to acquire the file lock.
- Parameters:
timeout (
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_interval (
float
) – interval of trying to acquire the lock fileblocking (
bool
|None
) – defaults to True. If False, function will return immediately if it cannot obtain a lock on the first attempt. Otherwise, this method will block until the timeout expires or the lock is acquired.
- 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()
- class filelock.BaseFileLock(lock_file, timeout=-1, mode=420, thread_local=True, *, blocking=True, is_singleton=False)[source]¶
Bases:
ContextDecorator
Abstract base class for a file lock object.
- is_thread_local()[source]¶
- Return type:
- Returns:
a flag indicating if this lock is thread local or not
- property is_singleton¶
- Returns:
a flag indicating if this lock is singleton or not
- property lock_file¶
- Returns:
path to the lock file
- property timeout¶
- Returns:
the default timeout value, in seconds
Added in version 2.0.0.
- property blocking¶
- Returns:
whether the locking is blocking or not
- property mode¶
- Returns:
the file permissions for the lockfile
- property is_locked¶
- 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.
- property lock_counter¶
- Returns:
The number of times this lock has been acquired (but not yet released).
- acquire(timeout=None, poll_interval=0.05, *, poll_intervall=None, blocking=None)[source]¶
Try to acquire the file lock.
- Parameters:
timeout (
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_interval (
float
) – interval of trying to acquire the lock filepoll_intervall (
float
|None
) – deprecated, kept for backwards compatibility, usepoll_interval
insteadblocking (
bool
|None
) – defaults to True. If False, function will return immediately if it cannot obtain a lock on the first attempt. Otherwise, this method will block until the timeout expires or the lock is acquired.
- 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.
- filelock.FileLock¶
Alias for the lock, which should be used for the current platform.
- class filelock.SoftFileLock(lock_file, timeout=-1, mode=420, thread_local=True, *, blocking=True, is_singleton=False)[source]¶
Bases:
BaseFileLock
Simply watches the existence of the lock file.
- exception filelock.Timeout(lock_file)[source]¶
Bases:
TimeoutError
Raised when the lock could not be acquired in timeout seconds.
- property lock_file¶
- Returns:
The path of the file lock.
- class filelock.UnixFileLock(lock_file, timeout=-1, mode=420, thread_local=True, *, blocking=True, is_singleton=False)[source]¶
Bases:
BaseFileLock
Uses the
fcntl.flock()
to hard lock the lock file on unix systems.
- class filelock.WindowsFileLock(lock_file, timeout=-1, mode=420, thread_local=True, *, blocking=True, is_singleton=False)[source]¶
Bases:
BaseFileLock
Uses the
msvcrt.locking()
function to hard lock the lock file on Windows systems.