@@ -615,7 +615,7 @@ async def getitem(
615615 # a group,using standalone `contains_array` and `contains_group` functions. These functions
616616 # are reusable, but for v3 they would perform redundant I/O operations.
617617 # Not clear how much of that strategy we want to keep here.
618- if self .metadata .zarr_format == 3 :
618+ elif self .metadata .zarr_format == 3 :
619619 zarr_json_bytes = await (store_path / ZARR_JSON ).get ()
620620 if zarr_json_bytes is None :
621621 raise KeyError (key )
@@ -1099,14 +1099,7 @@ async def nmembers(
10991099 """
11001100 # check if we can use consolidated metadata, which requires that we have non-None
11011101 # consolidated metadata at all points in the hierarchy.
1102- use_consolidated_metadata = self .metadata .consolidated_metadata is not None and all (
1103- x .consolidated_metadata is not None
1104- for x in self .metadata .consolidated_metadata .flattened_metadata .values ()
1105- if isinstance (x , GroupMetadata )
1106- )
1107-
1108- if use_consolidated_metadata :
1109- assert self .metadata .consolidated_metadata is not None # helping mypy
1102+ if self .metadata .consolidated_metadata is not None :
11101103 return len (self .metadata .consolidated_metadata .flattened_metadata )
11111104 # TODO: consider using aioitertools.builtins.sum for this
11121105 # return await aioitertools.builtins.sum((1 async for _ in self.members()), start=0)
@@ -1157,9 +1150,9 @@ async def _members(
11571150 if self .metadata .consolidated_metadata is not None :
11581151 # we should be able to do members without any additional I/O
11591152 members = self ._members_consolidated (max_depth , current_depth )
1160- members_ = list (members )
1161- for member in members_ :
1153+ for member in members :
11621154 yield member
1155+ return
11631156
11641157 if not self .store_path .store .supports_listing :
11651158 msg = (
0 commit comments