From 86871c197a77c4bff9dc5fafec33a173f5649486 Mon Sep 17 00:00:00 2001 From: tp Date: Tue, 4 Feb 2020 22:48:12 +0000 Subject: [PATCH 1/2] CLN: clean signature of (Index|MultiIndex).copy --- pandas/core/indexes/base.py | 11 ++++++----- pandas/core/indexes/multi.py | 10 +++++----- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/pandas/core/indexes/base.py b/pandas/core/indexes/base.py index e431d0bcf7e9b..b2f73669e488a 100644 --- a/pandas/core/indexes/base.py +++ b/pandas/core/indexes/base.py @@ -823,20 +823,22 @@ def repeat(self, repeats, axis=None): # -------------------------------------------------------------------- # Copying Methods - def copy(self, name=None, deep=False, dtype=None, **kwargs): + def copy(self, name=None, deep=False, dtype=None, names=None): """ Make a copy of this object. Name and dtype sets those attributes on the new object. Parameters ---------- - name : str, optional + name : Optional[Hashable] deep : bool, default False - dtype : numpy dtype or pandas type + dtype : numpy dtype or pandas type, optional + names : list-like, optional + Kept for compatibility with MultiIndex. Should not be used. Returns ------- - copy : Index + Index Notes ----- @@ -848,7 +850,6 @@ def copy(self, name=None, deep=False, dtype=None, **kwargs): else: new_index = self._shallow_copy() - names = kwargs.get("names") names = self._validate_names(name=name, names=names, deep=deep) new_index = new_index.set_names(names) diff --git a/pandas/core/indexes/multi.py b/pandas/core/indexes/multi.py index 708bea7d132a2..f3b5e79702528 100644 --- a/pandas/core/indexes/multi.py +++ b/pandas/core/indexes/multi.py @@ -1000,8 +1000,8 @@ def copy( levels=None, codes=None, deep=False, + name=None, _set_identity=False, - **kwargs, ): """ Make a copy of this object. Names, dtype, levels and codes can be @@ -1013,10 +1013,13 @@ def copy( dtype : numpy dtype or pandas type, optional levels : sequence, optional codes : sequence, optional + deep : bool, default False + name : Optional[Hashable] + Kept for compatibility with 1-dimensional Index. Should not be used. Returns ------- - copy : MultiIndex + MultiIndex Notes ----- @@ -1024,10 +1027,7 @@ def copy( ``deep``, but if ``deep`` is passed it will attempt to deepcopy. This could be potentially expensive on large MultiIndex objects. """ - name = kwargs.get("name") names = self._validate_names(name=name, names=names, deep=deep) - if "labels" in kwargs: - raise TypeError("'labels' argument has been removed; use 'codes' instead") if deep: from copy import deepcopy From 53df2b826900c5148128676587e5e4f1c32da6ba Mon Sep 17 00:00:00 2001 From: tp Date: Wed, 5 Feb 2020 13:44:52 +0000 Subject: [PATCH 2/2] change type of name to Label --- pandas/core/indexes/base.py | 2 +- pandas/core/indexes/multi.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pandas/core/indexes/base.py b/pandas/core/indexes/base.py index b2f73669e488a..38ff3f3c3b871 100644 --- a/pandas/core/indexes/base.py +++ b/pandas/core/indexes/base.py @@ -830,7 +830,7 @@ def copy(self, name=None, deep=False, dtype=None, names=None): Parameters ---------- - name : Optional[Hashable] + name : Label deep : bool, default False dtype : numpy dtype or pandas type, optional names : list-like, optional diff --git a/pandas/core/indexes/multi.py b/pandas/core/indexes/multi.py index f3b5e79702528..2052082e692a6 100644 --- a/pandas/core/indexes/multi.py +++ b/pandas/core/indexes/multi.py @@ -1014,7 +1014,7 @@ def copy( levels : sequence, optional codes : sequence, optional deep : bool, default False - name : Optional[Hashable] + name : Label Kept for compatibility with 1-dimensional Index. Should not be used. Returns