diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index d5c2791f7..df37abb0c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -3,7 +3,7 @@ ci: autofix_prs: false repos: - repo: https://github.com/python/black - rev: 23.9.1 + rev: 23.10.0 hooks: - id: black - repo: https://github.com/PyCQA/isort @@ -11,7 +11,7 @@ repos: hooks: - id: isort - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.0.292 + rev: v0.1.1 hooks: - id: ruff args: [ diff --git a/pandas-stubs/_libs/tslibs/timedeltas.pyi b/pandas-stubs/_libs/tslibs/timedeltas.pyi index 457c587f6..11ae1b338 100644 --- a/pandas-stubs/_libs/tslibs/timedeltas.pyi +++ b/pandas-stubs/_libs/tslibs/timedeltas.pyi @@ -101,9 +101,11 @@ UnitChoices: TypeAlias = ( ) class Timedelta(timedelta): - min: ClassVar[Timedelta] - max: ClassVar[Timedelta] - resolution: ClassVar[Timedelta] + min: ClassVar[Timedelta] # pyright: ignore[reportIncompatibleVariableOverride] + max: ClassVar[Timedelta] # pyright: ignore[reportIncompatibleVariableOverride] + resolution: ClassVar[ # pyright: ignore[reportIncompatibleVariableOverride] + Timedelta + ] value: int def __new__( cls, diff --git a/pandas-stubs/_libs/tslibs/timestamps.pyi b/pandas-stubs/_libs/tslibs/timestamps.pyi index 8679c8163..970f89800 100644 --- a/pandas-stubs/_libs/tslibs/timestamps.pyi +++ b/pandas-stubs/_libs/tslibs/timestamps.pyi @@ -47,10 +47,12 @@ _Nonexistent: TypeAlias = ( ) class Timestamp(datetime): - min: ClassVar[Timestamp] - max: ClassVar[Timestamp] + min: ClassVar[Timestamp] # pyright: ignore[reportIncompatibleVariableOverride] + max: ClassVar[Timestamp] # pyright: ignore[reportIncompatibleVariableOverride] - resolution: ClassVar[Timedelta] + resolution: ClassVar[ # pyright: ignore[reportIncompatibleVariableOverride] + Timedelta + ] value: int def __new__( cls, @@ -117,7 +119,7 @@ class Timestamp(datetime): def utcnow(cls) -> Self: ... # error: Signature of "combine" incompatible with supertype "datetime" @classmethod - def combine(cls, date: _date, time: _time) -> datetime: ... # type: ignore[override] + def combine(cls, date: _date, time: _time) -> Self: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] @classmethod def fromisoformat(cls, date_string: str) -> Self: ... def strftime(self, format: str) -> str: ... @@ -132,7 +134,7 @@ class Timestamp(datetime): # Override since fold is more precise than datetime.replace(fold:int) # Here it is restricted to be 0 or 1 using a Literal # Violation of Liskov substitution principle - def replace( # type:ignore[override] + def replace( # type:ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] self, year: int | None = ..., month: int | None = ..., @@ -148,7 +150,7 @@ class Timestamp(datetime): def ctime(self) -> str: ... def isoformat(self, sep: str = ..., timespec: str = ...) -> str: ... @classmethod - def strptime(cls, date_string: Never, format: Never) -> Never: ... # type: ignore[override] + def strptime(cls, date_string: Never, format: Never) -> Never: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] def utcoffset(self) -> timedelta | None: ... def tzname(self) -> str | None: ... def dst(self) -> timedelta | None: ... @@ -207,7 +209,7 @@ class Timestamp(datetime): @overload def __sub__(self, other: TimedeltaSeries) -> TimestampSeries: ... @overload - def __sub__( + def __sub__( # pyright: ignore[reportIncompatibleMethodOverride] self, other: npt.NDArray[np.timedelta64] ) -> npt.NDArray[np.datetime64]: ... @overload diff --git a/pandas-stubs/core/arraylike.pyi b/pandas-stubs/core/arraylike.pyi index 08d47a123..998e5e5c3 100644 --- a/pandas-stubs/core/arraylike.pyi +++ b/pandas-stubs/core/arraylike.pyi @@ -7,8 +7,8 @@ from pandas._libs.ops_dispatch import ( ) class OpsMixin: - def __eq__(self, other: object) -> Self: ... # type: ignore[override] - def __ne__(self, other: object) -> Self: ... # type: ignore[override] + def __eq__(self, other: object) -> Self: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] + def __ne__(self, other: object) -> Self: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] def __lt__(self, other: Any) -> Self: ... def __le__(self, other: Any) -> Self: ... def __gt__(self, other: Any) -> Self: ... diff --git a/pandas-stubs/core/arrays/boolean.pyi b/pandas-stubs/core/arrays/boolean.pyi index 2244d7628..3aff8212c 100644 --- a/pandas-stubs/core/arrays/boolean.pyi +++ b/pandas-stubs/core/arrays/boolean.pyi @@ -1,5 +1,3 @@ -from typing import ClassVar - import numpy as np from pandas.core.arrays.masked import BaseMaskedArray as BaseMaskedArray @@ -9,7 +7,8 @@ from pandas._typing import type_t from pandas.core.dtypes.base import ExtensionDtype as ExtensionDtype class BooleanDtype(ExtensionDtype): - na_value: ClassVar[NAType] + @property + def na_value(self) -> NAType: ... @classmethod def construct_array_type(cls) -> type_t[BooleanArray]: ... diff --git a/pandas-stubs/core/arrays/datetimelike.pyi b/pandas-stubs/core/arrays/datetimelike.pyi index 889193aae..b5b5dba76 100644 --- a/pandas-stubs/core/arrays/datetimelike.pyi +++ b/pandas-stubs/core/arrays/datetimelike.pyi @@ -5,13 +5,11 @@ from pandas.core.arrays.base import ( ExtensionArray, ExtensionOpsMixin, ) -from typing_extensions import Self from pandas._libs import ( NaT as NaT, NaTType as NaTType, ) -from pandas._typing import TakeIndexer class DatelikeOps: def strftime(self, date_format): ... @@ -38,13 +36,12 @@ class DatetimeLikeArrayMixin(ExtensionOpsMixin, ExtensionArray): def size(self) -> int: ... def __len__(self) -> int: ... def __getitem__(self, key): ... - def __setitem__(self, key: int | Sequence[int] | Sequence[bool] | slice, value) -> None: ... # type: ignore[override] + def __setitem__( # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] + self, key: int | Sequence[int] | Sequence[bool] | slice, value + ) -> None: ... def astype(self, dtype, copy: bool = ...): ... def view(self, dtype=...): ... def unique(self): ... - def take( - self: Self, indices: TakeIndexer, *, allow_fill: bool = ..., fill_value=... - ) -> Self: ... def copy(self): ... def shift(self, periods: int = ..., fill_value=..., axis: int = ...): ... def searchsorted(self, value, side: str = ..., sorter=...): ... diff --git a/pandas-stubs/core/arrays/datetimes.pyi b/pandas-stubs/core/arrays/datetimes.pyi index 9e1ccc09c..5afcb6898 100644 --- a/pandas-stubs/core/arrays/datetimes.pyi +++ b/pandas-stubs/core/arrays/datetimes.pyi @@ -16,7 +16,7 @@ class DatetimeArray(DatetimeLikeArrayMixin, TimelikeOps, DatelikeOps): def __init__(self, values, dtype=..., freq=..., copy: bool = ...) -> None: ... # ignore in dtype() is from the pandas source @property - def dtype(self) -> np.dtype | DatetimeTZDtype: ... # type: ignore[override] + def dtype(self) -> np.dtype | DatetimeTZDtype: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] @property def tz(self): ... @tz.setter diff --git a/pandas-stubs/core/arrays/integer.pyi b/pandas-stubs/core/arrays/integer.pyi index 25e85be9e..7e74b8384 100644 --- a/pandas-stubs/core/arrays/integer.pyi +++ b/pandas-stubs/core/arrays/integer.pyi @@ -14,7 +14,8 @@ class _IntegerDtype(ExtensionDtype): def construct_array_type(cls) -> type[IntegerArray]: ... class IntegerArray(BaseMaskedArray): - def dtype(self): ... + @property + def dtype(self) -> _IntegerDtype: ... def __init__(self, values, mask, copy: bool = ...) -> None: ... def __array_ufunc__(self, ufunc, method, *inputs, **kwargs): ... def __setitem__(self, key, value) -> None: ... diff --git a/pandas-stubs/core/arrays/interval.pyi b/pandas-stubs/core/arrays/interval.pyi index eefa791ee..9f2ad55dd 100644 --- a/pandas-stubs/core/arrays/interval.pyi +++ b/pandas-stubs/core/arrays/interval.pyi @@ -20,7 +20,6 @@ from pandas._typing import ( ) class IntervalArray(IntervalMixin, ExtensionArray): - ndim: int = ... can_hold_na: bool = ... def __new__( cls, data, closed=..., dtype=..., copy: bool = ..., verify_integrity: bool = ... @@ -50,7 +49,7 @@ class IntervalArray(IntervalMixin, ExtensionArray): @property def size(self) -> int: ... def shift(self, periods: int = ..., fill_value: object = ...) -> IntervalArray: ... - def take( # type: ignore[override] + def take( # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] self: Self, indices: TakeIndexer, *, diff --git a/pandas-stubs/core/arrays/masked.pyi b/pandas-stubs/core/arrays/masked.pyi index 6276fff60..0ef41bc7a 100644 --- a/pandas-stubs/core/arrays/masked.pyi +++ b/pandas-stubs/core/arrays/masked.pyi @@ -6,7 +6,6 @@ from pandas.core.arrays import ( from pandas._typing import ( Scalar, - TakeIndexer, npt, ) @@ -27,8 +26,5 @@ class BaseMaskedArray(ExtensionArray, ExtensionOpsMixin): def isna(self): ... @property def nbytes(self) -> int: ... - def take( - self, indexer: TakeIndexer, allow_fill: bool = ..., fill_value=... - ) -> BaseMaskedArray: ... def copy(self): ... def value_counts(self, dropna: bool = ...): ... diff --git a/pandas-stubs/core/arrays/period.pyi b/pandas-stubs/core/arrays/period.pyi index 706cf605e..04e0d7680 100644 --- a/pandas-stubs/core/arrays/period.pyi +++ b/pandas-stubs/core/arrays/period.pyi @@ -1,20 +1,22 @@ from collections.abc import Sequence import numpy as np +from pandas import PeriodDtype from pandas.core.arrays.datetimelike import ( DatelikeOps, DatetimeLikeArrayMixin, ) from pandas._libs.tslibs import Timestamp -from pandas._libs.tslibs.period import Period as Period +from pandas._libs.tslibs.period import Period -from pandas.tseries.offsets import Tick as Tick +from pandas.tseries.offsets import Tick class PeriodArray(DatetimeLikeArrayMixin, DatelikeOps): __array_priority__: int = ... def __init__(self, values, freq=..., dtype=..., copy: bool = ...) -> None: ... - def dtype(self): ... + @property + def dtype(self) -> PeriodDtype: ... def __array__(self, dtype=...) -> np.ndarray: ... def __arrow_array__(self, type=...): ... year: int = ... diff --git a/pandas-stubs/core/arrays/sparse/array.pyi b/pandas-stubs/core/arrays/sparse/array.pyi index 2ecf26191..cff7b8a20 100644 --- a/pandas-stubs/core/arrays/sparse/array.pyi +++ b/pandas-stubs/core/arrays/sparse/array.pyi @@ -4,8 +4,6 @@ from pandas.core.arrays import ( ExtensionOpsMixin, ) -from pandas._typing import TakeIndexer - class SparseArray(ExtensionArray, ExtensionOpsMixin): def __init__( self, @@ -43,15 +41,8 @@ class SparseArray(ExtensionArray, ExtensionOpsMixin): def fillna(self, value=..., method=..., limit=...): ... def shift(self, periods: int = ..., fill_value=...): ... def unique(self): ... - def factorize( - self, na_sentinel: int = ..., use_na_sentinel: bool = ... - ) -> tuple[np.ndarray, SparseArray]: ... def value_counts(self, dropna: bool = ...): ... def __getitem__(self, key): ... - def take( - self, indices: TakeIndexer, *, allow_fill: bool = ..., fill_value=... - ) -> SparseArray: ... - def searchsorted(self, v, side: str = ..., sorter=...): ... def copy(self): ... def astype(self, dtype=..., copy: bool = ...): ... def map(self, mapper): ... diff --git a/pandas-stubs/core/computation/pytables.pyi b/pandas-stubs/core/computation/pytables.pyi index e8b5d24c0..47d526d4a 100644 --- a/pandas-stubs/core/computation/pytables.pyi +++ b/pandas-stubs/core/computation/pytables.pyi @@ -58,22 +58,18 @@ class FilterBinOp(BinOp): filter: tuple[Any, Any, Index] | None = ... def invert(self): ... def format(self): ... - def evaluate(self): ... def generate_filter_op(self, invert: bool = ...): ... class JointFilterBinOp(FilterBinOp): def format(self) -> None: ... - def evaluate(self): ... class ConditionBinOp(BinOp): def invert(self) -> None: ... def format(self): ... condition = ... - def evaluate(self): ... class JointConditionBinOp(ConditionBinOp): condition = ... - def evaluate(self): ... class UnaryOp(ops.UnaryOp): def prune(self, klass): ... diff --git a/pandas-stubs/core/generic.pyi b/pandas-stubs/core/generic.pyi index d6cd570c6..1d8b3aa43 100644 --- a/pandas-stubs/core/generic.pyi +++ b/pandas-stubs/core/generic.pyi @@ -54,7 +54,7 @@ _bool = bool _str = str class NDFrame(indexing.IndexingMixin): - __hash__: ClassVar[None] # type: ignore[assignment] + __hash__: ClassVar[None] # type: ignore[assignment] # pyright: ignore[reportIncompatibleMethodOverride] def set_flags( self, diff --git a/pandas-stubs/core/indexes/base.pyi b/pandas-stubs/core/indexes/base.pyi index 35fbeec43..c3902ccec 100644 --- a/pandas-stubs/core/indexes/base.pyi +++ b/pandas-stubs/core/indexes/base.pyi @@ -317,7 +317,7 @@ class Index(IndexOpsMixin[S1]): def is_mixed(self) -> bool: ... def holds_integer(self): ... @property - def inferred_type(self): ... + def inferred_type(self) -> _str: ... def __reduce__(self): ... @property def hasnans(self) -> bool: ... @@ -412,13 +412,13 @@ class Index(IndexOpsMixin[S1]): @property def shape(self) -> tuple[int, ...]: ... # Extra methods from old stubs - def __eq__(self, other: object) -> np_ndarray_bool: ... # type: ignore[override] + def __eq__(self, other: object) -> np_ndarray_bool: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] def __iter__(self) -> Iterator[S1]: ... - def __ne__(self, other: object) -> np_ndarray_bool: ... # type: ignore[override] - def __le__(self, other: Self | S1) -> np_ndarray_bool: ... # type: ignore[override] - def __ge__(self, other: Self | S1) -> np_ndarray_bool: ... # type: ignore[override] - def __lt__(self, other: Self | S1) -> np_ndarray_bool: ... # type: ignore[override] - def __gt__(self, other: Self | S1) -> np_ndarray_bool: ... # type: ignore[override] + def __ne__(self, other: object) -> np_ndarray_bool: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] + def __le__(self, other: Self | S1) -> np_ndarray_bool: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] + def __ge__(self, other: Self | S1) -> np_ndarray_bool: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] + def __lt__(self, other: Self | S1) -> np_ndarray_bool: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] + def __gt__(self, other: Self | S1) -> np_ndarray_bool: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] # overwrite inherited methods from OpsMixin @overload def __mul__( # type: ignore[misc] diff --git a/pandas-stubs/core/indexes/category.pyi b/pandas-stubs/core/indexes/category.pyi index 59dcbf185..a8ba4d0d3 100644 --- a/pandas-stubs/core/indexes/category.pyi +++ b/pandas-stubs/core/indexes/category.pyi @@ -41,13 +41,10 @@ class CategoricalIndex(ExtensionIndex[S1], accessor.PandasDelegate): def is_monotonic_decreasing(self) -> bool: ... def unique(self, level=...): ... def duplicated(self, keep: Literal["first", "last", False] = ...): ... - def get_loc(self, key): ... - def get_value(self, seriesArrayLike, key): ... def where(self, cond, other=...): ... def reindex(self, target, method=..., level=..., limit=..., tolerance=...): ... def get_indexer(self, target, method=..., limit=..., tolerance=...): ... def get_indexer_non_unique(self, target): ... def take_nd(self, *args, **kwargs): ... - def map(self, mapper): ... def delete(self, loc): ... def insert(self, loc, item): ... diff --git a/pandas-stubs/core/indexes/datetimelike.pyi b/pandas-stubs/core/indexes/datetimelike.pyi index 6e808f900..5b138b744 100644 --- a/pandas-stubs/core/indexes/datetimelike.pyi +++ b/pandas-stubs/core/indexes/datetimelike.pyi @@ -15,7 +15,7 @@ class DatetimeIndexOpsMixin(ExtensionIndex[S1]): def argmin(self, axis=..., skipna: bool = ..., *args, **kwargs): ... def max(self, axis=..., skipna: bool = ..., *args, **kwargs): ... def argmax(self, axis=..., skipna: bool = ..., *args, **kwargs): ... - def __rsub__( # type: ignore[override] + def __rsub__( # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] self, other: DatetimeIndexOpsMixin ) -> TimedeltaIndex: ... diff --git a/pandas-stubs/core/indexes/datetimes.pyi b/pandas-stubs/core/indexes/datetimes.pyi index 9ece274a9..43ee557c7 100644 --- a/pandas-stubs/core/indexes/datetimes.pyi +++ b/pandas-stubs/core/indexes/datetimes.pyi @@ -66,15 +66,11 @@ class DatetimeIndex(DatetimeTimedeltaMixin[Timestamp], DatetimeIndexProperties): def __sub__(self, other: Timedelta | TimedeltaIndex) -> DatetimeIndex: ... @overload def __sub__(self, other: Timestamp | DatetimeIndex) -> TimedeltaIndex: ... - # overload needed because Index.to_series() and DatetimeIndex.to_series() have - # different arguments - def to_series(self, keep_tz=..., index=..., name=...) -> TimestampSeries: ... # type: ignore[override] + def to_series(self, index=..., name=...) -> TimestampSeries: ... def snap(self, freq: str = ...): ... def get_value(self, series, key): ... - def get_loc(self, key, tolerance=...): ... def slice_indexer(self, start=..., end=..., step=...): ... def searchsorted(self, value, side: str = ..., sorter=...): ... - def is_type_compatible(self, typ) -> bool: ... @property def inferred_type(self) -> str: ... def insert(self, loc, item): ... diff --git a/pandas-stubs/core/indexes/frozen.pyi b/pandas-stubs/core/indexes/frozen.pyi index 5cebf3ea2..be7269591 100644 --- a/pandas-stubs/core/indexes/frozen.pyi +++ b/pandas-stubs/core/indexes/frozen.pyi @@ -6,4 +6,4 @@ class FrozenList(list): def __eq__(self, other) -> bool: ... def __mul__(self, other): ... def __reduce__(self): ... - def __hash__(self) -> int: ... # type: ignore[override] + def __hash__(self) -> int: ... # type: ignore[override] # pyright: ignore[reportIncompatibleVariableOverride] diff --git a/pandas-stubs/core/indexes/interval.pyi b/pandas-stubs/core/indexes/interval.pyi index 6b45ebca0..fe066bbb9 100644 --- a/pandas-stubs/core/indexes/interval.pyi +++ b/pandas-stubs/core/indexes/interval.pyi @@ -259,7 +259,9 @@ class IntervalIndex(ExtensionIndex[IntervalT], IntervalMixin): | np_ndarray_bool, ) -> IntervalIndex[IntervalT]: ... @overload - def __getitem__(self, idx: int) -> IntervalT: ... + def __getitem__( # pyright: ignore[reportIncompatibleMethodOverride] + self, idx: int + ) -> IntervalT: ... @property def is_all_dates(self) -> bool: ... @overload # type: ignore[override] @@ -291,13 +293,17 @@ class IntervalIndex(ExtensionIndex[IntervalT], IntervalMixin): @overload def __eq__(self, other: pd.Series[IntervalT]) -> pd.Series[bool]: ... # type: ignore[misc] @overload - def __eq__(self, other: object) -> Literal[False]: ... + def __eq__( # pyright: ignore[reportIncompatibleMethodOverride] + self, other: object + ) -> Literal[False]: ... @overload # type: ignore[override] def __ne__(self, other: IntervalT | IntervalIndex[IntervalT]) -> np_ndarray_bool: ... # type: ignore[misc] # pyright: ignore[reportOverlappingOverload] @overload def __ne__(self, other: pd.Series[IntervalT]) -> pd.Series[bool]: ... # type: ignore[misc] @overload - def __ne__(self, other: object) -> Literal[True]: ... + def __ne__( # pyright: ignore[reportIncompatibleMethodOverride] + self, other: object + ) -> Literal[True]: ... # misc here because int and float overlap but interval has distinct types # int gets hit first and so the correct type is returned diff --git a/pandas-stubs/core/indexes/multi.pyi b/pandas-stubs/core/indexes/multi.pyi index 7f82d0d95..08f221dc6 100644 --- a/pandas-stubs/core/indexes/multi.pyi +++ b/pandas-stubs/core/indexes/multi.pyi @@ -63,7 +63,9 @@ class MultiIndex(Index[Any]): @property def codes(self): ... def set_codes(self, codes, *, level=..., verify_integrity: bool = ...): ... - def copy(self, names=..., deep: bool = ...) -> Self: ... + def copy( # pyright: ignore[reportIncompatibleMethodOverride] + self, names=..., deep: bool = ... + ) -> Self: ... def __array__(self, dtype=...) -> np.ndarray: ... def view(self, cls=...): ... def __contains__(self, key) -> bool: ... @@ -85,7 +87,6 @@ class MultiIndex(Index[Any]): adjoin: bool = ..., ) -> list: ... def __len__(self) -> int: ... - def inferred_type(self) -> str: ... @property def values(self): ... @property @@ -133,7 +134,7 @@ class MultiIndex(Index[Any]): def argsort(self, *args, **kwargs): ... def repeat(self, repeats, axis=...): ... def where(self, cond, other=...) -> None: ... - def drop(self, codes, level=..., errors: str = ...) -> Self: ... # type: ignore[override] + def drop(self, codes, level=..., errors: str = ...) -> Self: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] def swaplevel(self, i: int = ..., j: int = ...): ... def reorder_levels(self, order): ... def sortlevel( @@ -146,7 +147,6 @@ class MultiIndex(Index[Any]): self, label: Hashable | Sequence[Hashable], side: str ) -> int: ... def slice_locs(self, start=..., end=..., step=...): ... - def get_loc(self, key): ... def get_loc_level(self, key, level=..., drop_level: bool = ...): ... def get_locs(self, seq): ... def truncate(self, before=..., after=...): ... diff --git a/pandas-stubs/core/indexes/period.pyi b/pandas-stubs/core/indexes/period.pyi index 778778391..5965c96a1 100644 --- a/pandas-stubs/core/indexes/period.pyi +++ b/pandas-stubs/core/indexes/period.pyi @@ -47,7 +47,9 @@ class PeriodIndex(DatetimeIndexOpsMixin[pd.Period], PeriodIndexFieldOps): @overload def __rsub__(self, other: Self) -> Index: ... @overload - def __rsub__(self, other: NaTType) -> NaTType: ... + def __rsub__( # pyright: ignore[reportIncompatibleMethodOverride] + self, other: NaTType + ) -> NaTType: ... def __array__(self, dtype=...) -> np.ndarray: ... def __array_wrap__(self, result, context=...): ... def asof_locs(self, where, mask): ... @@ -60,7 +62,6 @@ class PeriodIndex(DatetimeIndexOpsMixin[pd.Period], PeriodIndexFieldOps): def get_value(self, series, key): ... def get_indexer(self, target, method=..., limit=..., tolerance=...): ... def get_indexer_non_unique(self, target): ... - def get_loc(self, key, tolerance=...): ... def insert(self, loc, item): ... def join( self, @@ -71,7 +72,6 @@ class PeriodIndex(DatetimeIndexOpsMixin[pd.Period], PeriodIndexFieldOps): return_indexers: bool = ..., sort: bool = ..., ): ... - def intersection(self, other, sort: bool = ...): ... def difference(self, other, sort=...): ... def memory_usage(self, deep: bool = ...): ... @property diff --git a/pandas-stubs/core/indexes/range.pyi b/pandas-stubs/core/indexes/range.pyi index 209b07d8c..0b739eaa4 100644 --- a/pandas-stubs/core/indexes/range.pyi +++ b/pandas-stubs/core/indexes/range.pyi @@ -51,7 +51,6 @@ class RangeIndex(Index[int]): @property def has_duplicates(self) -> bool: ... def __contains__(self, key: int | np.integer) -> bool: ... - def get_loc(self, key, tolerance=...): ... def get_indexer(self, target, method=..., limit=..., tolerance=...): ... def tolist(self): ... def copy(self, name=..., deep: bool = ..., dtype=..., **kwargs): ... @@ -62,7 +61,6 @@ class RangeIndex(Index[int]): self, sort: bool = ..., use_na_sentinel: bool = ... ) -> tuple[npt.NDArray[np.intp], RangeIndex]: ... def equals(self, other): ... - def intersection(self, other, sort: bool = ...): ... def join( self, other, @@ -93,4 +91,6 @@ class RangeIndex(Index[int]): | np_ndarray_bool, ) -> Index: ... @overload - def __getitem__(self, idx: int) -> int: ... + def __getitem__( # pyright: ignore[reportIncompatibleMethodOverride] + self, idx: int + ) -> int: ... diff --git a/pandas-stubs/core/indexes/timedeltas.pyi b/pandas-stubs/core/indexes/timedeltas.pyi index 4cdf732c9..e97824395 100644 --- a/pandas-stubs/core/indexes/timedeltas.pyi +++ b/pandas-stubs/core/indexes/timedeltas.pyi @@ -53,26 +53,25 @@ class TimedeltaIndex(DatetimeTimedeltaMixin[Timedelta], TimedeltaIndexProperties def __add__(self, other: DatetimeIndex) -> DatetimeIndex: ... @overload def __add__(self, other: Timedelta | Self) -> Self: ... - def __radd__(self, other: Timestamp | DatetimeIndex) -> DatetimeIndex: ... # type: ignore[override] + def __radd__(self, other: Timestamp | DatetimeIndex) -> DatetimeIndex: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] def __sub__(self, other: Timedelta | Self) -> Self: ... def __mul__(self, other: num) -> Self: ... @overload # type: ignore[override] def __truediv__(self, other: num | Sequence[float]) -> Self: ... @overload - def __truediv__( + def __truediv__( # pyright: ignore[reportIncompatibleMethodOverride] self, other: dt.timedelta | Sequence[dt.timedelta] ) -> Index[float]: ... - def __rtruediv__(self, other: dt.timedelta | Sequence[dt.timedelta]) -> Index[float]: ... # type: ignore[override] + def __rtruediv__(self, other: dt.timedelta | Sequence[dt.timedelta]) -> Index[float]: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] @overload # type: ignore[override] def __floordiv__(self, other: num | Sequence[float]) -> Self: ... @overload - def __floordiv__( + def __floordiv__( # pyright: ignore[reportIncompatibleMethodOverride] self, other: dt.timedelta | Sequence[dt.timedelta] ) -> Index[int]: ... - def __rfloordiv__(self, other: dt.timedelta | Sequence[dt.timedelta]) -> Index[int]: ... # type: ignore[override] + def __rfloordiv__(self, other: dt.timedelta | Sequence[dt.timedelta]) -> Index[int]: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] def astype(self, dtype, copy: bool = ...): ... def get_value(self, series, key): ... - def get_loc(self, key, tolerance=...): ... def searchsorted(self, value, side: str = ..., sorter=...): ... @property def inferred_type(self) -> str: ... diff --git a/pandas-stubs/core/series.pyi b/pandas-stubs/core/series.pyi index 422657620..6b9ef7216 100644 --- a/pandas-stubs/core/series.pyi +++ b/pandas-stubs/core/series.pyi @@ -1445,7 +1445,7 @@ class Series(IndexOpsMixin[S1], NDFrame): ) -> Series[int]: ... def transpose(self, *args, **kwargs) -> Series[S1]: ... @property - def T(self) -> Series[S1]: ... + def T(self) -> Self: ... # The rest of these were left over from the old # stubs we shipped in preview. They may belong in # the base classes in some cases; I expect stubgen @@ -1463,21 +1463,23 @@ class Series(IndexOpsMixin[S1], NDFrame): self, other: bool | list[bool] | list[int] | np_ndarray_bool | Series[bool] ) -> Series[bool]: ... @overload - def __and__(self, other: int | np_ndarray_anyint | Series[int]) -> Series[int]: ... + def __and__( # pyright: ignore[reportIncompatibleMethodOverride] + self, other: int | np_ndarray_anyint | Series[int] + ) -> Series[int]: ... # def __array__(self, dtype: Optional[_bool] = ...) -> _np_ndarray def __div__(self, other: num | _ListLike | Series[S1]) -> Series[S1]: ... - def __eq__(self, other: object) -> Series[_bool]: ... # type: ignore[override] + def __eq__(self, other: object) -> Series[_bool]: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] def __floordiv__(self, other: num | _ListLike | Series[S1]) -> Series[int]: ... - def __ge__( # type: ignore[override] + def __ge__( # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] self, other: S1 | _ListLike | Series[S1] | datetime | timedelta ) -> Series[_bool]: ... - def __gt__( # type: ignore[override] + def __gt__( # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] self, other: S1 | _ListLike | Series[S1] | datetime | timedelta ) -> Series[_bool]: ... - def __le__( # type: ignore[override] + def __le__( # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] self, other: S1 | _ListLike | Series[S1] | datetime | timedelta ) -> Series[_bool]: ... - def __lt__( # type: ignore[override] + def __lt__( # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] self, other: S1 | _ListLike | Series[S1] | datetime | timedelta ) -> Series[_bool]: ... @overload @@ -1487,7 +1489,7 @@ class Series(IndexOpsMixin[S1], NDFrame): @overload def __mul__(self, other: num | _ListLike | Series) -> Series: ... def __mod__(self, other: num | _ListLike | Series[S1]) -> Series[S1]: ... - def __ne__(self, other: object) -> Series[_bool]: ... # type: ignore[override] + def __ne__(self, other: object) -> Series[_bool]: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] def __pow__(self, other: num | _ListLike | Series[S1]) -> Series[S1]: ... # ignore needed for mypy as we want different results based on the arguments @overload # type: ignore[override] @@ -1495,7 +1497,9 @@ class Series(IndexOpsMixin[S1], NDFrame): self, other: bool | list[bool] | list[int] | np_ndarray_bool | Series[bool] ) -> Series[bool]: ... @overload - def __or__(self, other: int | np_ndarray_anyint | Series[int]) -> Series[int]: ... + def __or__( # pyright: ignore[reportIncompatibleMethodOverride] + self, other: int | np_ndarray_anyint | Series[int] + ) -> Series[int]: ... @overload def __radd__(self, other: S1 | Series[S1]) -> Self: ... @overload @@ -1506,9 +1510,9 @@ class Series(IndexOpsMixin[S1], NDFrame): self, other: bool | list[bool] | list[int] | np_ndarray_bool | Series[bool] ) -> Series[bool]: ... @overload - def __rand__(self, other: int | np_ndarray_anyint | Series[int]) -> Series[int]: ... # type: ignore[misc] + def __rand__(self, other: int | np_ndarray_anyint | Series[int]) -> Series[int]: ... # type: ignore[misc] # pyright: ignore[reportIncompatibleMethodOverride] def __rdiv__(self, other: num | _ListLike | Series[S1]) -> Series[S1]: ... - def __rdivmod__(self, other: num | _ListLike | Series[S1]) -> Series[S1]: ... # type: ignore[override] + def __rdivmod__(self, other: num | _ListLike | Series[S1]) -> Series[S1]: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] def __rfloordiv__(self, other: num | _ListLike | Series[S1]) -> Series[S1]: ... def __rmod__(self, other: num | _ListLike | Series[S1]) -> Series[S1]: ... def __rmul__(self, other: num | _ListLike | Series) -> Series: ... @@ -1520,7 +1524,7 @@ class Series(IndexOpsMixin[S1], NDFrame): self, other: bool | list[bool] | list[int] | np_ndarray_bool | Series[bool] ) -> Series[bool]: ... @overload - def __ror__(self, other: int | np_ndarray_anyint | Series[int]) -> Series[int]: ... # type: ignore[misc] + def __ror__(self, other: int | np_ndarray_anyint | Series[int]) -> Series[int]: ... # type: ignore[misc] # pyright: ignore[reportIncompatibleMethodOverride] def __rsub__(self, other: num | _ListLike | Series[S1]) -> Series: ... def __rtruediv__(self, other: num | _ListLike | Series[S1]) -> Series: ... # ignore needed for mypy as we want different results based on the arguments @@ -1529,7 +1533,7 @@ class Series(IndexOpsMixin[S1], NDFrame): self, other: bool | list[bool] | list[int] | np_ndarray_bool | Series[bool] ) -> Series[bool]: ... @overload - def __rxor__(self, other: int | np_ndarray_anyint | Series[int]) -> Series[int]: ... # type: ignore[misc] + def __rxor__(self, other: int | np_ndarray_anyint | Series[int]) -> Series[int]: ... # type: ignore[misc] # pyright: ignore[reportIncompatibleMethodOverride] @overload def __sub__( self: Series[Timestamp], @@ -1553,7 +1557,9 @@ class Series(IndexOpsMixin[S1], NDFrame): self, other: bool | list[bool] | list[int] | np_ndarray_bool | Series[bool] ) -> Series[bool]: ... @overload - def __xor__(self, other: int | np_ndarray_anyint | Series[int]) -> Series[int]: ... + def __xor__( # pyright: ignore[reportIncompatibleMethodOverride] + self, other: int | np_ndarray_anyint | Series[int] + ) -> Series[int]: ... def __invert__(self) -> Series[bool]: ... # properties # @property @@ -1989,23 +1995,22 @@ class Series(IndexOpsMixin[S1], NDFrame): ) -> Self: ... class TimestampSeries(Series[Timestamp]): - # ignore needed because of mypy @property - def dt(self) -> TimestampProperties: ... # type: ignore[override] - def __add__(self, other: TimedeltaSeries | np.timedelta64 | timedelta) -> TimestampSeries: ... # type: ignore[override] - def __radd__(self, other: TimedeltaSeries | np.timedelta64 | timedelta) -> TimestampSeries: ... # type: ignore[override] + def dt(self) -> TimestampProperties: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] + 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: Timestamp | datetime | TimestampSeries ) -> TimedeltaSeries: ... @overload - def __sub__( + def __sub__( # pyright: ignore[reportIncompatibleMethodOverride] self, other: timedelta | TimedeltaSeries | TimedeltaIndex | np.timedelta64, ) -> TimestampSeries: ... - def __mul__(self, other: float | Series[int] | Series[float] | Sequence[float]) -> TimestampSeries: ... # type: ignore[override] - def __truediv__(self, other: float | Series[int] | Series[float] | Sequence[float]) -> TimestampSeries: ... # type: ignore[override] - def mean( # type: ignore[override] + def __mul__(self, other: float | Series[int] | Series[float] | Sequence[float]) -> TimestampSeries: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] + def __truediv__(self, other: float | Series[int] | Series[float] | Sequence[float]) -> TimestampSeries: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] + def mean( # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] self, axis: AxisIndex | None = ..., skipna: _bool = ..., @@ -2013,7 +2018,7 @@ class TimestampSeries(Series[Timestamp]): numeric_only: _bool = ..., **kwargs, ) -> Timestamp: ... - def median( # type: ignore[override] + def median( # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] self, axis: AxisIndex | None = ..., skipna: _bool = ..., @@ -2021,7 +2026,7 @@ class TimestampSeries(Series[Timestamp]): numeric_only: _bool = ..., **kwargs, ) -> Timestamp: ... - def std( # type: ignore[override] + def std( # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] self, axis: AxisIndex | None = ..., skipna: _bool | None = ..., @@ -2040,18 +2045,20 @@ class TimedeltaSeries(Series[Timedelta]): self, other: Timestamp | TimestampSeries | DatetimeIndex ) -> TimestampSeries: ... @overload - def __add__(self, other: Timedelta | np.timedelta64) -> TimedeltaSeries: ... - def __radd__(self, other: Timestamp | TimestampSeries) -> TimestampSeries: ... # type: ignore[override] - def __mul__( # type: ignore[override] + def __add__( # pyright: ignore[reportIncompatibleMethodOverride] + self, other: Timedelta | np.timedelta64 + ) -> TimedeltaSeries: ... + def __radd__(self, other: Timestamp | TimestampSeries) -> TimestampSeries: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] + def __mul__( # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] self, other: num | Sequence[num] | Series[int] | Series[float] ) -> TimedeltaSeries: ... - def __sub__( # type: ignore[override] + def __sub__( # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] self, other: Timedelta | TimedeltaSeries | TimedeltaIndex | np.timedelta64 ) -> TimedeltaSeries: ... @overload # type: ignore[override] def __truediv__(self, other: float | Sequence[float]) -> Self: ... @overload - def __truediv__( + def __truediv__( # pyright: ignore[reportIncompatibleMethodOverride] self, other: timedelta | TimedeltaSeries @@ -2059,7 +2066,7 @@ class TimedeltaSeries(Series[Timedelta]): | TimedeltaIndex | Sequence[timedelta], ) -> Series[float]: ... - def __rtruediv__( # type: ignore[override] + def __rtruediv__( # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] self, other: timedelta | TimedeltaSeries @@ -2070,7 +2077,7 @@ class TimedeltaSeries(Series[Timedelta]): @overload # type: ignore[override] def __floordiv__(self, other: float | Sequence[float]) -> Self: ... @overload - def __floordiv__( + def __floordiv__( # pyright: ignore[reportIncompatibleMethodOverride] self, other: timedelta | TimedeltaSeries @@ -2078,7 +2085,7 @@ class TimedeltaSeries(Series[Timedelta]): | TimedeltaIndex | Sequence[timedelta], ) -> Series[int]: ... - def __rfloordiv__( # type: ignore[override] + def __rfloordiv__( # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] self, other: timedelta | TimedeltaSeries @@ -2087,8 +2094,8 @@ class TimedeltaSeries(Series[Timedelta]): | Sequence[timedelta], ) -> Series[int]: ... @property - def dt(self) -> TimedeltaProperties: ... # type: ignore[override] - def mean( # type: ignore[override] + def dt(self) -> TimedeltaProperties: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] + def mean( # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] self, axis: AxisIndex | None = ..., skipna: _bool = ..., @@ -2096,7 +2103,7 @@ class TimedeltaSeries(Series[Timedelta]): numeric_only: _bool = ..., **kwargs, ) -> Timedelta: ... - def median( # type: ignore[override] + def median( # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] self, axis: AxisIndex | None = ..., skipna: _bool = ..., @@ -2104,7 +2111,7 @@ class TimedeltaSeries(Series[Timedelta]): numeric_only: _bool = ..., **kwargs, ) -> Timedelta: ... - def std( # type: ignore[override] + def std( # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] self, axis: AxisIndex | None = ..., skipna: _bool | None = ..., @@ -2115,16 +2122,17 @@ class TimedeltaSeries(Series[Timedelta]): ) -> Timedelta: ... class PeriodSeries(Series[Period]): - # ignore needed because of mypy @property - def dt(self) -> PeriodProperties: ... # type: ignore[override] - def __sub__(self, other: PeriodSeries) -> OffsetSeries: ... # type: ignore[override] + def dt(self) -> PeriodProperties: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] + def __sub__(self, other: PeriodSeries) -> OffsetSeries: ... # type: ignore[override] # pyright: ignore[reportIncompatibleMethodOverride] class OffsetSeries(Series): @overload # type: ignore[override] def __radd__(self, other: Period) -> PeriodSeries: ... @overload - def __radd__(self, other: BaseOffset) -> OffsetSeries: ... + def __radd__( # pyright: ignore[reportIncompatibleMethodOverride] + self, other: BaseOffset + ) -> OffsetSeries: ... class IntervalSeries(Series[Interval[_OrderableT]], Generic[_OrderableT]): @property diff --git a/pandas-stubs/core/window/ewm.pyi b/pandas-stubs/core/window/ewm.pyi index af806177b..548464021 100644 --- a/pandas-stubs/core/window/ewm.pyi +++ b/pandas-stubs/core/window/ewm.pyi @@ -1,8 +1,4 @@ -from typing import ( - Any, - Generic, - overload, -) +from typing import Generic import numpy as np from pandas import ( @@ -12,9 +8,6 @@ from pandas import ( from pandas.core.window.rolling import BaseWindow from pandas._typing import ( - AggFuncTypeBase, - AggFuncTypeFrame, - AggFuncTypeSeriesToFrame, Axis, CalculationMethod, NDFrameT, @@ -38,27 +31,6 @@ class ExponentialMovingWindow(BaseWindow[NDFrameT], Generic[NDFrameT]): times: str | np.ndarray | Series | None | np.timedelta64 = ..., method: CalculationMethod = ..., ) -> None: ... - @overload - def aggregate( - self: ExponentialMovingWindow[Series], - func: AggFuncTypeBase, - *args: Any, - **kwargs: Any, - ) -> Series: ... - @overload - def aggregate( - self: ExponentialMovingWindow[Series], - func: AggFuncTypeSeriesToFrame, - *args: Any, - **kwargs: Any, - ) -> DataFrame: ... - @overload - def aggregate( - self: ExponentialMovingWindow[DataFrame], - func: AggFuncTypeFrame, - *args: Any, - **kwargs: Any, - ) -> DataFrame: ... def mean( self, numeric_only: bool = ..., diff --git a/pandas-stubs/core/window/expanding.pyi b/pandas-stubs/core/window/expanding.pyi index 0834b7a3b..9ac04cf4e 100644 --- a/pandas-stubs/core/window/expanding.pyi +++ b/pandas-stubs/core/window/expanding.pyi @@ -1,8 +1,5 @@ from collections.abc import Callable -from typing import ( - Any, - overload, -) +from typing import Any from pandas import ( DataFrame, @@ -14,9 +11,6 @@ from pandas.core.window.rolling import ( ) from pandas._typing import ( - AggFuncTypeBase, - AggFuncTypeFrame, - AggFuncTypeSeriesToFrame, NDFrameT, QuantileInterpolation, WindowingEngine, @@ -25,24 +19,6 @@ from pandas._typing import ( ) class Expanding(RollingAndExpandingMixin[NDFrameT]): - @overload - def aggregate( - self: Expanding[Series], func: AggFuncTypeBase, *args: Any, **kwargs: Any - ) -> Series: ... - @overload - def aggregate( - self: Expanding[Series], - func: AggFuncTypeSeriesToFrame, - *args: Any, - **kwargs: Any, - ) -> DataFrame: ... - @overload - def aggregate( - self: Expanding[DataFrame], - func: AggFuncTypeFrame, - *args: Any, - **kwargs: Any, - ) -> DataFrame: ... def count(self) -> NDFrameT: ... def apply( self, diff --git a/pandas-stubs/core/window/rolling.pyi b/pandas-stubs/core/window/rolling.pyi index 7cbc75213..d1d3b675b 100644 --- a/pandas-stubs/core/window/rolling.pyi +++ b/pandas-stubs/core/window/rolling.pyi @@ -48,24 +48,6 @@ class BaseWindow(SelectionMixin[NDFrameT], Generic[NDFrameT]): class BaseWindowGroupby(BaseWindow[NDFrameT]): ... class Window(BaseWindow[NDFrameT]): - @overload - def aggregate( - self: Window[Series], func: AggFuncTypeBase, *args: Any, **kwargs: Any - ) -> Series: ... - @overload - def aggregate( - self: Window[Series], - func: AggFuncTypeSeriesToFrame, - *args: Any, - **kwargs: Any, - ) -> DataFrame: ... - @overload - def aggregate( - self: Window[DataFrame], - func: AggFuncTypeFrame, - *args: Any, - **kwargs: Any, - ) -> DataFrame: ... def sum(self, numeric_only: bool = ..., **kwargs: Any) -> NDFrameT: ... def mean(self, numeric_only: bool = ..., **kwargs: Any) -> NDFrameT: ... def var( @@ -172,24 +154,6 @@ class RollingAndExpandingMixin(BaseWindow[NDFrameT], Generic[NDFrameT]): ) -> NDFrameT: ... class Rolling(RollingAndExpandingMixin[NDFrameT]): - @overload - def aggregate( - self: Rolling[Series], func: AggFuncTypeBase, *args: Any, **kwargs: Any - ) -> Series: ... - @overload - def aggregate( - self: Rolling[Series], - func: AggFuncTypeSeriesToFrame, - *args: Any, - **kwargs: Any, - ) -> DataFrame: ... - @overload - def aggregate( - self: Rolling[DataFrame], - func: AggFuncTypeFrame, - *args: Any, - **kwargs: Any, - ) -> DataFrame: ... def apply( self, func: Callable[..., Any], diff --git a/pyproject.toml b/pyproject.toml index fa9326d53..e5ffc5924 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,7 +39,7 @@ mypy = "1.6.0" pandas = "2.1.1" pyarrow = ">=10.0.1" pytest = ">=7.1.2" -pyright = "==1.1.331" +pyright = ">=1.1.332" poethepoet = ">=0.16.5" loguru = ">=0.6.0" typing-extensions = ">=4.4.0" diff --git a/tests/test_scalars.py b/tests/test_scalars.py index 3fad574db..af74019bd 100644 --- a/tests/test_scalars.py +++ b/tests/test_scalars.py @@ -1668,11 +1668,9 @@ def test_todatetime_fromnumpy() -> None: def test_timestamp_combine() -> None: ts = pd.Timestamp("2022-03-18") - # mypy and pyright disagree from actual type due to inheritance. - # Same issue with some timedelta ops check( assert_type( - ts.combine(dt.date(2000, 1, 1), dt.time(12, 21, 21, 12)), dt.datetime + ts.combine(dt.date(2000, 1, 1), dt.time(12, 21, 21, 12)), pd.Timestamp ), pd.Timestamp, )