Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/pendulum/utils/_zoneinfo.py: 24%

51 statements  

« prev     ^ index     » next       coverage.py v7.3.1, created at 2023-09-30 06:11 +0000

1from __future__ import annotations 

2 

3import sys 

4 

5from typing import TYPE_CHECKING 

6 

7 

8if sys.version_info < (3, 9): 

9 # Works around https://github.com/pganssle/zoneinfo/issues/125 

10 from backports.zoneinfo import TZPATH 

11 from backports.zoneinfo import InvalidTZPathWarning 

12 from backports.zoneinfo import ZoneInfoNotFoundError 

13 from backports.zoneinfo import available_timezones 

14 from backports.zoneinfo import reset_tzpath 

15 

16 if TYPE_CHECKING: 

17 from collections.abc import Iterable 

18 from datetime import datetime 

19 from datetime import timedelta 

20 from datetime import tzinfo 

21 from typing import Any 

22 from typing import Protocol 

23 

24 from typing_extensions import Self 

25 

26 class _IOBytes(Protocol): 

27 def read(self, __size: int) -> bytes: 

28 ... 

29 

30 def seek(self, __size: int, __whence: int = ...) -> Any: 

31 ... 

32 

33 class ZoneInfo(tzinfo): 

34 @property 

35 def key(self) -> str: 

36 ... 

37 

38 def __init__(self, key: str) -> None: 

39 ... 

40 

41 @classmethod 

42 def no_cache(cls, key: str) -> Self: 

43 ... 

44 

45 @classmethod 

46 def from_file(cls, __fobj: _IOBytes, key: str | None = ...) -> Self: 

47 ... 

48 

49 @classmethod 

50 def clear_cache(cls, *, only_keys: Iterable[str] | None = ...) -> None: 

51 ... 

52 

53 def tzname(self, __dt: datetime | None) -> str | None: 

54 ... 

55 

56 def utcoffset(self, __dt: datetime | None) -> timedelta | None: 

57 ... 

58 

59 def dst(self, __dt: datetime | None) -> timedelta | None: 

60 ... 

61 

62 else: 

63 from backports.zoneinfo import ZoneInfo 

64 

65else: 

66 from zoneinfo import TZPATH 

67 from zoneinfo import InvalidTZPathWarning 

68 from zoneinfo import ZoneInfo 

69 from zoneinfo import ZoneInfoNotFoundError 

70 from zoneinfo import available_timezones 

71 from zoneinfo import reset_tzpath 

72 

73__all__ = [ 

74 "ZoneInfo", 

75 "reset_tzpath", 

76 "available_timezones", 

77 "TZPATH", 

78 "ZoneInfoNotFoundError", 

79 "InvalidTZPathWarning", 

80]