Skip to content

Commit a74ddf7

Browse files
authored
Datatree setitem dataset (#9516)
* un-xfail tests * wrap Dataset input in a DataTree node before setting
1 parent 17571b5 commit a74ddf7

File tree

2 files changed

+2
-2
lines changed

2 files changed

+2
-2
lines changed

xarray/core/datatree.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -895,6 +895,8 @@ def __setitem__(
895895
# TODO should possibly deal with hashables in general?
896896
# path-like: a name of a node/variable, or path to a node/variable
897897
path = NodePath(key)
898+
if isinstance(value, Dataset):
899+
value = DataTree(dataset=value)
898900
return self._set_item(path, value, new_nodes_along_path=True)
899901
else:
900902
raise ValueError("Invalid format for key")

xarray/tests/test_datatree.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -513,14 +513,12 @@ def test_setitem_dataset_on_this_node(self):
513513
results["."] = data
514514
assert_identical(results.to_dataset(), data)
515515

516-
@pytest.mark.xfail(reason="assigning Datasets doesn't yet create new nodes")
517516
def test_setitem_dataset_as_new_node(self):
518517
data = xr.Dataset({"temp": [0, 50]})
519518
folder1 = DataTree(name="folder1")
520519
folder1["results"] = data
521520
assert_identical(folder1["results"].to_dataset(), data)
522521

523-
@pytest.mark.xfail(reason="assigning Datasets doesn't yet create new nodes")
524522
def test_setitem_dataset_as_new_node_requiring_intermediate_nodes(self):
525523
data = xr.Dataset({"temp": [0, 50]})
526524
folder1 = DataTree(name="folder1")

0 commit comments

Comments
 (0)