Skip to content

renaming Variable to a dimension name does not convert to IndexVariable #4107

Closed
@dcherian

Description

@dcherian

Seen in #4103

MCVE Code Sample

from xarray.tests import assert_identical

coord_1 = xr.DataArray([1, 2], dims=["coord_1"], attrs={"attrs": True})
da = xr.DataArray([1, 0], [coord_1])
obj = da.reset_index("coord_1").rename({"coord_1_": "coord_1"})
assert_identical(da, obj)

Expected Output

Problem Description

AssertionErrorTraceback (most recent call last)
<ipython-input-19-02ef6bd89884> in <module>
----> 1 assert_identical(da, obj)

~/work/python/xarray/xarray/tests/__init__.py in assert_identical(a, b)
    160     xarray.testing.assert_identical(a, b)
    161     xarray.testing._assert_internal_invariants(a)
--> 162     xarray.testing._assert_internal_invariants(b)
    163 
    164 

~/work/python/xarray/xarray/testing.py in _assert_internal_invariants(xarray_obj)
    265         _assert_variable_invariants(xarray_obj)
    266     elif isinstance(xarray_obj, DataArray):
--> 267         _assert_dataarray_invariants(xarray_obj)
    268     elif isinstance(xarray_obj, Dataset):
    269         _assert_dataset_invariants(xarray_obj)

~/work/python/xarray/xarray/testing.py in _assert_dataarray_invariants(da)
    210     assert all(
    211         isinstance(v, IndexVariable) for (k, v) in da._coords.items() if v.dims == (k,)
--> 212     ), {k: type(v) for k, v in da._coords.items()}
    213     for k, v in da._coords.items():
    214         _assert_variable_invariants(v, k)

AssertionError: {'coord_1': <class 'xarray.core.variable.Variable'>}

Versions

Output of xr.show_versions()

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions