diff --git a/doc/whats-new.rst b/doc/whats-new.rst index 73d83d5260e..8fef67fbb29 100644 --- a/doc/whats-new.rst +++ b/doc/whats-new.rst @@ -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! diff --git a/xarray/core/indexes.py b/xarray/core/indexes.py index afbae5f3baa..89022ac1fbb 100644 --- a/xarray/core/indexes.py +++ b/xarray/core/indexes.py @@ -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