codekingpro/portable-devtools
114k
1"""2A platform independent file lock that supports the with-statement.3 4.. autodata:: filelock.__version__5 :no-value:6 7"""8 9from __future__ import annotations10 11import sys12import warnings13from typing import TYPE_CHECKING14 15from ._api import AcquireReturnProxy, BaseFileLock16from ._error import Timeout17from ._soft import SoftFileLock18from ._unix import UnixFileLock, has_fcntl19from ._windows import WindowsFileLock20from .version import version21 22#: version of the project as a string23__version__: str = version24 25 26if sys.platform == "win32": # pragma: win32 cover27 _FileLock: type[BaseFileLock] = WindowsFileLock28else: # pragma: win32 no cover # noqa: PLR550129 if has_fcntl:30 _FileLock: type[BaseFileLock] = UnixFileLock31 else:32 _FileLock = SoftFileLock33 if warnings is not None:34 warnings.warn("only soft file lock is available", stacklevel=2)35 36if TYPE_CHECKING:37 FileLock = SoftFileLock38else:39 #: Alias for the lock, which should be used for the current platform.40 FileLock = _FileLock41 42 43__all__ = [44 "AcquireReturnProxy",45 "BaseFileLock",46 "FileLock",47 "SoftFileLock",48 "Timeout",49 "UnixFileLock",50 "WindowsFileLock",51 "__version__",52]53 