|
| 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