This repository was archived by the owner on Oct 24, 2024. It is now read-only.
File tree Expand file tree Collapse file tree 3 files changed +16
-2
lines changed
Expand file tree Collapse file tree 3 files changed +16
-2
lines changed Original file line number Diff line number Diff line change @@ -87,7 +87,7 @@ class DataTree(
8787
8888 def __init__ (
8989 self ,
90- data : Optional [ Dataset | DataArray ] = None ,
90+ data : Dataset | DataArray = None ,
9191 parent : DataTree = None ,
9292 children : Mapping [str , DataTree ] = None ,
9393 name : str = None ,
@@ -119,7 +119,7 @@ def __init__(
119119 super ().__init__ (children = children )
120120 self .name = name
121121 self .parent = parent
122- self .ds = data # type: ignore[assignment]
122+ self .ds = data
123123
124124 @property
125125 def name (self ) -> str | None :
@@ -128,6 +128,11 @@ def name(self) -> str | None:
128128
129129 @name .setter
130130 def name (self , name : str | None ) -> None :
131+ if name is not None :
132+ if not isinstance (name , str ):
133+ raise TypeError ("node name must be a string or None" )
134+ if "/" in name :
135+ raise ValueError ("node names cannot contain forward slashes" )
131136 self ._name = name
132137
133138 @property
Original file line number Diff line number Diff line change @@ -63,6 +63,13 @@ def test_unnamed(self):
6363 dt = DataTree ()
6464 assert dt .name is None
6565
66+ def test_bad_names (self ):
67+ with pytest .raises (TypeError ):
68+ DataTree (name = 5 )
69+
70+ with pytest .raises (ValueError ):
71+ DataTree (name = "folder/data" )
72+
6673
6774class TestFamilyTree :
6875 def test_setparent_unnamed_child_node_fails (self ):
Original file line number Diff line number Diff line change @@ -38,6 +38,8 @@ Bug fixes
3838 By `Matt McCormick <https://github.com/thewtex >`_.
3939- Fix netCDF encoding for compression (:pull: `95 `)
4040 By `Joe Hamman <https://github.com/jhamman >`_.
41+ - Added validity checking for node names (:pull: `106 `)
42+ By `Tom Nicholas <https://github.com/TomNicholas >`_.
4143
4244Documentation
4345~~~~~~~~~~~~~
You can’t perform that action at this time.
0 commit comments