mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-23 12:21:27 +08:00
datetime.tzinfo is abstract (#8908)
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import sys
|
||||
from _typeshed import Self
|
||||
from abc import ABCMeta, abstractmethod
|
||||
from time import struct_time
|
||||
from typing import ClassVar, NamedTuple, NoReturn, SupportsAbs, TypeVar, overload
|
||||
from typing_extensions import Literal, TypeAlias, final
|
||||
@@ -14,9 +15,12 @@ _D = TypeVar("_D", bound=date)
|
||||
MINYEAR: Literal[1]
|
||||
MAXYEAR: Literal[9999]
|
||||
|
||||
class tzinfo:
|
||||
class tzinfo(metaclass=ABCMeta):
|
||||
@abstractmethod
|
||||
def tzname(self, __dt: datetime | None) -> str | None: ...
|
||||
@abstractmethod
|
||||
def utcoffset(self, __dt: datetime | None) -> timedelta | None: ...
|
||||
@abstractmethod
|
||||
def dst(self, __dt: datetime | None) -> timedelta | None: ...
|
||||
def fromutc(self, __dt: datetime) -> datetime: ...
|
||||
|
||||
@@ -29,6 +33,9 @@ class timezone(tzinfo):
|
||||
min: ClassVar[timezone]
|
||||
max: ClassVar[timezone]
|
||||
def __init__(self, offset: timedelta, name: str = ...) -> None: ...
|
||||
def tzname(self, __dt: datetime | None) -> str: ...
|
||||
def utcoffset(self, __dt: datetime | None) -> timedelta: ...
|
||||
def dst(self, __dt: datetime | None) -> None: ...
|
||||
|
||||
if sys.version_info >= (3, 11):
|
||||
UTC: timezone
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from _typeshed import Self, StrPath
|
||||
from collections.abc import Iterable, Sequence
|
||||
from datetime import tzinfo
|
||||
from datetime import datetime, timedelta, tzinfo
|
||||
from typing import Any, Protocol
|
||||
|
||||
__all__ = ["ZoneInfo", "reset_tzpath", "available_timezones", "TZPATH", "ZoneInfoNotFoundError", "InvalidTZPathWarning"]
|
||||
@@ -19,6 +19,9 @@ class ZoneInfo(tzinfo):
|
||||
def from_file(cls: type[Self], __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: ...
|
||||
|
||||
# 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
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import abc
|
||||
from datetime import datetime, timedelta, tzinfo
|
||||
from typing import ClassVar
|
||||
|
||||
@@ -8,7 +9,7 @@ class _DatetimeWithFold(datetime):
|
||||
@property
|
||||
def fold(self): ...
|
||||
|
||||
class _tzinfo(tzinfo):
|
||||
class _tzinfo(tzinfo, metaclass=abc.ABCMeta):
|
||||
def is_ambiguous(self, dt: datetime) -> bool: ...
|
||||
def fromutc(self, dt: datetime) -> datetime: ...
|
||||
|
||||
|
||||
Reference in New Issue
Block a user