Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/filelock/__init__.py: 77%
22 statements
« prev ^ index » next coverage.py v7.3.1, created at 2023-09-25 06:08 +0000
« prev ^ index » next coverage.py v7.3.1, created at 2023-09-25 06:08 +0000
1"""
2A platform independent file lock that supports the with-statement.
4.. autodata:: filelock.__version__
5 :no-value:
7"""
8from __future__ import annotations
10import sys
11import warnings
12from typing import TYPE_CHECKING
14from ._api import AcquireReturnProxy, BaseFileLock
15from ._error import Timeout
16from ._soft import SoftFileLock
17from ._unix import UnixFileLock, has_fcntl
18from ._windows import WindowsFileLock
19from .version import version
21#: version of the project as a string
22__version__: str = version
25if sys.platform == "win32": # pragma: win32 cover
26 _FileLock: type[BaseFileLock] = WindowsFileLock
27else: # pragma: win32 no cover # noqa: PLR5501
28 if has_fcntl:
29 _FileLock: type[BaseFileLock] = UnixFileLock
30 else:
31 _FileLock = SoftFileLock
32 if warnings is not None:
33 warnings.warn("only soft file lock is available", stacklevel=2)
35if TYPE_CHECKING: # noqa: SIM108
36 FileLock = SoftFileLock
37else:
38 #: Alias for the lock, which should be used for the current platform.
39 FileLock = _FileLock
42__all__ = [
43 "__version__",
44 "FileLock",
45 "SoftFileLock",
46 "Timeout",
47 "UnixFileLock",
48 "WindowsFileLock",
49 "BaseFileLock",
50 "AcquireReturnProxy",
51]