From 2a047e348ec630b2fca1898c8153cc7bc6b57e56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20W=C3=B6rtwein?= Date: Tue, 26 Dec 2023 10:07:26 -0500 Subject: [PATCH] keep redundancy --- pandas-stubs/_libs/tslibs/period.pyi | 3 ++- pandas-stubs/_libs/tslibs/timedeltas.pyi | 33 ++++++++++++------------ pandas-stubs/_libs/tslibs/timestamps.pyi | 29 +++++++-------------- pandas-stubs/core/indexes/datetimes.pyi | 7 ++--- pandas-stubs/core/indexes/timedeltas.pyi | 4 +-- pandas-stubs/core/series.pyi | 12 ++++++--- 6 files changed, 42 insertions(+), 46 deletions(-) diff --git a/pandas-stubs/_libs/tslibs/period.pyi b/pandas-stubs/_libs/tslibs/period.pyi index fd5d6df6..bdc67873 100644 --- a/pandas-stubs/_libs/tslibs/period.pyi +++ b/pandas-stubs/_libs/tslibs/period.pyi @@ -9,6 +9,7 @@ from pandas import ( Index, PeriodIndex, Series, + Timedelta, TimedeltaIndex, ) from pandas.core.series import ( @@ -26,7 +27,7 @@ from pandas._typing import npt class IncompatibleFrequency(ValueError): ... _PeriodAddSub: TypeAlias = ( - datetime.timedelta | np.timedelta64 | np.int64 | int | BaseOffset + Timedelta | datetime.timedelta | np.timedelta64 | np.int64 | int | BaseOffset ) _PeriodFreqHow: TypeAlias = Literal[ diff --git a/pandas-stubs/_libs/tslibs/timedeltas.pyi b/pandas-stubs/_libs/tslibs/timedeltas.pyi index 39f8a30b..dc1e07ea 100644 --- a/pandas-stubs/_libs/tslibs/timedeltas.pyi +++ b/pandas-stubs/_libs/tslibs/timedeltas.pyi @@ -109,7 +109,7 @@ class Timedelta(timedelta): value: int def __new__( cls, - value: str | int | timedelta | np.timedelta64 = ..., + value: str | int | Timedelta | timedelta | np.timedelta64 = ..., unit: TimeDeltaUnitChoices = ..., *, days: float | np.integer | np.floating = ..., @@ -144,9 +144,9 @@ class Timedelta(timedelta): def resolution_string(self) -> str: ... # Override due to more types supported than dt.timedelta @overload # type: ignore[override] - def __add__(self, other: timedelta | np.timedelta64) -> Timedelta: ... + def __add__(self, other: timedelta | Timedelta | np.timedelta64) -> Timedelta: ... @overload - def __add__(self, other: dt.datetime | np.datetime64) -> Timestamp: ... + def __add__(self, other: dt.datetime | np.datetime64 | Timestamp) -> Timestamp: ... @overload def __add__(self, other: NaTType) -> NaTType: ... @overload @@ -177,7 +177,7 @@ class Timedelta(timedelta): @overload def __radd__(self, other: np.datetime64) -> Timestamp: ... @overload - def __radd__(self, other: timedelta | np.timedelta64) -> Timedelta: ... + def __radd__(self, other: timedelta | Timedelta | np.timedelta64) -> Timedelta: ... @overload def __radd__(self, other: NaTType) -> NaTType: ... @overload @@ -194,7 +194,7 @@ class Timedelta(timedelta): def __radd__(self, other: pd.PeriodIndex) -> pd.PeriodIndex: ... # Override due to more types supported than dt.timedelta @overload # type: ignore[override] - def __sub__(self, other: timedelta | np.timedelta64) -> Timedelta: ... + def __sub__(self, other: timedelta | Timedelta | np.timedelta64) -> Timedelta: ... @overload def __sub__(self, other: NaTType) -> NaTType: ... @overload @@ -208,8 +208,7 @@ class Timedelta(timedelta): self, other: TimedeltaSeries | Series[pd.Timedelta] ) -> TimedeltaSeries: ... @overload - def __rsub__(self, other: timedelta | np.timedelta64) -> Timedelta: ... - # Timedelta - Timestamp is not allowed but the reverse is + def __rsub__(self, other: timedelta | Timedelta | np.timedelta64) -> Timedelta: ... @overload def __rsub__(self, other: dt.datetime | np.datetime64) -> Timestamp: ... # type: ignore[misc] @overload @@ -260,7 +259,7 @@ class Timedelta(timedelta): # Override due to more types supported than dt.timedelta # error: Signature of "__floordiv__" incompatible with supertype "timedelta" @overload # type: ignore[override] - def __floordiv__(self, other: timedelta | np.timedelta64) -> int: ... + def __floordiv__(self, other: timedelta | Timedelta | np.timedelta64) -> int: ... @overload def __floordiv__(self, other: float) -> Timedelta: ... @overload @@ -282,7 +281,7 @@ class Timedelta(timedelta): @overload def __floordiv__(self, other: NaTType | None) -> float: ... @overload - def __rfloordiv__(self, other: timedelta | str) -> int: ... + def __rfloordiv__(self, other: timedelta | Timedelta | str) -> int: ... @overload def __rfloordiv__(self, other: NaTType | None) -> float: ... @overload @@ -291,7 +290,7 @@ class Timedelta(timedelta): ) -> npt.NDArray[np.int_]: ... # Override due to more types supported than dt.timedelta @overload # type: ignore[override] - def __truediv__(self, other: timedelta | NaTType) -> float: ... + def __truediv__(self, other: timedelta | Timedelta | NaTType) -> float: ... @overload def __truediv__(self, other: float) -> Timedelta: ... @overload @@ -306,10 +305,10 @@ class Timedelta(timedelta): def __truediv__(self, other: Series[float]) -> TimedeltaSeries: ... @overload def __truediv__(self, other: Index[int] | Index[float]) -> TimedeltaIndex: ... - def __rtruediv__(self, other: timedelta | NaTType) -> float: ... + def __rtruediv__(self, other: timedelta | Timedelta | NaTType) -> float: ... # Override due to more types supported than dt.timedelta @overload - def __eq__(self, other: timedelta | np.timedelta64) -> bool: ... # type: ignore[overload-overlap] # pyright: ignore[reportOverlappingOverload] + def __eq__(self, other: timedelta | Timedelta | np.timedelta64) -> bool: ... # type: ignore[overload-overlap] # pyright: ignore[reportOverlappingOverload] @overload def __eq__(self, other: TimedeltaSeries | Series[pd.Timedelta]) -> Series[bool]: ... # type: ignore[overload-overlap] @overload @@ -320,7 +319,7 @@ class Timedelta(timedelta): def __eq__(self, other: object) -> Literal[False]: ... # Override due to more types supported than dt.timedelta @overload - def __ne__(self, other: timedelta | np.timedelta64) -> bool: ... # type: ignore[overload-overlap] # pyright: ignore[reportOverlappingOverload] + def __ne__(self, other: timedelta | Timedelta | np.timedelta64) -> bool: ... # type: ignore[overload-overlap] # pyright: ignore[reportOverlappingOverload] @overload def __ne__(self, other: TimedeltaSeries | Series[pd.Timedelta]) -> Series[bool]: ... # type: ignore[overload-overlap] @overload @@ -351,7 +350,7 @@ class Timedelta(timedelta): # for le, lt ge and gt # Override due to more types supported than dt.timedelta @overload # type: ignore[override] - def __le__(self, other: timedelta | np.timedelta64) -> bool: ... # type: ignore[misc] + def __le__(self, other: timedelta | Timedelta | np.timedelta64) -> bool: ... # type: ignore[misc] @overload def __le__( self, other: TimedeltaIndex | npt.NDArray[np.timedelta64] @@ -360,7 +359,7 @@ class Timedelta(timedelta): def __le__(self, other: TimedeltaSeries | Series[pd.Timedelta]) -> Series[bool]: ... # Override due to more types supported than dt.timedelta @overload # type: ignore[override] - def __lt__(self, other: timedelta | np.timedelta64) -> bool: ... # type: ignore[misc] + def __lt__(self, other: timedelta | Timedelta | np.timedelta64) -> bool: ... # type: ignore[misc] @overload def __lt__( self, other: TimedeltaIndex | npt.NDArray[np.timedelta64] @@ -369,7 +368,7 @@ class Timedelta(timedelta): def __lt__(self, other: TimedeltaSeries | Series[pd.Timedelta]) -> Series[bool]: ... # Override due to more types supported than dt.timedelta @overload # type: ignore[override] - def __ge__(self, other: timedelta | np.timedelta64) -> bool: ... # type: ignore[misc] + def __ge__(self, other: timedelta | Timedelta | np.timedelta64) -> bool: ... # type: ignore[misc] @overload def __ge__( self, other: TimedeltaIndex | npt.NDArray[np.timedelta64] @@ -378,7 +377,7 @@ class Timedelta(timedelta): def __ge__(self, other: TimedeltaSeries | Series[pd.Timedelta]) -> Series[bool]: ... # Override due to more types supported than dt.timedelta @overload # type: ignore[override] - def __gt__(self, other: timedelta | np.timedelta64) -> bool: ... # type: ignore[misc] + def __gt__(self, other: timedelta | Timedelta | np.timedelta64) -> bool: ... # type: ignore[misc] @overload def __gt__( self, other: TimedeltaIndex | npt.NDArray[np.timedelta64] diff --git a/pandas-stubs/_libs/tslibs/timestamps.pyi b/pandas-stubs/_libs/tslibs/timestamps.pyi index fbd5d420..dbf151c7 100644 --- a/pandas-stubs/_libs/tslibs/timestamps.pyi +++ b/pandas-stubs/_libs/tslibs/timestamps.pyi @@ -6,7 +6,6 @@ from datetime import ( timedelta, tzinfo as _tzinfo, ) -import sys from time import struct_time from typing import ( ClassVar, @@ -44,7 +43,7 @@ from pandas._typing import ( _Ambiguous: TypeAlias = bool | Literal["raise", "NaT"] _Nonexistent: TypeAlias = ( - Literal["raise", "NaT", "shift_backward", "shift_forward"] | timedelta + Literal["raise", "NaT", "shift_backward", "shift_forward"] | Timedelta | timedelta ) class Timestamp(datetime): @@ -100,16 +99,8 @@ class Timestamp(datetime): def tz(self) -> _tzinfo | None: ... @property def fold(self) -> int: ... - - if sys.version_info < (3, 12): - @classmethod - def fromtimestamp(cls, t: float, tz: _tzinfo | str | None = ...) -> Self: ... - else: - @classmethod - def fromtimestamp( # pyright: ignore[reportIncompatibleMethodOverride] - cls, t: float, tz: _tzinfo | str | None = ... - ) -> Self: ... - + @classmethod + def fromtimestamp(cls, t: float, tz: _tzinfo | str | None = ...) -> Self: ... @classmethod def utcfromtimestamp(cls, ts: float) -> Self: ... @classmethod @@ -166,25 +157,25 @@ class Timestamp(datetime): # Mypy complains Forward operator "" is not callable, so ignore misc # for le, lt ge and gt @overload # type: ignore[override] - def __le__(self, other: datetime | np.datetime64) -> bool: ... # type: ignore[misc] + def __le__(self, other: Timestamp | datetime | np.datetime64) -> bool: ... # type: ignore[misc] @overload def __le__(self, other: Index | npt.NDArray[np.datetime64]) -> np_ndarray_bool: ... @overload def __le__(self, other: TimestampSeries) -> Series[bool]: ... @overload # type: ignore[override] - def __lt__(self, other: datetime | np.datetime64) -> bool: ... # type: ignore[misc] + def __lt__(self, other: Timestamp | datetime | np.datetime64) -> bool: ... # type: ignore[misc] @overload def __lt__(self, other: Index | npt.NDArray[np.datetime64]) -> np_ndarray_bool: ... @overload def __lt__(self, other: TimestampSeries) -> Series[bool]: ... @overload # type: ignore[override] - def __ge__(self, other: datetime | np.datetime64) -> bool: ... # type: ignore[misc] + def __ge__(self, other: Timestamp | datetime | np.datetime64) -> bool: ... # type: ignore[misc] @overload def __ge__(self, other: Index | npt.NDArray[np.datetime64]) -> np_ndarray_bool: ... @overload def __ge__(self, other: TimestampSeries) -> Series[bool]: ... @overload # type: ignore[override] - def __gt__(self, other: datetime | np.datetime64) -> bool: ... # type: ignore[misc] + def __gt__(self, other: Timestamp | datetime | np.datetime64) -> bool: ... # type: ignore[misc] @overload def __gt__(self, other: Index | npt.NDArray[np.datetime64]) -> np_ndarray_bool: ... @overload @@ -210,7 +201,7 @@ class Timestamp(datetime): ) -> npt.NDArray[np.datetime64]: ... # TODO: test dt64 @overload # type: ignore[override] - def __sub__(self, other: datetime | np.datetime64) -> Timedelta: ... + def __sub__(self, other: Timestamp | datetime | np.datetime64) -> Timedelta: ... @overload def __sub__(self, other: timedelta | np.timedelta64 | Tick) -> Self: ... @overload @@ -222,7 +213,7 @@ class Timestamp(datetime): self, other: npt.NDArray[np.timedelta64] ) -> npt.NDArray[np.datetime64]: ... @overload - def __eq__(self, other: datetime | np.datetime64) -> bool: ... # type: ignore[overload-overlap] # pyright: ignore[reportOverlappingOverload] + def __eq__(self, other: Timestamp | datetime | np.datetime64) -> bool: ... # type: ignore[overload-overlap] # pyright: ignore[reportOverlappingOverload] @overload def __eq__(self, other: TimestampSeries) -> Series[bool]: ... # type: ignore[overload-overlap] @overload @@ -230,7 +221,7 @@ class Timestamp(datetime): @overload def __eq__(self, other: object) -> Literal[False]: ... @overload - def __ne__(self, other: datetime | np.datetime64) -> bool: ... # type: ignore[overload-overlap] # pyright: ignore[reportOverlappingOverload] + def __ne__(self, other: Timestamp | datetime | np.datetime64) -> bool: ... # type: ignore[overload-overlap] # pyright: ignore[reportOverlappingOverload] @overload def __ne__(self, other: TimestampSeries) -> Series[bool]: ... # type: ignore[overload-overlap] @overload diff --git a/pandas-stubs/core/indexes/datetimes.pyi b/pandas-stubs/core/indexes/datetimes.pyi index 2c06208b..cfbfd51f 100644 --- a/pandas-stubs/core/indexes/datetimes.pyi +++ b/pandas-stubs/core/indexes/datetimes.pyi @@ -16,6 +16,7 @@ import numpy as np from pandas import ( DataFrame, Index, + Timedelta, TimedeltaIndex, Timestamp, ) @@ -90,7 +91,7 @@ def date_range( start: str | DateAndDatetimeLike | None = ..., end: str | DateAndDatetimeLike | None = ..., periods: int | None = ..., - freq: str | timedelta | BaseOffset = ..., + freq: str | timedelta | Timedelta | BaseOffset = ..., tz: str | tzinfo = ..., normalize: bool = ..., name: Hashable | None = ..., @@ -102,7 +103,7 @@ def bdate_range( start: str | DateAndDatetimeLike | None = ..., end: str | DateAndDatetimeLike | None = ..., periods: int | None = ..., - freq: str | timedelta | BaseOffset = ..., + freq: str | timedelta | Timedelta | BaseOffset = ..., tz: str | tzinfo = ..., normalize: bool = ..., name: Hashable | None = ..., @@ -116,7 +117,7 @@ def bdate_range( end: str | DateAndDatetimeLike | None = ..., periods: int | None = ..., *, - freq: str | timedelta | BaseOffset, + freq: str | timedelta | Timedelta | BaseOffset, tz: str | tzinfo = ..., normalize: bool = ..., name: Hashable | None = ..., diff --git a/pandas-stubs/core/indexes/timedeltas.pyi b/pandas-stubs/core/indexes/timedeltas.pyi index e11edab2..31f088cb 100644 --- a/pandas-stubs/core/indexes/timedeltas.pyi +++ b/pandas-stubs/core/indexes/timedeltas.pyi @@ -34,7 +34,7 @@ class TimedeltaIndex(DatetimeTimedeltaMixin[Timedelta], TimedeltaIndexProperties cls, data: AnyArrayLike | list[str] - | Sequence[dt.timedelta | np.timedelta64 | float] = ..., + | Sequence[dt.timedelta | Timedelta | np.timedelta64 | float] = ..., unit: Literal["D", "h", "m", "s", "ms", "us", "ns"] = ..., freq: str | BaseOffset = ..., closed: object = ..., @@ -79,7 +79,7 @@ def timedelta_range( start: TimedeltaConvertibleTypes = ..., end: TimedeltaConvertibleTypes = ..., periods: int | None = ..., - freq: str | DateOffset | dt.timedelta | None = ..., + freq: str | DateOffset | Timedelta | dt.timedelta | None = ..., name: Hashable | None = ..., closed: Literal["left", "right"] | None = ..., ) -> TimedeltaIndex: ... diff --git a/pandas-stubs/core/series.pyi b/pandas-stubs/core/series.pyi index 2393b7f3..c0a2b2d4 100644 --- a/pandas-stubs/core/series.pyi +++ b/pandas-stubs/core/series.pyi @@ -1538,15 +1538,17 @@ class Series(IndexOpsMixin[S1], NDFrame): @overload def __sub__( self: Series[Timestamp], - other: timedelta | TimedeltaSeries | TimedeltaIndex | np.timedelta64, + other: Timedelta | TimedeltaSeries | TimedeltaIndex | np.timedelta64, ) -> TimestampSeries: ... @overload def __sub__( self: Series[Timedelta], - other: timedelta | TimedeltaSeries | TimedeltaIndex | np.timedelta64, + other: Timedelta | TimedeltaSeries | TimedeltaIndex | np.timedelta64, ) -> TimedeltaSeries: ... @overload - def __sub__(self, other: datetime | TimestampSeries) -> TimedeltaSeries: ... + def __sub__( + self, other: Timestamp | datetime | TimestampSeries + ) -> TimedeltaSeries: ... @overload def __sub__(self, other: num | _ListLike | Series) -> Series: ... def __truediv__(self, other: num | _ListLike | Series[S1]) -> Series: ... @@ -1999,7 +2001,9 @@ class TimestampSeries(Series[Timestamp]): def __add__(self, other: TimedeltaSeries | np.timedelta64 | timedelta) -> TimestampSeries: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] def __radd__(self, other: TimedeltaSeries | np.timedelta64 | timedelta) -> TimestampSeries: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] @overload # type: ignore[override] - def __sub__(self, other: datetime | TimestampSeries) -> TimedeltaSeries: ... + def __sub__( + self, other: Timestamp | datetime | TimestampSeries + ) -> TimedeltaSeries: ... @overload def __sub__( # pyright: ignore[reportIncompatibleMethodOverride] self,