import typing from _typeshed import StrPath from datetime import tzinfo from typing import Any, Iterable, Protocol, Sequence, Type _T = typing.TypeVar("_T", bound="ZoneInfo") 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: Type[_T], key: str) -> _T: ... @classmethod def from_file(cls: Type[_T], __fobj: _IOBytes, key: str | None = ...) -> _T: ... @classmethod def clear_cache(cls, *, only_keys: Iterable[str] = ...) -> None: ... # Note: Both here and in clear_cache, the types allow the use of `str` where # a sequence of strings is required. This should be remedied if a solution # to this typing bug is found: https://github.com/python/typing/issues/256 def reset_tzpath(to: Sequence[StrPath] | None = ...) -> None: ... def available_timezones() -> set[str]: ... TZPATH: Sequence[str] class ZoneInfoNotFoundError(KeyError): ... class InvalidTZPathWarning(RuntimeWarning): ...