Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/filelock/__init__.py: 70%
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
18try:
19 from ._read_write import ReadWriteLock
20except ImportError: # sqlite3 may be unavailable if Python was built without it or the C library is missing
21 ReadWriteLock = None # type: ignore[assignment, misc]
23from ._soft import SoftFileLock
24from ._unix import UnixFileLock, has_fcntl
25from ._windows import WindowsFileLock
26from .asyncio import (
27 AsyncAcquireReturnProxy,
28 AsyncSoftFileLock,
29 AsyncUnixFileLock,
30 AsyncWindowsFileLock,
31 BaseAsyncFileLock,
32)
33from .version import version
35#: version of the project as a string
36__version__: str = version
39if sys.platform == "win32": # pragma: win32 cover
40 _FileLock: type[BaseFileLock] = WindowsFileLock
41 _AsyncFileLock: type[BaseAsyncFileLock] = AsyncWindowsFileLock
42else: # pragma: win32 no cover # noqa: PLR5501
43 if has_fcntl:
44 _FileLock: type[BaseFileLock] = UnixFileLock
45 _AsyncFileLock: type[BaseAsyncFileLock] = AsyncUnixFileLock
46 else:
47 _FileLock = SoftFileLock
48 _AsyncFileLock = AsyncSoftFileLock
49 if warnings is not None:
50 warnings.warn("only soft file lock is available", stacklevel=2)
52if TYPE_CHECKING:
53 FileLock = SoftFileLock
54 AsyncFileLock = AsyncSoftFileLock
55else:
56 #: Alias for the lock, which should be used for the current platform.
57 FileLock = _FileLock
58 AsyncFileLock = _AsyncFileLock
61__all__ = [
62 "AcquireReturnProxy",
63 "AsyncAcquireReturnProxy",
64 "AsyncFileLock",
65 "AsyncSoftFileLock",
66 "AsyncUnixFileLock",
67 "AsyncWindowsFileLock",
68 "BaseAsyncFileLock",
69 "BaseFileLock",
70 "FileLock",
71 "ReadWriteLock",
72 "SoftFileLock",
73 "Timeout",
74 "UnixFileLock",
75 "WindowsFileLock",
76 "__version__",
77]