Check attrs deep copy, see :issue:`2835`
()
| 7379 | |
| 7380 | |
| 7381 | def test_deepcopy_nested_attrs() -> None: |
| 7382 | """Check attrs deep copy, see :issue:`2835`""" |
| 7383 | da1 = xr.DataArray([[1, 2], [3, 4]], dims=("x", "y"), coords={"x": [10, 20]}) |
| 7384 | da1.attrs["flat"] = "0" |
| 7385 | da1.attrs["nested"] = {"level1a": "1", "level1b": "1"} |
| 7386 | |
| 7387 | da2 = da1.copy(deep=True) |
| 7388 | |
| 7389 | da2.attrs["new"] = "2" |
| 7390 | da2.attrs.update({"new2": "2"}) |
| 7391 | da2.attrs["flat"] = "2" |
| 7392 | da2.attrs["nested"]["level1a"] = "2" |
| 7393 | da2.attrs["nested"].update({"level1b": "2"}) |
| 7394 | |
| 7395 | # Coarse test |
| 7396 | assert not da1.identical(da2) |
| 7397 | |
| 7398 | # Check attrs levels |
| 7399 | assert da1.attrs["flat"] != da2.attrs["flat"] |
| 7400 | assert da1.attrs["nested"] != da2.attrs["nested"] |
| 7401 | assert "new" not in da1.attrs |
| 7402 | assert "new2" not in da1.attrs |
| 7403 | |
| 7404 | |
| 7405 | def test_deepcopy_obj_array() -> None: |