This commit is contained in:
2025-09-07 22:09:54 +02:00
parent e1b817252c
commit 2fc0d000b6
7796 changed files with 2159515 additions and 933 deletions

View File

@ -0,0 +1,3 @@
version = "2025.2"
# This is a mirror of https://git.launchpad.net/pytz/tree, see https://pythonhosted.org/pytz/#latest-versions
upstream_repository = "https://github.com/stub42/pytz"

View File

@ -0,0 +1,64 @@
import datetime
from _typeshed import Unused
from collections.abc import Mapping
from typing import ClassVar, type_check_only
from .exceptions import (
AmbiguousTimeError as AmbiguousTimeError,
InvalidTimeError as InvalidTimeError,
NonExistentTimeError as NonExistentTimeError,
UnknownTimeZoneError as UnknownTimeZoneError,
)
from .tzinfo import BaseTzInfo as BaseTzInfo, DstTzInfo, StaticTzInfo
# Actually named UTC and then masked with a singleton with the same name
@type_check_only
class _UTCclass(BaseTzInfo):
def localize(self, dt: datetime.datetime, is_dst: bool | None = False) -> datetime.datetime: ...
def normalize(self, dt: datetime.datetime, is_dst: bool | None = False) -> datetime.datetime: ...
def tzname(self, dt: datetime.datetime | None) -> str: ...
def utcoffset(self, dt: datetime.datetime | None) -> datetime.timedelta: ...
def dst(self, dt: datetime.datetime | None) -> datetime.timedelta: ...
utc: _UTCclass
UTC: _UTCclass
def timezone(zone: str) -> _UTCclass | StaticTzInfo | DstTzInfo: ...
class _FixedOffset(datetime.tzinfo):
zone: ClassVar[None]
def __init__(self, minutes: int) -> None: ...
def utcoffset(self, dt: Unused) -> datetime.timedelta | None: ...
def dst(self, dt: Unused) -> datetime.timedelta: ...
def tzname(self, dt: Unused) -> None: ...
def localize(self, dt: datetime.datetime, is_dst: bool | None = False) -> datetime.datetime: ...
def normalize(self, dt: datetime.datetime, is_dst: bool | None = False) -> datetime.datetime: ...
def FixedOffset(offset: int, _tzinfos: dict[int, _FixedOffset] = {}) -> _UTCclass | _FixedOffset: ...
all_timezones: list[str]
all_timezones_set: set[str]
common_timezones: list[str]
common_timezones_set: set[str]
country_timezones: Mapping[str, list[str]]
country_names: Mapping[str, str]
ZERO: datetime.timedelta
HOUR: datetime.timedelta
VERSION: str
__all__ = [
"timezone",
"utc",
"country_timezones",
"country_names",
"AmbiguousTimeError",
"InvalidTimeError",
"NonExistentTimeError",
"UnknownTimeZoneError",
"all_timezones",
"all_timezones_set",
"common_timezones",
"common_timezones_set",
"BaseTzInfo",
"FixedOffset",
]

View File

@ -0,0 +1,7 @@
__all__ = ["UnknownTimeZoneError", "InvalidTimeError", "AmbiguousTimeError", "NonExistentTimeError"]
class Error(Exception): ...
class UnknownTimeZoneError(KeyError, Error): ...
class InvalidTimeError(Error): ...
class AmbiguousTimeError(InvalidTimeError): ...
class NonExistentTimeError(InvalidTimeError): ...

View File

@ -0,0 +1,20 @@
from collections.abc import Iterator, Mapping as DictMixin
from typing import TypeVar
_T = TypeVar("_T")
_VT = TypeVar("_VT")
class LazyDict(DictMixin[str, _VT]):
data: dict[str, _VT] | None
def __getitem__(self, key: str) -> _VT: ...
def __contains__(self, key: object) -> bool: ...
def __iter__(self) -> Iterator[str]: ...
def __len__(self) -> int: ...
class LazyList(list[_T]):
# does not return `Self` type:
def __new__(cls, fill_iter=None) -> LazyList[_T]: ...
class LazySet(set[_T]):
# does not return `Self` type:
def __new__(cls, fill_iter=None) -> LazySet[_T]: ...

View File

@ -0,0 +1,40 @@
import datetime
from pytz import UTC as UTC
class FixedOffset(datetime.tzinfo):
def __init__(self, offset: float, name: str) -> None: ...
def utcoffset(self, dt: datetime.datetime | None) -> datetime.timedelta: ...
def tzname(self, dt: datetime.datetime | None) -> str: ...
def dst(self, dt: datetime.datetime | None) -> datetime.timedelta: ...
STDOFFSET: datetime.timedelta
DSTOFFSET: datetime.timedelta
class LocalTimezone(datetime.tzinfo):
def utcoffset(self, dt: datetime.datetime) -> datetime.timedelta: ... # type: ignore[override]
def dst(self, dt: datetime.datetime) -> datetime.timedelta: ... # type: ignore[override]
def tzname(self, dt: datetime.datetime) -> str: ... # type: ignore[override]
Local: LocalTimezone
DSTSTART: datetime.datetime
DSTEND: datetime.datetime
def first_sunday_on_or_after(dt: datetime.datetime) -> datetime.datetime: ...
class USTimeZone(datetime.tzinfo):
stdoffset: datetime.timedelta
reprname: str
stdname: str
dstname: str
def __init__(self, hours: float, reprname: str, stdname: str, dstname: str) -> None: ...
def tzname(self, dt: datetime.datetime | None) -> str: ...
def utcoffset(self, dt: datetime.datetime | None) -> datetime.timedelta: ...
def dst(self, dt: datetime.datetime | None) -> datetime.timedelta: ...
Eastern: USTimeZone
Central: USTimeZone
Mountain: USTimeZone
Pacific: USTimeZone
__all__ = ["FixedOffset", "LocalTimezone", "USTimeZone", "Eastern", "Central", "Mountain", "Pacific", "UTC"]

View File

@ -0,0 +1,5 @@
from typing import IO
from pytz.tzinfo import DstTzInfo
def build_tzinfo(zone: str, fp: IO[bytes]) -> DstTzInfo: ...

View File

@ -0,0 +1,43 @@
import datetime
from abc import abstractmethod
from typing import Any, overload
class BaseTzInfo(datetime.tzinfo):
_utcoffset: datetime.timedelta | None
_tzname: str | None
zone: str | None # Actually None but should be set on concrete subclasses
# The following abstract methods don't exist in the implementation, but
# are implemented by all sub-classes.
@abstractmethod
def localize(self, dt: datetime.datetime, is_dst: bool | None = ...) -> datetime.datetime: ...
@abstractmethod
def normalize(self, dt: datetime.datetime) -> datetime.datetime: ...
@abstractmethod
def tzname(self, dt: datetime.datetime | None, /) -> str: ...
@abstractmethod
def utcoffset(self, dt: datetime.datetime | None, /) -> datetime.timedelta | None: ...
@abstractmethod
def dst(self, dt: datetime.datetime | None, /) -> datetime.timedelta | None: ...
class StaticTzInfo(BaseTzInfo):
def fromutc(self, dt: datetime.datetime) -> datetime.datetime: ...
def localize(self, dt: datetime.datetime, is_dst: bool | None = False) -> datetime.datetime: ...
def normalize(self, dt: datetime.datetime, is_dst: bool | None = False) -> datetime.datetime: ...
def tzname(self, dt: datetime.datetime | None, is_dst: bool | None = None) -> str: ...
def utcoffset(self, dt: datetime.datetime | None, is_dst: bool | None = None) -> datetime.timedelta: ...
def dst(self, dt: datetime.datetime | None, is_dst: bool | None = None) -> datetime.timedelta: ...
class DstTzInfo(BaseTzInfo):
def __init__(self, _inf: Any = None, _tzinfos: Any = None) -> None: ...
def fromutc(self, dt: datetime.datetime) -> datetime.datetime: ...
def localize(self, dt: datetime.datetime, is_dst: bool | None = False) -> datetime.datetime: ...
def normalize(self, dt: datetime.datetime) -> datetime.datetime: ...
def tzname(self, dt: datetime.datetime | None, is_dst: bool | None = None) -> str: ...
# https://github.com/python/mypy/issues/12379
@overload # type: ignore[override]
def utcoffset(self, dt: None, is_dst: bool | None = None) -> None: ...
@overload
def utcoffset(self, dt: datetime.datetime, is_dst: bool | None = None) -> datetime.timedelta: ...
def dst(self, dt: datetime.datetime | None, is_dst: bool | None = None) -> datetime.timedelta | None: ...
__all__: list[str] = []