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
« prev ^ index » next coverage.py v7.3.1, created at 2023-09-30 06:11 +0000
1from __future__ import annotations
3import sys
5from typing import TYPE_CHECKING
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
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
24 from typing_extensions import Self
26 class _IOBytes(Protocol):
27 def read(self, __size: int) -> bytes:
28 ...
30 def seek(self, __size: int, __whence: int = ...) -> Any:
31 ...
33 class ZoneInfo(tzinfo):
34 @property
35 def key(self) -> str:
36 ...
38 def __init__(self, key: str) -> None:
39 ...
41 @classmethod
42 def no_cache(cls, key: str) -> Self:
43 ...
45 @classmethod
46 def from_file(cls, __fobj: _IOBytes, key: str | None = ...) -> Self:
47 ...
49 @classmethod
50 def clear_cache(cls, *, only_keys: Iterable[str] | None = ...) -> None:
51 ...
53 def tzname(self, __dt: datetime | None) -> str | None:
54 ...
56 def utcoffset(self, __dt: datetime | None) -> timedelta | None:
57 ...
59 def dst(self, __dt: datetime | None) -> timedelta | None:
60 ...
62 else:
63 from backports.zoneinfo import ZoneInfo
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
73__all__ = [
74 "ZoneInfo",
75 "reset_tzpath",
76 "available_timezones",
77 "TZPATH",
78 "ZoneInfoNotFoundError",
79 "InvalidTZPathWarning",
80]