Skip to content

Commit fc525c8

Browse files
committed
ENH: Deprecate non-keyword arguments for Index.set_names.
1 parent 17f5ff0 commit fc525c8

File tree

3 files changed

+9
-9
lines changed

3 files changed

+9
-9
lines changed

pandas/core/indexes/base.py

-1
Original file line numberDiff line numberDiff line change
@@ -1528,7 +1528,6 @@ def _set_names(self, values, level=None) -> None:
15281528
names = property(fset=_set_names, fget=_get_names)
15291529

15301530
@deprecate_nonkeyword_arguments(version=None, allowed_args=["self", "names"])
1531-
@final
15321531
def set_names(self, names, level=None, inplace: bool = False):
15331532
"""
15341533
Set Index or MultiIndex name.

pandas/core/indexes/multi.py

+8-3
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
from pandas.util._decorators import (
4242
Appender,
4343
cache_readonly,
44+
deprecate_nonkeyword_arguments,
4445
doc,
4546
)
4647

@@ -295,7 +296,6 @@ class MultiIndex(Index):
295296
_levels = FrozenList()
296297
_codes = FrozenList()
297298
_comparables = ["names"]
298-
rename = Index.set_names
299299

300300
sortorder: int | None
301301

@@ -3780,19 +3780,24 @@ def delete(self, loc) -> MultiIndex:
37803780
verify_integrity=False,
37813781
)
37823782

3783-
@doc(Index.isin)
3783+
# @doc(Index.isin)
37843784
def isin(self, values, level=None) -> np.ndarray:
37853785
if level is None:
37863786
values = MultiIndex.from_tuples(values, names=self.names)._values
37873787
return algos.isin(self._values, values)
37883788
else:
37893789
num = self._get_level_number(level)
37903790
levs = self.get_level_values(num)
3791-
37923791
if levs.size == 0:
37933792
return np.zeros(len(levs), dtype=np.bool_)
37943793
return levs.isin(values)
37953794

3795+
@deprecate_nonkeyword_arguments(version=None, allowed_args=["self", "names"])
3796+
def set_names(self, names, level=None, inplace: bool = False) -> MultiIndex | None:
3797+
return super().set_names(names=names, level=level, inplace=inplace)
3798+
3799+
rename = set_names
3800+
37963801
# ---------------------------------------------------------------
37973802
# Arithmetic/Numeric Methods - Disabled
37983803

pandas/tests/indexes/multi/test_get_set.py

+1-5
Original file line numberDiff line numberDiff line change
@@ -348,21 +348,17 @@ def test_set_names_with_nlevel_1(inplace):
348348
def test_multi_set_names_pos_args_deprecation():
349349
# GH#41485
350350
idx = MultiIndex.from_product([["python", "cobra"], [2018, 2019]])
351-
352351
msg = (
353-
"In a future version of pandas all arguments of Index.set_names "
352+
"In a future version of pandas all arguments of MultiIndex.set_names "
354353
"except for the argument 'names' will be keyword-only"
355354
)
356-
357355
with tm.assert_produces_warning(FutureWarning, match=msg):
358356
result = idx.set_names(["kind", "year"], None)
359-
360357
expected = MultiIndex(
361358
levels=[["python", "cobra"], [2018, 2019]],
362359
codes=[[0, 0, 1, 1], [0, 1, 0, 1]],
363360
names=["kind", "year"],
364361
)
365-
366362
tm.assert_index_equal(result, expected)
367363

368364

0 commit comments

Comments
 (0)