5555 ZARR_JSON ,
5656 ZARRAY_JSON ,
5757 ZATTRS_JSON ,
58+ ChunksLike ,
5859 DimensionNamesLike ,
5960 MemoryOrder ,
6061 ShapeLike ,
@@ -2828,7 +2829,7 @@ def __array__(
28282829 raise ValueError (msg )
28292830
28302831 arr = self [...]
2831- arr_np : NDArrayLike = np .array (arr , dtype = dtype )
2832+ arr_np = np .array (arr , dtype = dtype )
28322833
28332834 if dtype is not None :
28342835 arr_np = arr_np .astype (dtype )
@@ -4411,7 +4412,7 @@ async def from_array(
44114412 data : AnyArray | npt .ArrayLike ,
44124413 write_data : bool = True ,
44134414 name : str | None = None ,
4414- chunks : Literal ["auto" , "keep" ] | tuple [ int , ...] | Sequence [ Sequence [ int ] ] = "keep" ,
4415+ chunks : ChunksLike | Literal ["auto" , "keep" ] = "keep" ,
44154416 shards : ShardsLike | None | Literal ["keep" ] = "keep" ,
44164417 filters : FiltersLike | Literal ["keep" ] = "keep" ,
44174418 compressors : CompressorsLike | Literal ["keep" ] = "keep" ,
@@ -4684,7 +4685,7 @@ async def init_array(
46844685 store_path : StorePath ,
46854686 shape : ShapeLike ,
46864687 dtype : ZDTypeLike ,
4687- chunks : tuple [ int , ...] | Sequence [ Sequence [ int ]] | Literal ["auto" ] = "auto" ,
4688+ chunks : ChunksLike | Literal ["auto" ] = "auto" ,
46884689 shards : ShardsLike | None = None ,
46894690 filters : FiltersLike = "auto" ,
46904691 compressors : CompressorsLike = "auto" ,
@@ -4821,6 +4822,9 @@ async def init_array(
48214822 # Use first chunk size per dim as placeholder for _auto_partition
48224823 chunks_flat : tuple [int , ...] | Literal ["auto" ] = tuple (dim_edges [0 ] for dim_edges in chunks )
48234824 else :
4825+ # Normalize scalar int to per-dimension tuple (e.g. chunks=100000 for a 1D array)
4826+ if isinstance (chunks , int ):
4827+ chunks = tuple (chunks for _ in shape_parsed )
48244828 chunks_flat = cast ("tuple[int, ...] | Literal['auto']" , chunks )
48254829
48264830 # Handle rectilinear shards: shards=[[60, 40, 20], [50, 50]]
@@ -4945,7 +4949,7 @@ async def create_array(
49454949 shape : ShapeLike | None = None ,
49464950 dtype : ZDTypeLike | None = None ,
49474951 data : np .ndarray [Any , np .dtype [Any ]] | None = None ,
4948- chunks : tuple [ int , ...] | Sequence [ Sequence [ int ]] | Literal ["auto" ] = "auto" ,
4952+ chunks : ChunksLike | Literal ["auto" ] = "auto" ,
49494953 shards : ShardsLike | None = None ,
49504954 filters : FiltersLike = "auto" ,
49514955 compressors : CompressorsLike = "auto" ,
@@ -5134,7 +5138,7 @@ async def create_array(
51345138
51355139def _parse_keep_array_attr (
51365140 data : AnyArray | npt .ArrayLike ,
5137- chunks : Literal ["auto" , "keep" ] | tuple [ int , ...] | Sequence [ Sequence [ int ] ],
5141+ chunks : ChunksLike | Literal ["auto" , "keep" ],
51385142 shards : ShardsLike | None | Literal ["keep" ],
51395143 filters : FiltersLike | Literal ["keep" ],
51405144 compressors : CompressorsLike | Literal ["keep" ],
@@ -5145,7 +5149,7 @@ def _parse_keep_array_attr(
51455149 chunk_key_encoding : ChunkKeyEncodingLike | None ,
51465150 dimension_names : DimensionNamesLike ,
51475151) -> tuple [
5148- tuple [ int , ...] | Sequence [ Sequence [ int ]] | Literal ["auto" ],
5152+ ChunksLike | Literal ["auto" ],
51495153 ShardsLike | None ,
51505154 FiltersLike ,
51515155 CompressorsLike ,
@@ -5215,8 +5219,10 @@ def _parse_keep_array_attr(
52155219 compressors = "auto"
52165220 if serializer == "keep" :
52175221 serializer = "auto"
5222+ # After resolving "keep" above, chunks is never "keep" at this point.
5223+ chunks_out : ChunksLike | Literal ["auto" ] = chunks # type: ignore[assignment]
52185224 return (
5219- chunks ,
5225+ chunks_out ,
52205226 shards ,
52215227 filters ,
52225228 compressors ,
0 commit comments