From d35e4400dee22006a4da6079189b049fcc1ec99e Mon Sep 17 00:00:00 2001 From: Andrew Uzzell Date: Thu, 17 Nov 2022 13:06:19 -0500 Subject: [PATCH 1/4] Enable Pylint useless-parent-delegation warning and remove superfluous overriding methods --- pandas/core/apply.py | 3 --- pandas/core/arrays/datetimelike.py | 2 +- pandas/core/indexes/multi.py | 1 + pandas/core/series.py | 2 +- pandas/tests/extension/decimal/test_decimal.py | 3 +-- pandas/tests/extension/test_numpy.py | 2 ++ pyproject.toml | 3 +-- 7 files changed, 7 insertions(+), 9 deletions(-) diff --git a/pandas/core/apply.py b/pandas/core/apply.py index 77ef3611b7587..6d9f5510eb8c5 100644 --- a/pandas/core/apply.py +++ b/pandas/core/apply.py @@ -836,9 +836,6 @@ def apply_str(self) -> DataFrame | Series: class FrameRowApply(FrameApply): axis: AxisInt = 0 - def apply_broadcast(self, target: DataFrame) -> DataFrame: - return super().apply_broadcast(target) - @property def series_generator(self): return (self.obj._ixs(i, axis=1) for i in range(len(self.columns))) diff --git a/pandas/core/arrays/datetimelike.py b/pandas/core/arrays/datetimelike.py index 2f28bf5d0145d..b008dbb4a4e5b 100644 --- a/pandas/core/arrays/datetimelike.py +++ b/pandas/core/arrays/datetimelike.py @@ -514,7 +514,7 @@ def view(self, dtype: Literal["m8[ns]"]) -> TimedeltaArray: def view(self, dtype: Dtype | None = ...) -> ArrayLike: ... - def view(self, dtype: Dtype | None = None) -> ArrayLike: + def view(self, dtype: Dtype | None = None) -> ArrayLike: # pylint: disable=useless-parent-delegation # we need to explicitly call super() method as long as the `@overload`s # are present in this file. return super().view(dtype) diff --git a/pandas/core/indexes/multi.py b/pandas/core/indexes/multi.py index 04a57c1709382..96d31431471e8 100644 --- a/pandas/core/indexes/multi.py +++ b/pandas/core/indexes/multi.py @@ -2625,6 +2625,7 @@ def get_slice_bound( label = (label,) return self._partial_tup_index(label, side=side) + # pylint: disable-next=useless-parent-delegation def slice_locs(self, start=None, end=None, step=None) -> tuple[int, int]: """ For an ordered MultiIndex, compute the slice locations for input diff --git a/pandas/core/series.py b/pandas/core/series.py index dceec40ae666a..a7e9082ebd642 100644 --- a/pandas/core/series.py +++ b/pandas/core/series.py @@ -2036,7 +2036,7 @@ def mode(self, dropna: bool = True) -> Series: res_values, index=range(len(res_values)), name=self.name ) - def unique(self) -> ArrayLike: + def unique(self) -> ArrayLike: # pylint: disable=useless-parent-delegation """ Return unique values of Series object. diff --git a/pandas/tests/extension/decimal/test_decimal.py b/pandas/tests/extension/decimal/test_decimal.py index acba1bd557351..139facc607359 100644 --- a/pandas/tests/extension/decimal/test_decimal.py +++ b/pandas/tests/extension/decimal/test_decimal.py @@ -158,8 +158,7 @@ class TestCasting(base.BaseCastingTests): class TestGroupby(base.BaseGroupbyTests): - def test_groupby_agg_extension(self, data_for_grouping): - super().test_groupby_agg_extension(data_for_grouping) + pass class TestSetitem(base.BaseSetitemTests): diff --git a/pandas/tests/extension/test_numpy.py b/pandas/tests/extension/test_numpy.py index d6a5557c89f14..5ff4d61ff7f93 100644 --- a/pandas/tests/extension/test_numpy.py +++ b/pandas/tests/extension/test_numpy.py @@ -236,6 +236,7 @@ def test_getitem_scalar(self, data): class TestGroupby(BaseNumPyTests, base.BaseGroupbyTests): + @skip_nested def test_groupby_extension_apply(self, data_for_grouping, groupby_apply_op): super().test_groupby_extension_apply(data_for_grouping, groupby_apply_op) @@ -403,6 +404,7 @@ def test_setitem_scalar_key_sequence_raise(self, data): def test_setitem_mask(self, data, mask, box_in_series): super().test_setitem_mask(data, mask, box_in_series) + @skip_nested def test_setitem_mask_raises(self, data, box_in_series): super().test_setitem_mask_raises(data, box_in_series) diff --git a/pyproject.toml b/pyproject.toml index ffd59f0804c58..150e189126378 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -158,8 +158,7 @@ disable = [ "unused-argument", "unused-import", "unused-variable", - "using-constant-test", - "useless-parent-delegation" + "using-constant-test" ] [tool.pytest.ini_options] From 60e8228f37cef0bf59b0bb0a72bdb98a31ea9e4b Mon Sep 17 00:00:00 2001 From: Andrew Uzzell Date: Fri, 18 Nov 2022 11:29:45 -0500 Subject: [PATCH 2/4] Remove annotations that caused errors. Remove @skip_nested annotations that cause test failures and replace them with statements that suppress the useless-parent-delegation warning. --- pandas/tests/extension/test_numpy.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pandas/tests/extension/test_numpy.py b/pandas/tests/extension/test_numpy.py index 5ff4d61ff7f93..d81e28bfe049a 100644 --- a/pandas/tests/extension/test_numpy.py +++ b/pandas/tests/extension/test_numpy.py @@ -236,7 +236,7 @@ def test_getitem_scalar(self, data): class TestGroupby(BaseNumPyTests, base.BaseGroupbyTests): - @skip_nested + # pylint: disable-next=useless-parent-delegation def test_groupby_extension_apply(self, data_for_grouping, groupby_apply_op): super().test_groupby_extension_apply(data_for_grouping, groupby_apply_op) @@ -404,7 +404,7 @@ def test_setitem_scalar_key_sequence_raise(self, data): def test_setitem_mask(self, data, mask, box_in_series): super().test_setitem_mask(data, mask, box_in_series) - @skip_nested + # pylint: disable-next=useless-parent-delegation def test_setitem_mask_raises(self, data, box_in_series): super().test_setitem_mask_raises(data, box_in_series) From e087de29adf6b21a7b63587cf9a0439fcbe7f0be Mon Sep 17 00:00:00 2001 From: Andrew Uzzell Date: Wed, 23 Nov 2022 09:48:55 -0500 Subject: [PATCH 3/4] Remove tests that can fall back to the base class --- pandas/tests/extension/test_numpy.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/pandas/tests/extension/test_numpy.py b/pandas/tests/extension/test_numpy.py index d81e28bfe049a..4dd541ef3f0aa 100644 --- a/pandas/tests/extension/test_numpy.py +++ b/pandas/tests/extension/test_numpy.py @@ -236,9 +236,7 @@ def test_getitem_scalar(self, data): class TestGroupby(BaseNumPyTests, base.BaseGroupbyTests): - # pylint: disable-next=useless-parent-delegation - def test_groupby_extension_apply(self, data_for_grouping, groupby_apply_op): - super().test_groupby_extension_apply(data_for_grouping, groupby_apply_op) + pass class TestInterface(BaseNumPyTests, base.BaseInterfaceTests): @@ -404,10 +402,6 @@ def test_setitem_scalar_key_sequence_raise(self, data): def test_setitem_mask(self, data, mask, box_in_series): super().test_setitem_mask(data, mask, box_in_series) - # pylint: disable-next=useless-parent-delegation - def test_setitem_mask_raises(self, data, box_in_series): - super().test_setitem_mask_raises(data, box_in_series) - @skip_nested @pytest.mark.parametrize( "idx", From 8169363075bbecc7d59457fa49cb4e8443e561ba Mon Sep 17 00:00:00 2001 From: Andrew Uzzell Date: Wed, 23 Nov 2022 11:00:08 -0500 Subject: [PATCH 4/4] Move a comment to ensure that pre-commit passes --- pandas/core/arrays/datetimelike.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pandas/core/arrays/datetimelike.py b/pandas/core/arrays/datetimelike.py index b008dbb4a4e5b..d32d664aae22b 100644 --- a/pandas/core/arrays/datetimelike.py +++ b/pandas/core/arrays/datetimelike.py @@ -514,7 +514,8 @@ def view(self, dtype: Literal["m8[ns]"]) -> TimedeltaArray: def view(self, dtype: Dtype | None = ...) -> ArrayLike: ... - def view(self, dtype: Dtype | None = None) -> ArrayLike: # pylint: disable=useless-parent-delegation + # pylint: disable-next=useless-parent-delegation + def view(self, dtype: Dtype | None = None) -> ArrayLike: # we need to explicitly call super() method as long as the `@overload`s # are present in this file. return super().view(dtype)