|
| 1 | +import itertools |
1 | 2 | import subprocess |
2 | 3 | from dataclasses import dataclass |
3 | 4 | from itertools import product |
|
13 | 14 | import zarr.abc.codec |
14 | 15 | import zarr.codecs as zarrcodecs |
15 | 16 | from zarr.abc.numcodec import Numcodec |
| 17 | +from zarr.codecs.blosc import BLOSC_CNAME, BLOSC_SHUFFLE, BloscCodec |
| 18 | +from zarr.codecs.gzip import GzipCodec |
16 | 19 | from zarr.core.array import Array |
17 | 20 | from zarr.core.chunk_key_encodings import V2ChunkKeyEncoding |
18 | 21 | from zarr.core.dtype.npy.bytes import VariableLengthBytes |
@@ -40,9 +43,9 @@ def runner_installed() -> bool: |
40 | 43 | class ArrayParams: |
41 | 44 | values: np.ndarray[tuple[int], np.dtype[np.generic]] |
42 | 45 | fill_value: np.generic | str | int | bytes |
43 | | - filters: tuple[Numcodec, ...] = () |
| 46 | + filters: tuple[Numcodec | zarr.abc.codec.Codec, ...] = () |
44 | 47 | serializer: str | None = None |
45 | | - compressor: Numcodec |
| 48 | + compressor: Numcodec | zarr.abc.codec.Codec |
46 | 49 |
|
47 | 50 |
|
48 | 51 | basic_codecs: tuple[Numcodec, ...] = GZip(), Blosc(), LZ4(), LZMA(), Zstd() |
@@ -93,13 +96,35 @@ class ArrayParams: |
93 | 96 | compressor=GZip(), |
94 | 97 | ) |
95 | 98 | ] |
| 99 | +# Snappy is not supported by numcodecs yet |
| 100 | +zarr_v3_blosc_cases = [ |
| 101 | + ArrayParams( |
| 102 | + values=np.arange(4, dtype="float64"), |
| 103 | + fill_value=1, |
| 104 | + compressor=BloscCodec(clevel=1, shuffle=shuf, cname=cname), |
| 105 | + ) |
| 106 | + for shuf, cname in itertools.product(BLOSC_SHUFFLE, BLOSC_CNAME) |
| 107 | + if cname != "snappy" |
| 108 | +] |
| 109 | + |
| 110 | +zarr_v3_gzip_cases = [ |
| 111 | + ArrayParams( |
| 112 | + values=np.arange(4, dtype="float64"), |
| 113 | + fill_value=1, |
| 114 | + compressor=GzipCodec(level=level), |
| 115 | + ) |
| 116 | + for level in [1, 2, 3] |
| 117 | +] |
| 118 | + |
96 | 119 | array_cases_v2_18 = ( |
97 | 120 | basic_array_cases |
98 | 121 | + bytes_array_cases |
99 | 122 | + datetime_array_cases |
100 | 123 | + string_array_cases |
101 | 124 | + vlen_string_cases |
102 | 125 | + vlen_bytes_cases |
| 126 | + + zarr_v3_blosc_cases |
| 127 | + + zarr_v3_gzip_cases |
103 | 128 | ) |
104 | 129 |
|
105 | 130 | array_cases_v3_08 = vlen_string_cases |
|
0 commit comments