Skip to content

Commit

Permalink
Fixes deepcopy of Index (#7140)
Browse files Browse the repository at this point in the history
* fix date of 2022.09 release
* fix deepcopy of indexes
  • Loading branch information
headtr1ck authored Oct 7, 2022
1 parent 8dac64b commit 8eea8bb
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 8 deletions.
4 changes: 2 additions & 2 deletions doc/whats-new.rst
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@ Internal Changes

.. _whats-new.2022.09.0:

v2022.09.0 (September 9, 2022)
------------------------------
v2022.09.0 (September 30, 2022)
-------------------------------

This release brings a large number of bugfixes and documentation improvements, as well as an external interface for
setting custom indexes!
Expand Down
13 changes: 7 additions & 6 deletions xarray/core/indexes.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,19 +112,20 @@ def rename(
return self

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

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

def copy(self, deep: bool = True) -> Index:
return self._copy(deep=deep)

def _copy(self, deep: bool = True, memo: dict[int, Any] | None = None) -> Index:
cls = self.__class__
copied = cls.__new__(cls)
if deep:
for k, v in self.__dict__.items():
setattr(copied, k, copy.deepcopy(v))
setattr(copied, k, copy.deepcopy(v, memo))
else:
copied.__dict__.update(self.__dict__)
return copied
Expand Down

0 comments on commit 8eea8bb

Please sign in to comment.