MCPcopy
hub / github.com/pydata/xarray / _replace_maybe_drop_dims

Method _replace_maybe_drop_dims

xarray/core/dataarray.py:522–549  ·  view source on GitHub ↗
(
        self,
        variable: Variable,
        name: Hashable | Default | None = _default,
    )

Source from the content-addressed store, hash-verified

520 return type(self)(variable, coords, name=name, indexes=indexes, fastpath=True)
521
522 def _replace_maybe_drop_dims(
523 self,
524 variable: Variable,
525 name: Hashable | Default | None = _default,
526 ) -> Self:
527 if self.sizes == variable.sizes:
528 coords = self._coords.copy()
529 indexes = self._indexes
530 elif set(self.dims) == set(variable.dims):
531 # Shape has changed (e.g. from reduce(..., keepdims=True)
532 new_sizes = dict(zip(self.dims, variable.shape, strict=True))
533 coords = {
534 k: v
535 for k, v in self._coords.items()
536 if v.shape == tuple(new_sizes[d] for d in v.dims)
537 }
538 indexes = filter_indexes_from_coords(self._indexes, set(coords))
539 else:
540 allowed_dims = set(variable.dims)
541 coords = {}
542 for k, v in self._coords.items():
543 if k in self._indexes:
544 if self._indexes[k].should_add_coord_to_array(k, v, allowed_dims):
545 coords[k] = v
546 elif set(v.dims) <= allowed_dims:
547 coords[k] = v
548 indexes = filter_indexes_from_coords(self._indexes, set(coords))
549 return self._replace(variable, coords, name, indexes=indexes)
550
551 def _overwrite_indexes(
552 self,

Callers 5

_getitem_coordMethod · 0.95
reduceMethod · 0.95
argminMethod · 0.95
argmaxMethod · 0.95
_concat_shortcutMethod · 0.80

Calls 5

_replaceMethod · 0.95
itemsMethod · 0.80
copyMethod · 0.45

Tested by

no test coverage detected