5454    ZARRAY_JSON ,
5555    ZATTRS_JSON ,
5656    ChunkCoords ,
57+     DimensionNames ,
5758    MemoryOrder ,
5859    ShapeLike ,
5960    ZarrFormat ,
@@ -330,7 +331,7 @@ async def create(
330331            |  None 
331332        ) =  None ,
332333        codecs : Iterable [Codec  |  dict [str , JSON ]] |  None  =  None ,
333-         dimension_names : Iterable [ str ]  |   None  =  None ,
334+         dimension_names : DimensionNames  =  None ,
334335        # runtime 
335336        overwrite : bool  =  False ,
336337        data : npt .ArrayLike  |  None  =  None ,
@@ -358,7 +359,7 @@ async def create(
358359            |  None 
359360        ) =  None ,
360361        codecs : Iterable [Codec  |  dict [str , JSON ]] |  None  =  None ,
361-         dimension_names : Iterable [ str ]  |   None  =  None ,
362+         dimension_names : DimensionNames  =  None ,
362363        # runtime 
363364        overwrite : bool  =  False ,
364365        data : npt .ArrayLike  |  None  =  None ,
@@ -386,7 +387,7 @@ async def create(
386387            |  None 
387388        ) =  None ,
388389        codecs : Iterable [Codec  |  dict [str , JSON ]] |  None  =  None ,
389-         dimension_names : Iterable [ str ]  |   None  =  None ,
390+         dimension_names : DimensionNames  =  None ,
390391        # v2 only 
391392        chunks : ShapeLike  |  None  =  None ,
392393        dimension_separator : Literal ["." , "/" ] |  None  =  None ,
@@ -421,7 +422,7 @@ async def create(
421422            |  None 
422423        ) =  None ,
423424        codecs : Iterable [Codec  |  dict [str , JSON ]] |  None  =  None ,
424-         dimension_names : Iterable [ str ]  |   None  =  None ,
425+         dimension_names : DimensionNames  =  None ,
425426        # v2 only 
426427        chunks : ShapeLike  |  None  =  None ,
427428        dimension_separator : Literal ["." , "/" ] |  None  =  None ,
@@ -473,7 +474,7 @@ async def create(
473474
474475            These defaults can be changed by modifying the value of ``array.v3_default_filters``, 
475476            ``array.v3_default_serializer`` and ``array.v3_default_compressors`` in :mod:`zarr.core.config`. 
476-         dimension_names : Iterable[str], optional 
477+         dimension_names : Iterable[str | None ], optional 
477478            The names of the dimensions (default is None). 
478479            Zarr format 3 only. Zarr format 2 arrays should not use this parameter. 
479480        chunks : ShapeLike, optional 
@@ -562,7 +563,7 @@ async def _create(
562563            |  None 
563564        ) =  None ,
564565        codecs : Iterable [Codec  |  dict [str , JSON ]] |  None  =  None ,
565-         dimension_names : Iterable [ str ]  |   None  =  None ,
566+         dimension_names : DimensionNames  =  None ,
566567        # v2 only 
567568        chunks : ShapeLike  |  None  =  None ,
568569        dimension_separator : Literal ["." , "/" ] |  None  =  None ,
@@ -672,7 +673,7 @@ def _create_metadata_v3(
672673        fill_value : Any  |  None  =  None ,
673674        chunk_key_encoding : ChunkKeyEncodingLike  |  None  =  None ,
674675        codecs : Iterable [Codec  |  dict [str , JSON ]] |  None  =  None ,
675-         dimension_names : Iterable [ str   |   None ]  |   None  =  None ,
676+         dimension_names : DimensionNames  =  None ,
676677        attributes : dict [str , JSON ] |  None  =  None ,
677678    ) ->  ArrayV3Metadata :
678679        """ 
@@ -723,7 +724,7 @@ async def _create_v3(
723724            |  None 
724725        ) =  None ,
725726        codecs : Iterable [Codec  |  dict [str , JSON ]] |  None  =  None ,
726-         dimension_names : Iterable [ str ]  |   None  =  None ,
727+         dimension_names : DimensionNames  =  None ,
727728        attributes : dict [str , JSON ] |  None  =  None ,
728729        overwrite : bool  =  False ,
729730    ) ->  AsyncArray [ArrayV3Metadata ]:
@@ -1743,7 +1744,7 @@ def create(
17431744            |  None 
17441745        ) =  None ,
17451746        codecs : Iterable [Codec  |  dict [str , JSON ]] |  None  =  None ,
1746-         dimension_names : Iterable [ str ]  |   None  =  None ,
1747+         dimension_names : DimensionNames  =  None ,
17471748        # v2 only 
17481749        chunks : ChunkCoords  |  None  =  None ,
17491750        dimension_separator : Literal ["." , "/" ] |  None  =  None ,
@@ -1788,7 +1789,7 @@ def create(
17881789
17891790            These defaults can be changed by modifying the value of ``array.v3_default_filters``, 
17901791            ``array.v3_default_serializer`` and ``array.v3_default_compressors`` in :mod:`zarr.core.config`. 
1791-         dimension_names : Iterable[str], optional 
1792+         dimension_names : Iterable[str | None ], optional 
17921793            The names of the dimensions (default is None). 
17931794            Zarr format 3 only. Zarr format 2 arrays should not use this parameter. 
17941795        chunks : ChunkCoords, optional 
@@ -1872,7 +1873,7 @@ def _create(
18721873            |  None 
18731874        ) =  None ,
18741875        codecs : Iterable [Codec  |  dict [str , JSON ]] |  None  =  None ,
1875-         dimension_names : Iterable [ str ]  |   None  =  None ,
1876+         dimension_names : DimensionNames  =  None ,
18761877        # v2 only 
18771878        chunks : ChunkCoords  |  None  =  None ,
18781879        dimension_separator : Literal ["." , "/" ] |  None  =  None ,
@@ -3821,7 +3822,7 @@ async def from_array(
38213822    zarr_format : ZarrFormat  |  None  =  None ,
38223823    attributes : dict [str , JSON ] |  None  =  None ,
38233824    chunk_key_encoding : ChunkKeyEncodingLike  |  None  =  None ,
3824-     dimension_names : Iterable [ str   |   None ]  |   None  =  None ,
3825+     dimension_names : DimensionNames  =  None ,
38253826    storage_options : dict [str , Any ] |  None  =  None ,
38263827    overwrite : bool  =  False ,
38273828    config : ArrayConfig  |  ArrayConfigLike  |  None  =  None ,
@@ -3929,7 +3930,7 @@ async def from_array(
39293930        For Zarr format 2, the default is ``{"name": "v2", "separator": "."}}``. 
39303931        If not specified and the data array has the same zarr format as the target array, 
39313932        the chunk key encoding of the data array is used. 
3932-     dimension_names : Iterable[str], optional 
3933+     dimension_names : Iterable[str | None ], optional 
39333934        The names of the dimensions (default is None). 
39343935        Zarr format 3 only. Zarr format 2 arrays should not use this parameter. 
39353936        If not specified, defaults to the dimension names of the data array. 
@@ -4083,7 +4084,7 @@ async def init_array(
40834084    zarr_format : ZarrFormat  |  None  =  3 ,
40844085    attributes : dict [str , JSON ] |  None  =  None ,
40854086    chunk_key_encoding : ChunkKeyEncodingLike  |  None  =  None ,
4086-     dimension_names : Iterable [ str   |   None ]  |   None  =  None ,
4087+     dimension_names : DimensionNames  =  None ,
40874088    overwrite : bool  =  False ,
40884089    config : ArrayConfigLike  |  None ,
40894090) ->  AsyncArray [ArrayV3Metadata ] |  AsyncArray [ArrayV2Metadata ]:
@@ -4298,7 +4299,7 @@ async def create_array(
42984299    zarr_format : ZarrFormat  |  None  =  3 ,
42994300    attributes : dict [str , JSON ] |  None  =  None ,
43004301    chunk_key_encoding : ChunkKeyEncodingLike  |  None  =  None ,
4301-     dimension_names : Iterable [ str ]  |   None  =  None ,
4302+     dimension_names : DimensionNames  =  None ,
43024303    storage_options : dict [str , Any ] |  None  =  None ,
43034304    overwrite : bool  =  False ,
43044305    config : ArrayConfigLike  |  None  =  None ,
@@ -4477,7 +4478,7 @@ def _parse_keep_array_attr(
44774478    order : MemoryOrder  |  None ,
44784479    zarr_format : ZarrFormat  |  None ,
44794480    chunk_key_encoding : ChunkKeyEncodingLike  |  None ,
4480-     dimension_names : Iterable [ str   |   None ]  |   None ,
4481+     dimension_names : DimensionNames ,
44814482) ->  tuple [
44824483    ChunkCoords  |  Literal ["auto" ],
44834484    ShardsLike  |  None ,
@@ -4488,7 +4489,7 @@ def _parse_keep_array_attr(
44884489    MemoryOrder  |  None ,
44894490    ZarrFormat ,
44904491    ChunkKeyEncodingLike  |  None ,
4491-     Iterable [ str   |   None ]  |   None ,
4492+     DimensionNames ,
44924493]:
44934494    if  isinstance (data , Array ):
44944495        if  chunks  ==  "keep" :
0 commit comments