File tree Expand file tree Collapse file tree 2 files changed +7
-1
lines changed Expand file tree Collapse file tree 2 files changed +7
-1
lines changed Original file line number Diff line number Diff line change @@ -3816,10 +3816,12 @@ def _parse_chunk_encoding_v2(
38163816 _filters : tuple [numcodecs .abc .Codec , ...] | None
38173817 _compressor : numcodecs .abc .Codec | None
38183818
3819- if compressor is None :
3819+ if compressor is None or compressor == () :
38203820 _compressor = None
38213821 elif compressor == "auto" :
38223822 _compressor = default_compressor
3823+ elif isinstance (compressor , tuple | list ) and len (compressor ) == 1 :
3824+ _compressor = parse_compressor (compressor [0 ])
38233825 else :
38243826 if isinstance (compressor , Iterable ) and not isinstance (compressor , dict ):
38253827 msg = f"For Zarr v2 arrays, the `compressor` must be a single codec. Got an iterable with type { type (compressor )} instead."
Original file line number Diff line number Diff line change @@ -985,7 +985,9 @@ async def test_create_array_no_filters_compressors(
985985 compressors = empty_value ,
986986 filters = empty_value ,
987987 )
988+ # The v2 metadata stores None and () separately
988989 assert arr .metadata .filters == empty_value # type: ignore[union-attr]
990+ # The v2 metadata does not allow tuple for compressor, therefore it is turned into None
989991 assert arr .metadata .compressor is None # type: ignore[union-attr]
990992
991993 # v3
@@ -1081,6 +1083,8 @@ async def test_create_array_v3_chunk_encoding(
10811083 "auto" ,
10821084 None ,
10831085 numcodecs .Zstd (level = 3 ),
1086+ (),
1087+ (numcodecs .Zstd (level = 3 ),),
10841088 ],
10851089)
10861090@pytest .mark .parametrize (
You can’t perform that action at this time.
0 commit comments