Skip to content

Commit 75aff71

Browse files
authored
Merge pull request #108 from dstansby/main
Fix from_zarr for arrays with no dimension names
2 parents 3fab818 + b4aabf9 commit 75aff71

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

src/pydantic_zarr/v3.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1046,7 +1046,10 @@ def auto_storage_transformers(data: object) -> tuple[AnyNamedConfig, ...]:
10461046

10471047
def auto_dimension_names(data: object) -> tuple[str | None, ...] | None:
10481048
if hasattr(data, "metadata") and hasattr(data.metadata, "dimension_names"):
1049-
return tuple(data.metadata.dimension_names)
1049+
if data.metadata.dimension_names is None:
1050+
return None
1051+
else:
1052+
return tuple(data.metadata.dimension_names)
10501053
return None
10511054

10521055

tests/test_pydantic_zarr/test_v3.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,13 @@ def test_mix_v3_v2_fails() -> None:
252252
GroupSpec.from_flat(members_flat) # type: ignore[arg-type]
253253

254254

255-
def test_dim_names_from_zarr_array() -> None:
256-
arr = zarr.zeros((1,), dimension_names=["x"])
257-
spec = ArraySpec.from_zarr(arr)
258-
assert spec.dimension_names == ("x",)
255+
@pytest.mark.parametrize(
256+
("arr", "expected_names"),
257+
[
258+
(zarr.zeros((1,), dimension_names=["x"]), ("x",)),
259+
(zarr.zeros((1,)), None),
260+
],
261+
)
262+
def test_dim_names_from_zarr_array(arr: zarr.Array, expected_names: tuple[str, ...] | None) -> None:
263+
spec: AnyArraySpec = ArraySpec.from_zarr(arr)
264+
assert spec.dimension_names == expected_names

0 commit comments

Comments
 (0)