@@ -156,8 +156,7 @@ def unstructure_component(value: Component) -> dict[str, Any]:
156156 field_value ,
157157 structured_grid_dims = value .parent .data .dims , # type: ignore
158158 )
159- if "period" in block_name :
160- period_block_name = block_name
159+ if block_name == "period" :
161160 period_data [field_name ] = {
162161 kper : field_value .isel (nper = kper )
163162 for kper in range (field_value .sizes ["nper" ])
@@ -177,16 +176,20 @@ def unstructure_component(value: Component) -> dict[str, Any]:
177176
178177 # setup indexed period blocks, combine arrays into datasets
179178 for kper , block in period_blocks .items ():
180- assert isinstance (period_block_name , str )
181- blocks [f"{ period_block_name } { kper + 1 } " ] = {
182- period_block_name : xr .Dataset (block , coords = block [arr_name ].coords )
179+ blocks [f"period { kper + 1 } " ] = {
180+ "period" : xr .Dataset (block , coords = block [arr_name ].coords )
183181 }
184182
183+ # combine "perioddata" block arrays (tdis, ats) into datasets
184+ # so they render as lists. temp hack TODO do this generically
185+ if perioddata := blocks .get ("perioddata" , None ):
186+ blocks ["perioddata" ] = {"perioddata" : xr .Dataset (perioddata )}
187+
185188 # total temporary hack! manually set solutiongroup 1.
186189 # TODO still need to support multiple..
187190 if "solutiongroup" in blocks :
188191 sg = blocks ["solutiongroup" ]
189192 blocks ["solutiongroup 1" ] = sg
190193 del blocks ["solutiongroup" ]
191194
192- return {name : block for name , block in blocks .items () if name != period_block_name }
195+ return {name : block for name , block in blocks .items () if name != "period" }
0 commit comments