diff --git a/asdf/_asdf.py b/asdf/_asdf.py index 88d320ccd..32a3bf09c 100644 --- a/asdf/_asdf.py +++ b/asdf/_asdf.py @@ -548,6 +548,9 @@ def __getitem__(self, key): def __setitem__(self, key, value): self.tree[key] = value + def __delitem__(self, key): + del self.tree[key] + def __contains__(self, item): return item in self.tree diff --git a/asdf/_tests/test_api.py b/asdf/_tests/test_api.py index 8ac5d514e..1a8d70603 100644 --- a/asdf/_tests/test_api.py +++ b/asdf/_tests/test_api.py @@ -165,6 +165,13 @@ def test_top_level_tree(small_tree): ff2["tree"] = small_tree assert_tree_match(ff2.tree["tree"], ff2["tree"]) + ff3 = asdf.AsdfFile(tree) + assert "tree" in ff3 + del ff3["tree"] + assert "tree" not in ff3 + with pytest.raises(KeyError): + _ = ff3["tree"] + def test_top_level_keys(small_tree): tree = {"tree": small_tree} diff --git a/changes/2008.bugfix.rst b/changes/2008.bugfix.rst new file mode 100644 index 000000000..41bf2289b --- /dev/null +++ b/changes/2008.bugfix.rst @@ -0,0 +1 @@ +Added ``__delitem__`` method to `AsdfFile`.