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

1""" 

2A platform independent file lock that supports the with-statement. 

3 

4.. autodata:: filelock.__version__ 

5 :no-value: 

6 

7""" 

8from __future__ import annotations 

9 

10import sys 

11import warnings 

12from typing import TYPE_CHECKING 

13 

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 

20 

21#: version of the project as a string 

22__version__: str = version 

23 

24 

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) 

34 

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 

40 

41 

42__all__ = [ 

43 "__version__", 

44 "FileLock", 

45 "SoftFileLock", 

46 "Timeout", 

47 "UnixFileLock", 

48 "WindowsFileLock", 

49 "BaseFileLock", 

50 "AcquireReturnProxy", 

51]