|
1 | 1 | from __future__ import annotations |
2 | 2 |
|
3 | | -import sys |
| 3 | +from zoneinfo import TZPATH |
| 4 | +from zoneinfo import InvalidTZPathWarning |
| 5 | +from zoneinfo import ZoneInfo |
| 6 | +from zoneinfo import ZoneInfoNotFoundError |
| 7 | +from zoneinfo import available_timezones |
| 8 | +from zoneinfo import reset_tzpath |
4 | 9 |
|
5 | | -from typing import TYPE_CHECKING |
6 | | - |
7 | | - |
8 | | -if 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 | | - |
65 | | -else: |
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 | 10 |
|
73 | 11 | __all__ = [ |
74 | 12 | "ZoneInfo", |
|
0 commit comments