1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- from __future__ import annotations
- import sys
- from typing import TYPE_CHECKING
- if sys.version_info < (3, 9):
- # Works around https://github.com/pganssle/zoneinfo/issues/125
- from backports.zoneinfo import TZPATH
- from backports.zoneinfo import InvalidTZPathWarning
- from backports.zoneinfo import ZoneInfoNotFoundError
- from backports.zoneinfo import available_timezones
- from backports.zoneinfo import reset_tzpath
- if TYPE_CHECKING:
- from collections.abc import Iterable
- from datetime import datetime
- from datetime import timedelta
- from datetime import tzinfo
- from typing import Any
- from typing import Protocol
- from typing_extensions import Self
- class _IOBytes(Protocol):
- def read(self, __size: int) -> bytes:
- ...
- def seek(self, __size: int, __whence: int = ...) -> Any:
- ...
- class ZoneInfo(tzinfo):
- @property
- def key(self) -> str:
- ...
- def __init__(self, key: str) -> None:
- ...
- @classmethod
- def no_cache(cls, key: str) -> Self:
- ...
- @classmethod
- def from_file(cls, __fobj: _IOBytes, key: str | None = ...) -> Self:
- ...
- @classmethod
- def clear_cache(cls, *, only_keys: Iterable[str] | None = ...) -> None:
- ...
- def tzname(self, __dt: datetime | None) -> str | None:
- ...
- def utcoffset(self, __dt: datetime | None) -> timedelta | None:
- ...
- def dst(self, __dt: datetime | None) -> timedelta | None:
- ...
- else:
- from backports.zoneinfo import ZoneInfo
- else:
- from zoneinfo import TZPATH
- from zoneinfo import InvalidTZPathWarning
- from zoneinfo import ZoneInfo
- from zoneinfo import ZoneInfoNotFoundError
- from zoneinfo import available_timezones
- from zoneinfo import reset_tzpath
- __all__ = [
- "ZoneInfo",
- "reset_tzpath",
- "available_timezones",
- "TZPATH",
- "ZoneInfoNotFoundError",
- "InvalidTZPathWarning",
- ]
|