1PY-FILELOCK(1) py-filelock PY-FILELOCK(1)
2
3
4
6 py-filelock - py-filelock Documentation
7
8 A platform independent file lock that supports the with-statement.
9
10 class filelock.BaseFileLock(lock_file, timeout=- 1)
11 Bases: object
12
13 Implements the base class of a file lock.
14
15 acquire(timeout=None, poll_intervall=0.05)
16 Acquires the file lock or fails with a Timeout error.
17
18 # You can use this method in the context manager (recommended)
19 with lock.acquire():
20 pass
21
22 # Or use an equivalent try-finally construct:
23 lock.acquire()
24 try:
25 pass
26 finally:
27 lock.release()
28
29 Parameters
30
31 · timeout (float) -- The maximum time waited for
32 the file lock. If timeout < 0, there is no
33 timeout and this method will block until the
34 lock could be acquired. If timeout is None, the
35 default timeout is used.
36
37 · poll_intervall (float) -- We check once in
38 poll_intervall seconds if we can acquire the
39 file lock.
40
41 Raises Timeout -- if the lock could not be acquired in
42 timeout seconds.
43
44 Changed in version 2.0.0: This method returns now a proxy
45 object instead of self, so that it can be used in a with
46 statement without side effects.
47
48
49 property is_locked
50 True, if the object holds the file lock.
51
52 Changed in version 2.0.0: This was previously a method
53 and is now a property.
54
55
56 property lock_file
57 The path to the lock file.
58
59 release(force=False)
60 Releases the file lock.
61
62 Please note, that the lock is only completly released, if
63 the lock counter is 0.
64
65 Also note, that the lock file itself is not automatically
66 deleted.
67
68 Parameters
69 force (bool) -- If true, the lock counter is
70 ignored and the lock is released in every case.
71
72 property timeout
73 You can set a default timeout for the filelock. It will
74 be used as fallback value in the acquire method, if no
75 timeout value (None) is given.
76
77 If you want to disable the timeout, set it to a negative
78 value.
79
80 A timeout of 0 means, that there is exactly one attempt
81 to acquire the file lock.
82
83 New in version 2.0.0.
84
85
86 filelock.FileLock
87 Alias for the lock, which should be used for the current plat‐
88 form. On Windows, this is an alias for WindowsFileLock, on Unix
89 for UnixFileLock and otherwise for SoftFileLock.
90
91 alias of filelock.UnixFileLock
92
93 class filelock.SoftFileLock(lock_file, timeout=- 1)
94 Bases: filelock.BaseFileLock
95
96 Simply watches the existence of the lock file.
97
98 exception filelock.Timeout(lock_file)
99 Bases: TimeoutError
100
101 Raised when the lock could not be acquired in timeout seconds.
102
103 lock_file
104 The path of the file lock.
105
106 class filelock.UnixFileLock(lock_file, timeout=- 1)
107 Bases: filelock.BaseFileLock
108
109 Uses the fcntl.flock() to hard lock the lock file on unix sys‐
110 tems.
111
112 class filelock.WindowsFileLock(lock_file, timeout=- 1)
113 Bases: filelock.BaseFileLock
114
115 Uses the msvcrt.locking() function to hard lock the lock file on
116 windows systems.
117
119 py-filelock is public domain:
120
121 This is free and unencumbered software released into the public domain.
122
123 Anyone is free to copy, modify, publish, use, compile, sell, or
124 distribute this software, either in source code form or as a compiled
125 binary, for any purpose, commercial or non-commercial, and by any
126 means.
127
128 In jurisdictions that recognize copyright laws, the author or authors
129 of this software dedicate any and all copyright interest in the
130 software to the public domain. We make this dedication for the benefit
131 of the public at large and to the detriment of our heirs and
132 successors. We intend this dedication to be an overt act of
133 relinquishment in perpetuity of all present and future rights to this
134 software under copyright law.
135
136 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
137 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
138 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
139 IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
140 OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
141 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
142 OTHER DEALINGS IN THE SOFTWARE.
143
144 For more information, please refer to <http://unlicense.org>
145
147 This module is hosted on GitHub. If you have any questions or sugges‐
148 tions, don't hesitate to open a new issue :).
149
151 Benedikt Schmitt
152
154 2020, Benedikt Schmitt
155
156
157
158
1593.0.12 Jul 29, 2020 PY-FILELOCK(1)