File tree Expand file tree Collapse file tree 2 files changed +21
-1
lines changed
Expand file tree Collapse file tree 2 files changed +21
-1
lines changed Original file line number Diff line number Diff line change @@ -41,7 +41,17 @@ def must_not_have_unit_if_observed_property_has_categories(self):
4141 return self
4242
4343
44- Parameters = RootModel [Dict [str , Parameter ]]
44+ class Parameters (RootModel ):
45+ root : Dict [str , Parameter ]
46+
47+ def __iter__ (self ):
48+ return iter (self .root )
49+
50+ def __getitem__ (self , key ):
51+ return self .root [key ]
52+
53+ def get (self , key , default = None ):
54+ return self .root .get (key , default )
4555
4656
4757class ParameterGroup (EdrBaseModel , extra = "allow" ):
Original file line number Diff line number Diff line change @@ -69,3 +69,13 @@ def test_data_type_alias():
6969 p .model_dump_json (exclude_none = True , by_alias = True )
7070 == '{"type":"Parameter","data-type":"integer","observedProperty":{"label":"Wind"}}'
7171 )
72+
73+
74+ def test_parameters_root_model ():
75+ file = Path (__file__ ).parent .resolve () / "test_data" / "parameter-with-data-type.json"
76+ with open (file , "r" ) as f :
77+ parameters = Parameters .model_validate_json (f .read ())
78+
79+ assert parameters ["str-parameter" ].observedProperty .label == "string parameter"
80+ assert parameters .get ("int-parameter" ).observedProperty .label == "int parameter"
81+ assert len ([p for p in parameters ]) == 3
You can’t perform that action at this time.
0 commit comments