123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- """
- 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 .version import version
- #: version of the project as a string
- __version__: str = version
- if sys.platform == "win32": # pragma: win32 cover
- _FileLock: type[BaseFileLock] = WindowsFileLock
- else: # pragma: win32 no cover # noqa: PLR5501
- if has_fcntl:
- _FileLock: type[BaseFileLock] = UnixFileLock
- else:
- _FileLock = SoftFileLock
- if warnings is not None:
- warnings.warn("only soft file lock is available", stacklevel=2)
- if TYPE_CHECKING:
- FileLock = SoftFileLock
- else:
- #: Alias for the lock, which should be used for the current platform.
- FileLock = _FileLock
- __all__ = [
- "__version__",
- "FileLock",
- "SoftFileLock",
- "Timeout",
- "UnixFileLock",
- "WindowsFileLock",
- "BaseFileLock",
- "AcquireReturnProxy",
- ]
|