From 1cbbbe052705c941b663f7a48ac83a2a1567f361 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20W=C3=B6rtwein?= Date: Thu, 29 Dec 2022 10:30:00 -0500 Subject: [PATCH 1/2] Enable reportUnnecessaryTypeIgnoreComment --- pandas-stubs/_libs/interval.pyi | 4 +-- pandas-stubs/_libs/tslibs/period.pyi | 4 +-- pandas-stubs/_libs/tslibs/timedeltas.pyi | 4 +-- pandas-stubs/_libs/tslibs/timestamps.pyi | 4 +-- pandas-stubs/core/algorithms.pyi | 2 +- pyproject.toml | 5 ++- tests/__init__.py | 1 - tests/test_dtypes.py | 10 +----- tests/test_frame.py | 28 +++++++-------- tests/test_interval.py | 6 ++-- tests/test_pandas.py | 14 ++++---- tests/test_scalars.py | 44 ++++++++++++------------ tests/test_series.py | 6 ++-- tests/test_testing.py | 2 +- tests/test_timefuncs.py | 8 ++--- 15 files changed, 65 insertions(+), 77 deletions(-) diff --git a/pandas-stubs/_libs/interval.pyi b/pandas-stubs/_libs/interval.pyi index 69e79b7c8..699d4c062 100644 --- a/pandas-stubs/_libs/interval.pyi +++ b/pandas-stubs/_libs/interval.pyi @@ -180,7 +180,7 @@ class Interval(IntervalMixin, Generic[_OrderableT]): @overload def __le__(self: IntervalT, other: IntervalIndex[IntervalT]) -> np_ndarray_bool: ... @overload - def __eq__(self, other: Interval[_OrderableT]) -> bool: ... # type: ignore[misc] + def __eq__(self, other: Interval[_OrderableT]) -> bool: ... # type: ignore[misc] # pyright: ignore[reportOverlappingOverload] @overload def __eq__(self: IntervalT, other: IntervalIndex[IntervalT]) -> np_ndarray_bool: ... # type: ignore[misc] @overload @@ -188,7 +188,7 @@ class Interval(IntervalMixin, Generic[_OrderableT]): @overload def __eq__(self, other: object) -> Literal[False]: ... @overload - def __ne__(self, other: Interval[_OrderableT]) -> bool: ... # type: ignore[misc] + def __ne__(self, other: Interval[_OrderableT]) -> bool: ... # type: ignore[misc] # pyright: ignore[reportOverlappingOverload] @overload def __ne__(self: IntervalT, other: IntervalIndex[IntervalT]) -> np_ndarray_bool: ... # type: ignore[misc] @overload diff --git a/pandas-stubs/_libs/tslibs/period.pyi b/pandas-stubs/_libs/tslibs/period.pyi index b1f9bd0eb..bd4cd53f6 100644 --- a/pandas-stubs/_libs/tslibs/period.pyi +++ b/pandas-stubs/_libs/tslibs/period.pyi @@ -97,7 +97,7 @@ class Period(PeriodMixin): # ignore[misc] here because we know all other comparisons # are False, so we use Literal[False] @overload - def __eq__(self, other: Period) -> bool: ... # type: ignore[misc] + def __eq__(self, other: Period) -> bool: ... # type: ignore[misc] # pyright: ignore[reportOverlappingOverload] @overload def __eq__(self, other: PeriodIndex) -> npt.NDArray[np.bool_]: ... # type: ignore[misc] @overload @@ -131,7 +131,7 @@ class Period(PeriodMixin): # ignore[misc] here because we know all other comparisons # are False, so we use Literal[False] @overload - def __ne__(self, other: Period) -> bool: ... # type: ignore[misc] + def __ne__(self, other: Period) -> bool: ... # type: ignore[misc] # pyright: ignore[reportOverlappingOverload] @overload def __ne__(self, other: PeriodIndex) -> npt.NDArray[np.bool_]: ... # type: ignore[misc] @overload diff --git a/pandas-stubs/_libs/tslibs/timedeltas.pyi b/pandas-stubs/_libs/tslibs/timedeltas.pyi index dad83b6fe..79211051b 100644 --- a/pandas-stubs/_libs/tslibs/timedeltas.pyi +++ b/pandas-stubs/_libs/tslibs/timedeltas.pyi @@ -312,7 +312,7 @@ class Timedelta(timedelta): def __rtruediv__(self, other: timedelta | Timedelta | NaTType) -> float: ... # Override due to more types supported than dt.timedelta @overload - def __eq__(self, other: timedelta | Timedelta | np.timedelta64) -> bool: ... # type: ignore[misc] + def __eq__(self, other: timedelta | Timedelta | np.timedelta64) -> bool: ... # type: ignore[misc] # pyright: ignore[reportOverlappingOverload] @overload def __eq__(self, other: TimedeltaSeries | Series[pd.Timedelta]) -> Series[bool]: ... # type: ignore[misc] @overload @@ -323,7 +323,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 | Timedelta | np.timedelta64) -> bool: ... # type: ignore[misc] + def __ne__(self, other: timedelta | Timedelta | np.timedelta64) -> bool: ... # type: ignore[misc] # pyright: ignore[reportOverlappingOverload] @overload def __ne__(self, other: TimedeltaSeries | Series[pd.Timedelta]) -> Series[bool]: ... # type: ignore[misc] @overload diff --git a/pandas-stubs/_libs/tslibs/timestamps.pyi b/pandas-stubs/_libs/tslibs/timestamps.pyi index be2f2cdc9..3f5d32adf 100644 --- a/pandas-stubs/_libs/tslibs/timestamps.pyi +++ b/pandas-stubs/_libs/tslibs/timestamps.pyi @@ -217,7 +217,7 @@ class Timestamp(datetime): self, other: npt.NDArray[np.timedelta64] ) -> npt.NDArray[np.datetime64]: ... @overload - def __eq__(self, other: Timestamp | datetime | np.datetime64) -> bool: ... # type: ignore[misc] + def __eq__(self, other: Timestamp | datetime | np.datetime64) -> bool: ... # type: ignore[misc] # pyright: ignore[reportOverlappingOverload] @overload def __eq__(self, other: TimestampSeries | Series[Timestamp]) -> Series[bool]: ... # type: ignore[misc] @overload @@ -225,7 +225,7 @@ class Timestamp(datetime): @overload def __eq__(self, other: object) -> Literal[False]: ... @overload - def __ne__(self, other: Timestamp | datetime | np.datetime64) -> bool: ... # type: ignore[misc] + def __ne__(self, other: Timestamp | datetime | np.datetime64) -> bool: ... # type: ignore[misc] # pyright: ignore[reportOverlappingOverload] @overload def __ne__(self, other: TimestampSeries | Series[Timestamp]) -> Series[bool]: ... # type: ignore[misc] @overload diff --git a/pandas-stubs/core/algorithms.pyi b/pandas-stubs/core/algorithms.pyi index 09350fffe..19be1f383 100644 --- a/pandas-stubs/core/algorithms.pyi +++ b/pandas-stubs/core/algorithms.pyi @@ -21,7 +21,7 @@ from pandas._typing import ( # with extension types return the same type while standard type return ndarray @overload -def unique(values: PeriodIndex) -> PeriodIndex: ... # type: ignore[misc] +def unique(values: PeriodIndex) -> PeriodIndex: ... # type: ignore[misc] # pyright: ignore[reportOverlappingOverload] @overload def unique(values: CategoricalIndex) -> CategoricalIndex: ... # type: ignore[misc] @overload diff --git a/pyproject.toml b/pyproject.toml index e7e452e92..aecba15e5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -171,17 +171,18 @@ strict_equality = true show_error_context = false show_column_numbers = false show_error_codes = true -always_true = "IS_TYPE_CHECKER_MYPY" [tool.pyright] typeCheckingMode = "strict" stubPath = "." include = ["tests", "pandas-stubs"] +enableTypeIgnoreComments = false # use pyright-specific ignores # disable subset of strict reportInconsistentConstructor = false reportMissingParameterType = false reportMissingTypeArgument = false reportMissingTypeStubs = false +reportUnnecessaryTypeIgnoreComment = true reportUnknownArgumentType = false reportUnusedExpression = false reportUnknownLambdaType = false @@ -193,5 +194,3 @@ reportUnusedVariable = false reportPrivateUsage = false # enable optional checks reportMissingModuleSource = true -defineConstant = { IS_TYPE_CHECKER_MYPY = false } - diff --git a/tests/__init__.py b/tests/__init__.py index 70b61abe8..551ef44f4 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -22,7 +22,6 @@ TYPE_CHECKING_INVALID_USAGE: Final = TYPE_CHECKING WINDOWS = os.name == "nt" or "cygwin" in platform.system().lower() PD_LTE_15 = Version(pd.__version__) < Version("1.5.999") -IS_TYPE_CHECKER_MYPY = True lxml_skip = pytest.mark.skipif( sys.version_info >= (3, 11), reason="lxml is not available for 3.11 yet" diff --git a/tests/test_dtypes.py b/tests/test_dtypes.py index 9a3257496..6792d2ba0 100644 --- a/tests/test_dtypes.py +++ b/tests/test_dtypes.py @@ -121,15 +121,7 @@ def test_sparse_dtype() -> None: check(assert_type(pd.SparseDtype(np.timedelta64), pd.SparseDtype), pd.SparseDtype) check(assert_type(pd.SparseDtype("datetime64"), pd.SparseDtype), pd.SparseDtype) check(assert_type(pd.SparseDtype(), pd.SparseDtype), pd.SparseDtype) - # pyright ignore because mypy does not like non-minimal unions, while pyright - # can't minimize to check - check( - assert_type( - s_dt.fill_value, # pyright: ignore[reportGeneralTypeIssues] - Union[Scalar, None], - ), - int, - ) + check(assert_type(s_dt.fill_value, Union[Scalar, None]), int) def test_string_dtype() -> None: diff --git a/tests/test_frame.py b/tests/test_frame.py index 0a351ace8..ec6d48c20 100644 --- a/tests/test_frame.py +++ b/tests/test_frame.py @@ -38,7 +38,6 @@ from pandas._typing import Scalar from tests import ( - IS_TYPE_CHECKER_MYPY, PD_LTE_15, TYPE_CHECKING_INVALID_USAGE, check, @@ -981,7 +980,7 @@ def test_types_window() -> None: df.expanding() df.expanding(axis=1) if TYPE_CHECKING_INVALID_USAGE: - df.expanding(axis=1, center=True) # type: ignore[call-arg] + df.expanding(axis=1, center=True) # type: ignore[call-arg] # pyright: ignore[reportGeneralTypeIssues] df.rolling(2) df.rolling(2, axis=1, center=True) @@ -1780,16 +1779,15 @@ def test_set_columns() -> None: # https://github.com/python/mypy/issues/3004 # pyright accepts this, so we only type check for pyright, # and also test the code with pytest - if (TYPE_CHECKING and not IS_TYPE_CHECKER_MYPY) or not TYPE_CHECKING: - df.columns = ["c", "d"] - df.columns = [1, 2] - df.columns = [1, "a"] - df.columns = np.array([1, 2]) - df.columns = pd.Series([1, 2]) - df.columns = np.array([1, "a"]) - df.columns = pd.Series([1, "a"]) - df.columns = (1, 2) - df.columns = (1, "a") + df.columns = ["c", "d"] # type: ignore[assignment] + df.columns = [1, 2] # type: ignore[assignment] + df.columns = [1, "a"] # type: ignore[assignment] + df.columns = np.array([1, 2]) # type: ignore[assignment] + df.columns = pd.Series([1, 2]) # type: ignore[assignment] + df.columns = np.array([1, "a"]) # type: ignore[assignment] + df.columns = pd.Series([1, "a"]) # type: ignore[assignment] + df.columns = (1, 2) # type: ignore[assignment] + df.columns = (1, "a") # type: ignore[assignment] def test_frame_index_numpy() -> None: @@ -1825,9 +1823,9 @@ def test_not_hashable() -> None: def test_func(h: Hashable): pass - test_func(pd.DataFrame()) # type: ignore[arg-type] - test_func(pd.Series([], dtype=object)) # type: ignore[arg-type] - test_func(pd.Index([])) # type: ignore[arg-type] + test_func(pd.DataFrame()) # type: ignore[arg-type] # pyright: ignore[reportGeneralTypeIssues] + test_func(pd.Series([], dtype=object)) # type: ignore[arg-type] # pyright: ignore[reportGeneralTypeIssues] + test_func(pd.Index([])) # type: ignore[arg-type] # pyright: ignore[reportGeneralTypeIssues] def test_columns_mixlist() -> None: diff --git a/tests/test_interval.py b/tests/test_interval.py index 38a0dbf12..9bc603923 100644 --- a/tests/test_interval.py +++ b/tests/test_interval.py @@ -51,9 +51,9 @@ def test_interval_length() -> None: check(assert_type(idres, "pd.Interval[pd.Timestamp]"), pd.Interval, pd.Timestamp) if TYPE_CHECKING_INVALID_USAGE: 20 in i1 # TODO both: ignore[operator] - i1 + pd.Timestamp("2000-03-03") # type: ignore[operator] - i1 * 3 # type: ignore[operator] - i1 * pd.Timedelta(seconds=20) # type: ignore[operator] + i1 + pd.Timestamp("2000-03-03") # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] + i1 * 3 # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] + i1 * pd.Timedelta(seconds=20) # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] i2 = pd.Interval(10, 20) check(assert_type(i2.length, int), int) diff --git a/tests/test_pandas.py b/tests/test_pandas.py index 3b146c0b5..7f20c8482 100644 --- a/tests/test_pandas.py +++ b/tests/test_pandas.py @@ -1208,24 +1208,24 @@ def test_merge_ordered() -> None: rs, left_on="left", right_on="right", - left_by="left", # pyright: ignore - right_by="right", # pyright: ignore + left_by="left", # pyright: ignore[reportGeneralTypeIssues] + right_by="right", # pyright: ignore[reportGeneralTypeIssues] ) pd.merge_ordered( # type: ignore[call-overload] ls, - rf, # pyright: ignore + rf, # pyright: ignore[reportGeneralTypeIssues] left_on="left", right_on="b", - left_by="left", # pyright: ignore - right_by="b", # pyright: ignore + left_by="left", # pyright: ignore[reportGeneralTypeIssues] + right_by="b", # pyright: ignore[reportGeneralTypeIssues] ) pd.merge_ordered( # type: ignore[call-overload] lf, rs, left_on="a", right_on="right", - left_by="a", # pyright: ignore - right_by="right", # pyright: ignore + left_by="a", # pyright: ignore[reportGeneralTypeIssues] + right_by="right", # pyright: ignore[reportGeneralTypeIssues] ) diff --git a/tests/test_scalars.py b/tests/test_scalars.py index 19425c480..85148090d 100644 --- a/tests/test_scalars.py +++ b/tests/test_scalars.py @@ -606,14 +606,14 @@ def test_timedelta_add_sub() -> None: # TypeError: as_period, as_timestamp, as_datetime, as_date, as_datetime64, # as_period_index, as_datetime_index, as_ndarray_dt64 if TYPE_CHECKING_INVALID_USAGE: - td - as_period # type: ignore[operator] - td - as_timestamp # type: ignore[operator] - td - as_datetime # type: ignore[operator] - td - as_date # type: ignore[operator] - td - as_datetime64 # type: ignore[operator] - td - as_period_index # type: ignore[operator] - td - as_datetime_index # type: ignore[operator] - td - as_ndarray_dt64 # type: ignore[operator] + td - as_period # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] + td - as_timestamp # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] + td - as_datetime # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] + td - as_date # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] + td - as_datetime64 # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] + td - as_period_index # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] + td - as_datetime_index # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] + td - as_ndarray_dt64 # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] check(assert_type(td - td, pd.Timedelta), pd.Timedelta) check(assert_type(td - as_dt_timedelta, pd.Timedelta), pd.Timedelta) @@ -745,14 +745,14 @@ def test_timedelta_mul_div() -> None: # TypeError: md_int, md_float, md_ndarray_intp, md_ndarray_float, mp_series_int, # mp_series_float, md_int64_index, md_float_index if TYPE_CHECKING_INVALID_USAGE: - md_int // td # type: ignore[operator] - md_float // td # type: ignore[operator] - md_ndarray_intp // td # type: ignore[operator] - md_ndarray_float // td # type: ignore[operator] - mp_series_int // td # type: ignore[operator] - md_series_float // td # type: ignore[operator] - md_int64_index // td # type: ignore[operator] - md_float_index // td # type: ignore[operator] + md_int // td # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] + md_float // td # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] + md_ndarray_intp // td # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] + md_ndarray_float // td # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] + mp_series_int // td # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] + md_series_float // td # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] + md_int64_index // td # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] + md_float_index // td # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] check(assert_type(td / td, float), float) check(assert_type(td / pd.NaT, float), float) @@ -779,16 +779,16 @@ def test_timedelta_mul_div() -> None: # TypeError: md_int, md_float, md_ndarray_intp, md_ndarray_float, mp_series_int, # mp_series_float, md_int64_index, md_float_index if TYPE_CHECKING_INVALID_USAGE: - md_int / td # type: ignore[operator] - md_float / td # type: ignore[operator] - md_ndarray_intp / td # type: ignore[operator] - md_ndarray_float / td # type: ignore[operator] + md_int / td # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] + md_float / td # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] + md_ndarray_intp / td # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] + md_ndarray_float / td # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] # TODO: Series.__truediv__ says it supports Timedelta # it does not, in general, except for TimedeltaSeries # mp_series_int / td # type: ignore[operator] # mp_series_float / td # type: ignore[operator] - md_int64_index / td # type: ignore[operator] - md_float_index / td # type: ignore[operator] + md_int64_index / td # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] + md_float_index / td # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] def test_timedelta_mod_abs_unary() -> None: diff --git a/tests/test_series.py b/tests/test_series.py index 05ca07d48..0491e67de 100644 --- a/tests/test_series.py +++ b/tests/test_series.py @@ -238,7 +238,7 @@ def test_types_sort_values() -> None: s = pd.Series([4, 2, 1, 3]) check(assert_type(s.sort_values(), pd.Series), pd.Series) if TYPE_CHECKING_INVALID_USAGE: - check(assert_type(s.sort_values(0), pd.Series), pd.Series) # type: ignore[assert-type,call-overload] + check(assert_type(s.sort_values(0), pd.Series), pd.Series) # type: ignore[assert-type,call-overload] # pyright: ignore[reportGeneralTypeIssues] check(assert_type(s.sort_values(axis=0), pd.Series), pd.Series) check(assert_type(s.sort_values(ascending=False), pd.Series), pd.Series) assert assert_type(s.sort_values(inplace=True, kind="quicksort"), None) is None @@ -560,7 +560,7 @@ def test_types_window() -> None: s.expanding() s.expanding(axis=0) if TYPE_CHECKING_INVALID_USAGE: - s.expanding(axis=0, center=True) # type: ignore[call-arg] + s.expanding(axis=0, center=True) # type: ignore[call-arg] # pyright: ignore[reportGeneralTypeIssues] s.rolling(2) s.rolling(2, axis=0, center=True) @@ -748,7 +748,7 @@ def add1(x: int) -> int: s6: None = pd.Series([1, 2, 3]).rename("A", inplace=True) if TYPE_CHECKING_INVALID_USAGE: - s7 = pd.Series([1, 2, 3]).rename({1: [3, 4, 5]}) # type: ignore[dict-item] + s7 = pd.Series([1, 2, 3]).rename({1: [3, 4, 5]}) # type: ignore[dict-item] # pyright: ignore[reportGeneralTypeIssues] def test_types_ne() -> None: diff --git a/tests/test_testing.py b/tests/test_testing.py index ac10a163e..70defa6f6 100644 --- a/tests/test_testing.py +++ b/tests/test_testing.py @@ -29,7 +29,7 @@ def test_types_assert_series_equal() -> None: check_datetimelike_compat=True, ) if TYPE_CHECKING_INVALID_USAGE: - assert_series_equal( # type: ignore[call-overload] + assert_series_equal( # type: ignore[call-overload] # pyright: ignore[reportGeneralTypeIssues] s1, s2, check_dtype=True, diff --git a/tests/test_timefuncs.py b/tests/test_timefuncs.py index 866815126..f6f722afc 100644 --- a/tests/test_timefuncs.py +++ b/tests/test_timefuncs.py @@ -264,7 +264,7 @@ def test_fail_on_adding_two_timestamps() -> None: if TYPE_CHECKING_INVALID_USAGE: ssum: pd.Series = s1 + s2 # TODO both: ignore[operator] ts = pd.Timestamp("2022-06-30") - tsum: pd.Series = s1 + ts # pyright: ignore + tsum: pd.Series = s1 + ts # pyright: ignore[reportGeneralTypeIssues] def test_dtindex_tzinfo() -> None: @@ -1057,9 +1057,9 @@ def test_timedelta64_and_arithmatic_operator() -> None: check(assert_type((s3 + td), "TimedeltaSeries"), pd.Series, pd.Timedelta) check(assert_type((s3 / td), "pd.Series[float]"), pd.Series, float) if TYPE_CHECKING_INVALID_USAGE: - assert_type((s1 * td), Never) # pyright: ignore - assert_type((s1 / td), Never) # pyright: ignore - assert_type((s3 * td), Never) # pyright: ignore + assert_type((s1 * td), Never) # pyright: ignore[reportGeneralTypeIssues] + assert_type((s1 / td), Never) # pyright: ignore[reportGeneralTypeIssues] + assert_type((s3 * td), Never) # pyright: ignore[reportGeneralTypeIssues] def test_timedeltaseries_add_timestampseries() -> None: From 6755f5c6aa1ada3b7b62060728649ee288c0cd6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20W=C3=B6rtwein?= Date: Thu, 29 Dec 2022 13:52:11 -0500 Subject: [PATCH 2/2] fix comments --- pandas-stubs/core/algorithms.pyi | 2 +- tests/test_frame.py | 2 +- tests/test_interval.py | 10 +++++----- tests/test_scalars.py | 14 +++++--------- tests/test_series.py | 4 ++-- 5 files changed, 14 insertions(+), 18 deletions(-) diff --git a/pandas-stubs/core/algorithms.pyi b/pandas-stubs/core/algorithms.pyi index 19be1f383..c81b8438a 100644 --- a/pandas-stubs/core/algorithms.pyi +++ b/pandas-stubs/core/algorithms.pyi @@ -21,7 +21,7 @@ from pandas._typing import ( # with extension types return the same type while standard type return ndarray @overload -def unique(values: PeriodIndex) -> PeriodIndex: ... # type: ignore[misc] # pyright: ignore[reportOverlappingOverload] +def unique(values: PeriodIndex) -> PeriodIndex: ... # type: ignore[misc] # pyright: ignore[reportOverlappingOverload] @overload def unique(values: CategoricalIndex) -> CategoricalIndex: ... # type: ignore[misc] @overload diff --git a/tests/test_frame.py b/tests/test_frame.py index e6cc58871..02f45bc1f 100644 --- a/tests/test_frame.py +++ b/tests/test_frame.py @@ -1789,7 +1789,7 @@ def test_set_columns() -> None: df.columns = (1, 2) # type: ignore[assignment] df.columns = (1, "a") # type: ignore[assignment] if TYPE_CHECKING_INVALID_USAGE: - df.columns = "abc" # pyright: ignore[reportGeneralTypeIssues] + df.columns = "abc" # type: ignore[assignment] # pyright: ignore[reportGeneralTypeIssues] def test_frame_index_numpy() -> None: diff --git a/tests/test_interval.py b/tests/test_interval.py index 363e67898..52ac83fb8 100644 --- a/tests/test_interval.py +++ b/tests/test_interval.py @@ -50,7 +50,7 @@ def test_interval_length() -> None: check(assert_type(idres, "pd.Interval[pd.Timestamp]"), pd.Interval, pd.Timestamp) if TYPE_CHECKING_INVALID_USAGE: - 20 in i1 # type: ignore[operator] + 20 in i1 # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] i1 + pd.Timestamp("2000-03-03") # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] i1 * 3 # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] i1 * pd.Timedelta(seconds=20) # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] @@ -69,8 +69,8 @@ def test_interval_length() -> None: check(assert_type(i2 * 4.2, "pd.Interval[float]"), pd.Interval, float) if TYPE_CHECKING_INVALID_USAGE: - pd.Timestamp("2001-01-02") in i2 # type: ignore[operator] - i2 + pd.Timedelta(seconds=20) # type: ignore[type-var] + pd.Timestamp("2001-01-02") in i2 # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] + i2 + pd.Timedelta(seconds=20) # type: ignore[type-var] # pyright: ignore[reportGeneralTypeIssues] i3 = pd.Interval(13.2, 19.5) check(assert_type(i3.length, float), float) check(assert_type(i3.left, float), float) @@ -82,5 +82,5 @@ def test_interval_length() -> None: check(assert_type(i3 + 3, "pd.Interval[float]"), pd.Interval, float) check(assert_type(i3 * 3, "pd.Interval[float]"), pd.Interval, float) if TYPE_CHECKING_INVALID_USAGE: - pd.Timestamp("2001-01-02") in i3 # type: ignore[operator] - i3 + pd.Timedelta(seconds=20) # type: ignore[operator] + pd.Timestamp("2001-01-02") in i3 # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] + i3 + pd.Timedelta(seconds=20) # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] diff --git a/tests/test_scalars.py b/tests/test_scalars.py index 3630d731f..87143e2a6 100644 --- a/tests/test_scalars.py +++ b/tests/test_scalars.py @@ -26,7 +26,6 @@ from pandas._libs.tslibs.timedeltas import Components from tests import ( - IS_TYPE_CHECKER_MYPY, PD_LTE_15, TYPE_CHECKING_INVALID_USAGE, check, @@ -784,8 +783,8 @@ def test_timedelta_mul_div() -> None: md_float / td # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] md_ndarray_intp / td # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] md_ndarray_float / td # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] - mp_series_int / td # type: ignore[operator] - mp_series_float / td # type: ignore[operator] + mp_series_int / td # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] + md_series_float / td # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] md_int64_index / td # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] md_float_index / td # type: ignore[operator] # pyright: ignore[reportGeneralTypeIssues] @@ -826,12 +825,9 @@ def test_timedelta_mod_abs_unary() -> None: pd.TimedeltaIndex, ) - if TYPE_CHECKING and IS_TYPE_CHECKER_MYPY: - # mypy reports dt.timedelta, even though __abs__ returns Timedelta - check(assert_type(abs(td), pd.Timedelta), pd.Timedelta) # type: ignore[assert-type] - else: - # This is valid for pyright - check(assert_type(abs(td), pd.Timedelta), pd.Timedelta) + # mypy reports dt.timedelta, even though __abs__ returns Timedelta + check(assert_type(abs(td), pd.Timedelta), pd.Timedelta) # type: ignore[assert-type] + check(assert_type(td.__abs__(), pd.Timedelta), pd.Timedelta) check(assert_type(-td, pd.Timedelta), pd.Timedelta) check(assert_type(+td, pd.Timedelta), pd.Timedelta) diff --git a/tests/test_series.py b/tests/test_series.py index 0491e67de..87bb025e3 100644 --- a/tests/test_series.py +++ b/tests/test_series.py @@ -560,7 +560,7 @@ def test_types_window() -> None: s.expanding() s.expanding(axis=0) if TYPE_CHECKING_INVALID_USAGE: - s.expanding(axis=0, center=True) # type: ignore[call-arg] # pyright: ignore[reportGeneralTypeIssues] + s.expanding(axis=0, center=True) # type: ignore[call-arg] # pyright: ignore[reportGeneralTypeIssues] s.rolling(2) s.rolling(2, axis=0, center=True) @@ -748,7 +748,7 @@ def add1(x: int) -> int: s6: None = pd.Series([1, 2, 3]).rename("A", inplace=True) if TYPE_CHECKING_INVALID_USAGE: - s7 = pd.Series([1, 2, 3]).rename({1: [3, 4, 5]}) # type: ignore[dict-item] # pyright: ignore[reportGeneralTypeIssues] + s7 = pd.Series([1, 2, 3]).rename({1: [3, 4, 5]}) # type: ignore[dict-item] # pyright: ignore[reportGeneralTypeIssues] def test_types_ne() -> None: