Skip to content

Commit 7f54bbf

Browse files
committed
update config test
1 parent df60d05 commit 7f54bbf

File tree

1 file changed

+60
-52
lines changed

1 file changed

+60
-52
lines changed

tests/test_config.py

Lines changed: 60 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
from zarr.core.buffer import NDBuffer
2525
from zarr.core.codec_pipeline import BatchedCodecPipeline
2626
from zarr.core.config import BadConfigError, config
27-
from zarr.core.dtype import get_data_type_from_native_dtype
27+
from zarr.core.dtype._numpy import Int8, VariableLengthString
2828
from zarr.core.indexing import SelectorTuple
2929
from zarr.registry import (
3030
fully_qualified_name,
@@ -48,55 +48,60 @@
4848

4949
def test_config_defaults_set() -> None:
5050
# regression test for available defaults
51-
assert config.defaults == [
52-
{
53-
"default_zarr_format": 3,
54-
"array": {
55-
"order": "C",
56-
"write_empty_chunks": False,
57-
"v2_default_compressor": {"default": {"id": "zstd", "level": 0, "checksum": False}},
58-
"v2_default_filters": {
59-
"default": None,
60-
"numpy__variable_length_utf8": [{"id": "vlen-utf8"}],
61-
"numpy__fixed_length_ucs4": [{"id": "vlen-utf8"}],
62-
"numpy__fixed_length_ascii": [{"id": "vlen-bytes"}],
51+
assert (
52+
config.defaults
53+
== [
54+
{
55+
"default_zarr_format": 3,
56+
"array": {
57+
"order": "C",
58+
"write_empty_chunks": False,
59+
"v2_default_compressor": {
60+
"default": {"id": "zstd", "level": 0, "checksum": False},
61+
"variable-length-string": {"id": "zstd", "level": 0, "checksum": False},
62+
},
63+
"v2_default_filters": {
64+
"default": None,
65+
"variable-length-string": [{"id": "vlen-utf8"}],
66+
},
67+
"v3_default_filters": {"default": [], "variable-length-string": []},
68+
"v3_default_serializer": {
69+
"default": {"name": "bytes", "configuration": {"endian": "little"}},
70+
"variable-length-string": {"name": "vlen-utf8"},
71+
},
72+
"v3_default_compressors": {
73+
"default": [
74+
{"name": "zstd", "configuration": {"level": 0, "checksum": False}},
75+
],
76+
"variable-length-string": [
77+
{"name": "zstd", "configuration": {"level": 0, "checksum": False}}
78+
],
79+
},
6380
},
64-
"v3_default_filters": {"default": []},
65-
"v3_default_serializer": {
66-
"default": {"name": "bytes", "configuration": {"endian": "little"}},
67-
"numpy__variable_length_utf8": {"name": "vlen-utf8"},
68-
"numpy__fixed_length_ucs4": {"name": "vlen-utf8"},
69-
"r*": {"name": "vlen-bytes"},
81+
"async": {"concurrency": 10, "timeout": None},
82+
"threading": {"max_workers": None},
83+
"json_indent": 2,
84+
"codec_pipeline": {
85+
"path": "zarr.core.codec_pipeline.BatchedCodecPipeline",
86+
"batch_size": 1,
7087
},
71-
"v3_default_compressors": {
72-
"default": [
73-
{"name": "zstd", "configuration": {"level": 0, "checksum": False}},
74-
]
88+
"codecs": {
89+
"blosc": "zarr.codecs.blosc.BloscCodec",
90+
"gzip": "zarr.codecs.gzip.GzipCodec",
91+
"zstd": "zarr.codecs.zstd.ZstdCodec",
92+
"bytes": "zarr.codecs.bytes.BytesCodec",
93+
"endian": "zarr.codecs.bytes.BytesCodec", # compatibility with earlier versions of ZEP1
94+
"crc32c": "zarr.codecs.crc32c_.Crc32cCodec",
95+
"sharding_indexed": "zarr.codecs.sharding.ShardingCodec",
96+
"transpose": "zarr.codecs.transpose.TransposeCodec",
97+
"vlen-utf8": "zarr.codecs.vlen_utf8.VLenUTF8Codec",
98+
"vlen-bytes": "zarr.codecs.vlen_utf8.VLenBytesCodec",
7599
},
76-
},
77-
"async": {"concurrency": 10, "timeout": None},
78-
"threading": {"max_workers": None},
79-
"json_indent": 2,
80-
"codec_pipeline": {
81-
"path": "zarr.core.codec_pipeline.BatchedCodecPipeline",
82-
"batch_size": 1,
83-
},
84-
"buffer": "zarr.core.buffer.cpu.Buffer",
85-
"ndbuffer": "zarr.core.buffer.cpu.NDBuffer",
86-
"codecs": {
87-
"blosc": "zarr.codecs.blosc.BloscCodec",
88-
"gzip": "zarr.codecs.gzip.GzipCodec",
89-
"zstd": "zarr.codecs.zstd.ZstdCodec",
90-
"bytes": "zarr.codecs.bytes.BytesCodec",
91-
"endian": "zarr.codecs.bytes.BytesCodec",
92-
"crc32c": "zarr.codecs.crc32c_.Crc32cCodec",
93-
"sharding_indexed": "zarr.codecs.sharding.ShardingCodec",
94-
"transpose": "zarr.codecs.transpose.TransposeCodec",
95-
"vlen-utf8": "zarr.codecs.vlen_utf8.VLenUTF8Codec",
96-
"vlen-bytes": "zarr.codecs.vlen_utf8.VLenBytesCodec",
97-
},
98-
}
99-
]
100+
"buffer": "zarr.core.buffer.cpu.Buffer",
101+
"ndbuffer": "zarr.core.buffer.cpu.NDBuffer",
102+
}
103+
]
104+
)
100105
assert config.get("array.order") == "C"
101106
assert config.get("async.concurrency") == 10
102107
assert config.get("async.timeout") is None
@@ -297,23 +302,26 @@ class NewCodec2(BytesCodec):
297302
get_codec_class("new_codec")
298303

299304

300-
@pytest.mark.parametrize("dtype", ["int", "bytes", "str"])
301-
async def test_default_codecs(dtype: str) -> None:
305+
@pytest.mark.parametrize("dtype_category", ["variable-length-string", "default"])
306+
async def test_default_codecs(dtype_category: str) -> None:
302307
"""
303308
Test that the default compressors are sensitive to the current setting of the config.
304309
"""
305-
zdtype = get_data_type_from_native_dtype(dtype)
310+
if dtype_category == "variable-length-string":
311+
zdtype = VariableLengthString()
312+
else:
313+
zdtype = Int8()
306314
expected_compressors = (GzipCodec(),)
307315
new_conf = {
308-
f"array.v3_default_compressors.{zdtype._zarr_v3_name.replace('.', '__')}": [
316+
f"array.v3_default_compressors.{dtype_category}": [
309317
c.to_dict() for c in expected_compressors
310318
]
311319
}
312320
with config.set(new_conf):
313321
arr = await create_array(
314322
shape=(100,),
315323
chunks=(100,),
316-
dtype=dtype,
324+
dtype=zdtype,
317325
zarr_format=3,
318326
store=MemoryStore(),
319327
)

0 commit comments

Comments
 (0)