Skip to content

Commit da1aa8d

Browse files
authored
DEPR: BaseNoReduceTests (#54663)
* DEPR: BaseNoReduceTests * Whatsnew
1 parent 0fc36ad commit da1aa8d

File tree

3 files changed

+45
-8
lines changed

3 files changed

+45
-8
lines changed

doc/source/whatsnew/v2.2.0.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ Deprecations
102102
- Deprecated allowing non-keyword arguments in :meth:`DataFrame.to_pickle` except ``path``. (:issue:`54229`)
103103
- Deprecated allowing non-keyword arguments in :meth:`DataFrame.to_string` except ``buf``. (:issue:`54229`)
104104
- Deprecated not passing a tuple to :class:`DataFrameGroupBy.get_group` or :class:`SeriesGroupBy.get_group` when grouping by a length-1 list-like (:issue:`25971`)
105-
105+
- Deprecated the extension test classes ``BaseNoReduceTests``, ``BaseBooleanReduceTests``, and ``BaseNumericReduceTests``, use ``BaseReduceTests`` instead (:issue:`54663`)
106106
-
107107

108108
.. ---------------------------------------------------------------------------

pandas/tests/extension/base/__init__.py

Lines changed: 42 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,7 @@ class TestMyDtype(BaseDtypeTests):
5656
BaseUnaryOpsTests,
5757
)
5858
from pandas.tests.extension.base.printing import BasePrintingTests
59-
from pandas.tests.extension.base.reduce import ( # noqa: F401
60-
BaseBooleanReduceTests,
61-
BaseNoReduceTests,
62-
BaseNumericReduceTests,
63-
BaseReduceTests,
64-
)
59+
from pandas.tests.extension.base.reduce import BaseReduceTests
6560
from pandas.tests.extension.base.reshaping import BaseReshapingTests
6661
from pandas.tests.extension.base.setitem import BaseSetitemTests
6762

@@ -92,3 +87,44 @@ class ExtensionTests(
9287
BaseSetitemTests,
9388
):
9489
pass
90+
91+
92+
def __getattr__(name: str):
93+
import warnings
94+
95+
if name == "BaseNoReduceTests":
96+
warnings.warn(
97+
"BaseNoReduceTests is deprecated and will be removed in a "
98+
"future version. Use BaseReduceTests and override "
99+
"`_supports_reduction` instead.",
100+
FutureWarning,
101+
)
102+
from pandas.tests.extension.base.reduce import BaseNoReduceTests
103+
104+
return BaseNoReduceTests
105+
106+
elif name == "BaseNumericReduceTests":
107+
warnings.warn(
108+
"BaseNumericReduceTests is deprecated and will be removed in a "
109+
"future version. Use BaseReduceTests and override "
110+
"`_supports_reduction` instead.",
111+
FutureWarning,
112+
)
113+
from pandas.tests.extension.base.reduce import BaseNumericReduceTests
114+
115+
return BaseNumericReduceTests
116+
117+
elif name == "BaseBooleanReduceTests":
118+
warnings.warn(
119+
"BaseBooleanReduceTests is deprecated and will be removed in a "
120+
"future version. Use BaseReduceTests and override "
121+
"`_supports_reduction` instead.",
122+
FutureWarning,
123+
)
124+
from pandas.tests.extension.base.reduce import BaseBooleanReduceTests
125+
126+
return BaseBooleanReduceTests
127+
128+
raise AttributeError(
129+
f"module 'pandas.tests.extension.base' has no attribute '{name}'"
130+
)

pandas/tests/extension/base/reduce.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,8 @@ def test_reduce_frame(self, data, all_numeric_reductions, skipna):
129129
self.check_reduce_frame(ser, op_name, skipna)
130130

131131

132-
# TODO: deprecate BaseNoReduceTests, BaseNumericReduceTests, BaseBooleanReduceTests
132+
# TODO(3.0): remove BaseNoReduceTests, BaseNumericReduceTests,
133+
# BaseBooleanReduceTests
133134
class BaseNoReduceTests(BaseReduceTests):
134135
"""we don't define any reductions"""
135136

0 commit comments

Comments
 (0)