Skip to content

Commit 8eea8bb

Browse files
authored
Fixes deepcopy of Index (#7140)
* fix date of 2022.09 release * fix deepcopy of indexes
1 parent 8dac64b commit 8eea8bb

File tree

2 files changed

+9
-8
lines changed

2 files changed

+9
-8
lines changed

doc/whats-new.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ Internal Changes
5050

5151
.. _whats-new.2022.09.0:
5252

53-
v2022.09.0 (September 9, 2022)
54-
------------------------------
53+
v2022.09.0 (September 30, 2022)
54+
-------------------------------
5555

5656
This release brings a large number of bugfixes and documentation improvements, as well as an external interface for
5757
setting custom indexes!

xarray/core/indexes.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -112,19 +112,20 @@ def rename(
112112
return self
113113

114114
def __copy__(self) -> Index:
115-
return self.copy(deep=False)
115+
return self._copy(deep=False)
116116

117-
def __deepcopy__(self, memo=None) -> Index:
118-
# memo does nothing but is required for compatibility with
119-
# copy.deepcopy
120-
return self.copy(deep=True)
117+
def __deepcopy__(self, memo: dict[int, Any] | None = None) -> Index:
118+
return self._copy(deep=True, memo=memo)
121119

122120
def copy(self, deep: bool = True) -> Index:
121+
return self._copy(deep=deep)
122+
123+
def _copy(self, deep: bool = True, memo: dict[int, Any] | None = None) -> Index:
123124
cls = self.__class__
124125
copied = cls.__new__(cls)
125126
if deep:
126127
for k, v in self.__dict__.items():
127-
setattr(copied, k, copy.deepcopy(v))
128+
setattr(copied, k, copy.deepcopy(v, memo))
128129
else:
129130
copied.__dict__.update(self.__dict__)
130131
return copied

0 commit comments

Comments
 (0)