Skip to content

Commit aefa5e3

Browse files
committed
Bad idea to deep copy indexes.
1 parent 1bffa83 commit aefa5e3

File tree

2 files changed

+6
-8
lines changed

2 files changed

+6
-8
lines changed

xarray/core/dataarray.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -494,7 +494,7 @@ def _to_dataset_whole(
494494
if shallow_copy:
495495
for k in variables:
496496
variables[k] = variables[k].copy(deep=False)
497-
indexes = copy_indexes(self._indexes, deep=(not shallow_copy))
497+
indexes = copy_indexes(self._indexes)
498498

499499
coord_names = set(self._coords)
500500
dataset = Dataset._from_vars_and_coord_names(
@@ -943,7 +943,7 @@ def copy(self, deep: bool = True, data: Any = None) -> "DataArray":
943943
"""
944944
variable = self.variable.copy(deep=deep, data=data)
945945
coords = {k: v.copy(deep=deep) for k, v in self._coords.items()}
946-
indexes = copy_indexes(self._indexes, deep=deep)
946+
indexes = copy_indexes(self._indexes)
947947
return self._replace(variable, coords, indexes=indexes)
948948

949949
def __copy__(self) -> "DataArray":

xarray/core/indexes.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -101,20 +101,18 @@ def roll_index(index: pd.Index, count: int, axis: int = 0) -> pd.Index:
101101

102102

103103
def copy_indexes(
104-
indexes: Optional[Dict[Hashable, pd.Index]],
105-
deep: bool = True,
106-
exclude: Optional[Any] = None,
104+
indexes: Optional[Dict[Hashable, pd.Index]], exclude: Optional[Any] = None
107105
) -> Optional[Dict[Hashable, pd.Index]]:
106+
""" Creates new indexes dict from existing dict optionally excluding some dimensions.
107+
"""
108108
if exclude is None:
109109
exclude = ()
110110

111111
if is_scalar(exclude):
112112
exclude = (exclude,)
113113

114114
if indexes is not None:
115-
new_indexes = {
116-
k: v.copy(deep=deep) for k, v in indexes.items() if k not in exclude
117-
}
115+
new_indexes = {k: v for k, v in indexes.items() if k not in exclude}
118116
else:
119117
new_indexes = None # type: ignore
120118

0 commit comments

Comments
 (0)