Skip to content

Commit 7fce136

Browse files
committed
overloads for parse_array_metadata
1 parent cf0615b commit 7fce136

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

src/zarr/core/array.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -173,14 +173,23 @@ class DefaultFillValue:
173173
DEFAULT_FILL_VALUE = DefaultFillValue()
174174

175175

176-
def parse_array_metadata(data: Any) -> ArrayMetadata:
176+
@overload
177+
def parse_array_metadata(data: ArrayV2Metadata | ArrayMetadataJSON_V2) -> ArrayV2Metadata: ...
178+
179+
180+
@overload
181+
def parse_array_metadata(data: ArrayV3Metadata | ArrayMetadataJSON_V3) -> ArrayV3Metadata: ...
182+
183+
184+
def parse_array_metadata(
185+
data: ArrayV2Metadata | ArrayMetadataJSON_V2 | ArrayV3Metadata | ArrayMetadataJSON_V3,
186+
) -> ArrayV2Metadata | ArrayV3Metadata:
177187
if isinstance(data, ArrayMetadata):
178188
return data
179189
elif isinstance(data, dict):
180190
zarr_format = data.get("zarr_format")
181191
if zarr_format == 3:
182-
meta_out = ArrayV3Metadata.from_dict(data)
183-
return meta_out
192+
return ArrayV3Metadata.from_dict(data)
184193
elif zarr_format == 2:
185194
return ArrayV2Metadata.from_dict(data)
186195
else:

0 commit comments

Comments
 (0)