| | """ |
| | A platform independent file lock that supports the with-statement. |
| | |
| | .. autodata:: filelock.__version__ |
| | :no-value: |
| | |
| | """ |
| |
|
| | from __future__ import annotations |
| |
|
| | import sys |
| | import warnings |
| | from typing import TYPE_CHECKING |
| |
|
| | from ._api import AcquireReturnProxy, BaseFileLock |
| | from ._error import Timeout |
| | from ._soft import SoftFileLock |
| | from ._unix import UnixFileLock, has_fcntl |
| | from ._windows import WindowsFileLock |
| | from .asyncio import ( |
| | AsyncAcquireReturnProxy, |
| | AsyncSoftFileLock, |
| | AsyncUnixFileLock, |
| | AsyncWindowsFileLock, |
| | BaseAsyncFileLock, |
| | ) |
| | from .version import version |
| |
|
| | |
| | __version__: str = version |
| |
|
| |
|
| | if sys.platform == "win32": |
| | _FileLock: type[BaseFileLock] = WindowsFileLock |
| | _AsyncFileLock: type[BaseAsyncFileLock] = AsyncWindowsFileLock |
| | else: |
| | if has_fcntl: |
| | _FileLock: type[BaseFileLock] = UnixFileLock |
| | _AsyncFileLock: type[BaseAsyncFileLock] = AsyncUnixFileLock |
| | else: |
| | _FileLock = SoftFileLock |
| | _AsyncFileLock = AsyncSoftFileLock |
| | if warnings is not None: |
| | warnings.warn("only soft file lock is available", stacklevel=2) |
| |
|
| | if TYPE_CHECKING: |
| | FileLock = SoftFileLock |
| | AsyncFileLock = AsyncSoftFileLock |
| | else: |
| | |
| | FileLock = _FileLock |
| | AsyncFileLock = _AsyncFileLock |
| |
|
| |
|
| | __all__ = [ |
| | "AcquireReturnProxy", |
| | "AsyncAcquireReturnProxy", |
| | "AsyncFileLock", |
| | "AsyncSoftFileLock", |
| | "AsyncUnixFileLock", |
| | "AsyncWindowsFileLock", |
| | "BaseAsyncFileLock", |
| | "BaseFileLock", |
| | "FileLock", |
| | "SoftFileLock", |
| | "Timeout", |
| | "UnixFileLock", |
| | "WindowsFileLock", |
| | "__version__", |
| | ] |
| |
|