@@ -137,7 +137,8 @@ def parse_array_metadata(data: Any) -> ArrayMetadata:
137137 if isinstance (data , ArrayMetadata ):
138138 return data
139139 elif isinstance (data , dict ):
140- if data ["zarr_format" ] == 3 :
140+ zarr_format = data .get ("zarr_format" )
141+ if zarr_format == 3 :
141142 meta_out = ArrayV3Metadata .from_dict (data )
142143 if len (meta_out .storage_transformers ) > 0 :
143144 msg = (
@@ -146,8 +147,10 @@ def parse_array_metadata(data: Any) -> ArrayMetadata:
146147 )
147148 raise ValueError (msg )
148149 return meta_out
149- elif data [ " zarr_format" ] == 2 :
150+ elif zarr_format == 2 :
150151 return ArrayV2Metadata .from_dict (data )
152+ else :
153+ raise ValueError (f"Invalid zarr_format: { zarr_format } . Expected 2 or 3" )
151154 raise TypeError
152155
153156
@@ -265,17 +268,6 @@ def __init__(
265268 store_path : StorePath ,
266269 config : ArrayConfigLike | None = None ,
267270 ) -> None :
268- if isinstance (metadata , dict ):
269- zarr_format = metadata ["zarr_format" ]
270- # TODO: remove this when we extensively type the dict representation of metadata
271- _metadata = cast (dict [str , JSON ], metadata )
272- if zarr_format == 2 :
273- metadata = ArrayV2Metadata .from_dict (_metadata )
274- elif zarr_format == 3 :
275- metadata = ArrayV3Metadata .from_dict (_metadata )
276- else :
277- raise ValueError (f"Invalid zarr_format: { zarr_format } . Expected 2 or 3" )
278-
279271 metadata_parsed = parse_array_metadata (metadata )
280272 config_parsed = parse_array_config (config )
281273
0 commit comments