Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/filelock/__init__.py: 72%
Shortcuts on this page
r m x toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
Shortcuts on this page
r m x toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1"""
2A platform independent file lock that supports the with-statement.
4.. autodata:: filelock.__version__
5 :no-value:
7"""
9from __future__ import annotations
11import sys
12import warnings
13from typing import TYPE_CHECKING
15from ._api import AcquireReturnProxy, BaseFileLock
16from ._error import Timeout
17from ._soft import SoftFileLock
18from ._unix import UnixFileLock, has_fcntl
19from ._windows import WindowsFileLock
20from .asyncio import (
21 AsyncAcquireReturnProxy,
22 AsyncSoftFileLock,
23 AsyncUnixFileLock,
24 AsyncWindowsFileLock,
25 BaseAsyncFileLock,
26)
27from .version import version
29#: version of the project as a string
30__version__: str = version
33if sys.platform == "win32": # pragma: win32 cover
34 _FileLock: type[BaseFileLock] = WindowsFileLock
35 _AsyncFileLock: type[BaseAsyncFileLock] = AsyncWindowsFileLock
36else: # pragma: win32 no cover # noqa: PLR5501
37 if has_fcntl:
38 _FileLock: type[BaseFileLock] = UnixFileLock
39 _AsyncFileLock: type[BaseAsyncFileLock] = AsyncUnixFileLock
40 else:
41 _FileLock = SoftFileLock
42 _AsyncFileLock = AsyncSoftFileLock
43 if warnings is not None:
44 warnings.warn("only soft file lock is available", stacklevel=2)
46if TYPE_CHECKING:
47 FileLock = SoftFileLock
48 AsyncFileLock = AsyncSoftFileLock
49else:
50 #: Alias for the lock, which should be used for the current platform.
51 FileLock = _FileLock
52 AsyncFileLock = _AsyncFileLock
55__all__ = [
56 "AcquireReturnProxy",
57 "AsyncAcquireReturnProxy",
58 "AsyncFileLock",
59 "AsyncSoftFileLock",
60 "AsyncUnixFileLock",
61 "AsyncWindowsFileLock",
62 "BaseAsyncFileLock",
63 "BaseFileLock",
64 "FileLock",
65 "SoftFileLock",
66 "Timeout",
67 "UnixFileLock",
68 "WindowsFileLock",
69 "__version__",
70]