From 941cdbbe1e1ad31e303aea1ba9d4e2457d7ca873 Mon Sep 17 00:00:00 2001 From: Randolf Scholz Date: Thu, 9 Nov 2023 14:03:36 +0100 Subject: [PATCH] changed overload order for date.__sub__ and datettime.__sub__ --- stdlib/datetime.pyi | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/stdlib/datetime.pyi b/stdlib/datetime.pyi index 36577c5b7e1b..9e9af19c3b27 100644 --- a/stdlib/datetime.pyi +++ b/stdlib/datetime.pyi @@ -1,7 +1,7 @@ import sys from abc import abstractmethod from time import struct_time -from typing import ClassVar, NamedTuple, NoReturn, TypeVar, overload +from typing import ClassVar, NamedTuple, NoReturn, overload from typing_extensions import Literal, Self, SupportsIndex, TypeAlias, final if sys.version_info >= (3, 11): @@ -9,8 +9,6 @@ if sys.version_info >= (3, 11): elif sys.version_info >= (3, 9): __all__ = ("date", "datetime", "time", "timedelta", "timezone", "tzinfo", "MINYEAR", "MAXYEAR") -_D = TypeVar("_D", bound=date) - MINYEAR: Literal[1] MAXYEAR: Literal[9999] @@ -93,11 +91,11 @@ class date: def __add__(self, __value: timedelta) -> Self: ... def __radd__(self, __value: timedelta) -> Self: ... @overload - def __sub__(self, __value: timedelta) -> Self: ... - @overload def __sub__(self, __value: datetime) -> NoReturn: ... @overload - def __sub__(self: _D, __value: _D) -> timedelta: ... + def __sub__(self, __value: Self) -> timedelta: ... + @overload + def __sub__(self, __value: timedelta) -> Self: ... else: # Prior to Python 3.8, arithmetic operations always returned `date`, even in subclasses def __add__(self, __value: timedelta) -> date: ... @@ -318,9 +316,9 @@ class datetime(date): def __hash__(self) -> int: ... if sys.version_info >= (3, 8): @overload # type: ignore[override] - def __sub__(self, __value: timedelta) -> Self: ... + def __sub__(self, __value: Self) -> timedelta: ... @overload - def __sub__(self: _D, __value: _D) -> timedelta: ... + def __sub__(self, __value: timedelta) -> Self: ... else: # Prior to Python 3.8, arithmetic operations always returned `datetime`, even in subclasses def __add__(self, __value: timedelta) -> datetime: ...