@@ -1148,27 +1148,39 @@ def __repr__(self) -> str:
11481148
11491149 @property
11501150 def info (self ) -> ArrayInfo :
1151- kwargs = {}
1151+ return self ._info ()
1152+
1153+ async def info_complete (self ) -> ArrayInfo :
1154+ # do the I/O to get the extra
1155+ extra : dict [str , int ] = {}
1156+ return self ._info (extra = extra )
1157+
1158+ def _info (self , extra : dict [str , int ] | None = None ) -> ArrayInfo :
1159+ kwargs : dict [str , Any ] = {}
11521160 if self .metadata .zarr_format == 2 :
1153- kwargs ["compressor" ] = self .metadata .compressor
1154- kwargs ["filters" ] = self .metadata .filters
1161+ assert isinstance (self .metadata , ArrayV2Metadata )
1162+ if self .metadata .compressor is not None :
1163+ kwargs ["compressor" ] = str (self .metadata .compressor )
1164+ if self .metadata .filters is not None :
1165+ kwargs ["filters" ] = str (self .metadata .filters )
1166+ kwargs ["data_type" ] = str (self .metadata .dtype )
1167+ kwargs ["chunks" ] = self .metadata .chunks
11551168 else :
1156- kwargs ["codecs" ] = self .metadata .codecs
1169+ kwargs ["codecs" ] = str (self .metadata .codecs )
1170+ kwargs ["data_type" ] = str (self .metadata .data_type )
1171+ # just regular?
1172+ if isinstance (self .metadata .chunk_grid , RegularChunkGrid ):
1173+ kwargs ["chunks" ] = self .metadata .chunk_grid .chunk_shape
11571174
11581175 return ArrayInfo (
11591176 zarr_format = self .metadata .zarr_format ,
1160- data_type = self .metadata .data_type ,
11611177 shape = self .shape ,
1162- chunk_shape = self .metadata .chunk_grid .chunk_shape ,
11631178 order = self .order ,
11641179 read_only = self .store_path .store .mode .readonly ,
11651180 store_type = type (self .store_path .store ).__name__ ,
1166- ** kwargs
1181+ ** kwargs ,
11671182 )
11681183
1169- async def info_full (self ) -> None :
1170- return ArrayInfo ()
1171-
11721184
11731185@dataclass (frozen = True )
11741186class Array :
@@ -2844,7 +2856,7 @@ def info(self) -> ArrayInfo:
28442856 return self ._async_array .info
28452857
28462858 def info_complete (self ) -> ArrayInfo :
2847- return sync (self ._async_array .info_complete )
2859+ return sync (self ._async_array .info_complete () )
28482860
28492861
28502862def nchunks_initialized (
0 commit comments