Skip to content

Commit 61c32f8

Browse files
committed
typing
1 parent 5f94313 commit 61c32f8

File tree

3 files changed

+12
-4
lines changed

3 files changed

+12
-4
lines changed

src/zarr/core/metadata/v2.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,9 @@ def parse_filters(data: object) -> tuple[numcodecs.abc.Codec, ...] | None:
271271
elif isinstance(val, dict):
272272
out.append(numcodecs.get_codec(val))
273273
elif isinstance(val, str):
274-
out.append(parse_filters(val)[0])
274+
filter = parse_filters(val)
275+
if filter is not None:
276+
out.extend(filter)
275277
else:
276278
msg = f"For Zarr format 2 arrays, all elements of `filters` must be a numcodecs.abc.Codec or a dict or str representation of numcodecs.abc.Codec. Got {type(val)} at index {idx} instead."
277279
raise TypeError(msg)

src/zarr/registry.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,6 @@ def _parse_array_array_codec(data: dict[str, JSON] | str | Codec) -> ArrayArrayC
232232
"""
233233
from zarr.abc.codec import ArrayArrayCodec
234234

235-
result: ArrayArrayCodec
236235
if isinstance(data, str):
237236
try:
238237
result = _resolve_codec({"name": data, "configuration": {}})

tests/test_array.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from unittest import mock
1111

1212
import numcodecs
13+
import numcodecs.abc
1314
import numpy as np
1415
import numpy.typing as npt
1516
import pytest
@@ -1340,7 +1341,9 @@ async def test_invalid_chunk_encoding(store: MemoryStore) -> None:
13401341
("compressors", "bytes"),
13411342
],
13421343
)
1343-
async def test_chunk_encoding_wrong_type(argument_key, codec, store: MemoryStore) -> None:
1344+
async def test_chunk_encoding_wrong_type(
1345+
argument_key: str, codec: str, store: MemoryStore
1346+
) -> None:
13441347
"""
13451348
Test that passing an invalid codec to create_array raises an error.
13461349
"""
@@ -1369,7 +1372,11 @@ async def test_chunk_encoding_wrong_type(argument_key, codec, store: MemoryStore
13691372
],
13701373
)
13711374
async def test_chunk_encoding_missing_arguments(
1372-
store: MemoryStore, argument_key, codec, codec_cls_name, zarr_format
1375+
store: MemoryStore,
1376+
argument_key: str,
1377+
codec: str,
1378+
codec_cls_name: str,
1379+
zarr_format: ZarrFormat,
13731380
) -> None:
13741381
codec_key = codec if not isinstance(codec, tuple) else codec[0]
13751382
argument_key_single = argument_key.removesuffix("s")

0 commit comments

Comments
 (0)