pytz: rework stubs (#6551)

This commit is contained in:
Jelle Zijlstra
2021-12-09 00:24:44 -08:00
committed by GitHub
parent 64fa02ae2c
commit 384e309f53
4 changed files with 52 additions and 26 deletions

View File

@@ -1,4 +0,0 @@
pytz.BaseTzInfo.localize
pytz.BaseTzInfo.normalize
pytz.BaseTzInfo.zone
pytz.FixedOffset

View File

@@ -1,36 +1,37 @@
import datetime
from typing import Mapping
from typing import ClassVar, Mapping
class BaseTzInfo(datetime.tzinfo):
zone: str = ...
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
class _UTCclass(BaseTzInfo):
def localize(self, dt: datetime.datetime, is_dst: bool | None = ...) -> datetime.datetime: ...
def normalize(self, dt: datetime.datetime) -> datetime.datetime: ...
class _UTCclass(BaseTzInfo):
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: ...
class _StaticTzInfo(BaseTzInfo):
def tzname(self, dt: datetime.datetime | None, is_dst: bool | None = ...) -> str: ...
def utcoffset(self, dt: datetime.datetime | None, is_dst: bool | None = ...) -> datetime.timedelta: ...
def dst(self, dt: datetime.datetime | None, is_dst: bool | None = ...) -> datetime.timedelta: ...
class _DstTzInfo(BaseTzInfo):
def tzname(self, dt: datetime.datetime | None, is_dst: bool | None = ...) -> str: ...
def utcoffset(self, dt: datetime.datetime | None, is_dst: bool | None = ...) -> datetime.timedelta | None: ...
def dst(self, dt: datetime.datetime | None, is_dst: bool | None = ...) -> datetime.timedelta | None: ...
class UnknownTimeZoneError(KeyError): ...
class InvalidTimeError(Exception): ...
class AmbiguousTimeError(InvalidTimeError): ...
class NonExistentTimeError(InvalidTimeError): ...
utc: _UTCclass
UTC: _UTCclass
def timezone(zone: str) -> _UTCclass | _StaticTzInfo | _DstTzInfo: ...
def FixedOffset(offset: int) -> _UTCclass | datetime.tzinfo: ...
def timezone(zone: str) -> _UTCclass | StaticTzInfo | DstTzInfo: ...
class _FixedOffset(datetime.tzinfo):
zone: ClassVar[None]
def __init__(self, minutes: int) -> None: ...
def utcoffset(self, dt: object) -> datetime.timedelta | None: ...
def dst(self, dt: object) -> datetime.timedelta: ...
def tzname(self, dt: object) -> None: ...
def localize(self, dt: datetime.datetime, is_dst: bool = ...) -> datetime.datetime: ...
def normalize(self, dt: datetime.datetime, is_dst: bool = ...) -> datetime.datetime: ...
def FixedOffset(offset: int, _tzinfos: dict[int, _FixedOffset] = ...) -> _UTCclass | _FixedOffset: ...
all_timezones: list[str]
all_timezones_set: set[str]

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,22 @@
import datetime
from typing import Any
class BaseTzInfo(datetime.tzinfo):
zone: str | None # Actually None but should be set on concrete subclasses
class StaticTzInfo(BaseTzInfo):
def fromutc(self, dt: datetime.datetime) -> datetime.datetime: ...
def localize(self, dt: datetime.datetime, is_dst: bool = ...) -> datetime.datetime: ...
def normalize(self, dt: datetime.datetime, is_dst: bool = ...) -> datetime.datetime: ...
def tzname(self, dt: datetime.datetime | None, is_dst: bool | None = ...) -> str: ...
def utcoffset(self, dt: datetime.datetime | None, is_dst: bool | None = ...) -> datetime.timedelta: ...
def dst(self, dt: datetime.datetime | None, is_dst: bool | None = ...) -> datetime.timedelta: ...
class DstTzInfo(BaseTzInfo):
def __init__(self, _inf: Any = ..., _tzinfos: Any = ...) -> None: ...
def fromutc(self, dt: datetime.datetime) -> datetime.datetime: ...
def localize(self, dt: datetime.datetime, is_dst: bool | None = ...) -> datetime.datetime: ...
def normalize(self, dt: datetime.datetime) -> datetime.datetime: ...
def tzname(self, dt: datetime.datetime | None, is_dst: bool | None = ...) -> str: ...
def utcoffset(self, dt: datetime.datetime | None, is_dst: bool | None = ...) -> datetime.timedelta | None: ...
def dst(self, dt: datetime.datetime | None, is_dst: bool | None = ...) -> datetime.timedelta | None: ...