MCPcopy Index your code
hub / github.com/pydata/xarray / _validate_and_transpose_existing_dims

Function _validate_and_transpose_existing_dims

xarray/backends/zarr.py:608–643  ·  view source on GitHub ↗
(
    var_name, new_var, existing_var, region, append_dim
)

Source from the content-addressed store, hash-verified

606
607
608def _validate_and_transpose_existing_dims(
609 var_name, new_var, existing_var, region, append_dim
610):
611 if new_var.dims != existing_var.dims:
612 if set(existing_var.dims) == set(new_var.dims):
613 new_var = new_var.transpose(*existing_var.dims)
614 else:
615 raise ValueError(
616 f"variable {var_name!r} already exists with different "
617 f"dimension names {existing_var.dims} != "
618 f"{new_var.dims}, but changing variable "
619 f"dimensions is not supported by to_zarr()."
620 )
621
622 existing_sizes = {}
623 for dim, size in existing_var.sizes.items():
624 if region is not None and dim in region:
625 start, stop, stride = region[dim].indices(size)
626 assert stride == 1 # region was already validated
627 size = stop - start
628 if dim != append_dim:
629 existing_sizes[dim] = size
630
631 new_sizes = {dim: size for dim, size in new_var.sizes.items() if dim != append_dim}
632 if existing_sizes != new_sizes:
633 raise ValueError(
634 f"variable {var_name!r} already exists with different "
635 f"dimension sizes: {existing_sizes} != {new_sizes}. "
636 f"to_zarr() only supports changing dimension sizes when "
637 f"explicitly appending, but append_dim={append_dim!r}. "
638 f"If you are attempting to write to a subset of the "
639 f"existing store without changing dimension sizes, "
640 f"consider using the region argument in to_zarr()."
641 )
642
643 return new_var
644
645
646def _put_attrs(zarr_obj, attrs):

Callers 1

storeMethod · 0.85

Calls 2

itemsMethod · 0.80
transposeMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…