@@ -2604,14 +2604,20 @@ def array(
26042604async def _getitem_semaphore (
26052605 node : AsyncGroup , key : str , semaphore : asyncio .Semaphore | None
26062606) -> AsyncArray [ArrayV3Metadata ] | AsyncArray [ArrayV2Metadata ] | AsyncGroup :
2607+ """
2608+ Combine node.getitem with an optional semaphore. If the semaphore parameter is an
2609+ asyncio.Semaphore instance, then the getitem operation is performed inside an async context
2610+ manager provided by that semaphore. If the semaphore parameter is None, then getitem is invoked
2611+ without a context manager.
2612+ """
26072613 if semaphore is not None :
26082614 async with semaphore :
26092615 return await node .getitem (key )
26102616 else :
26112617 return await node .getitem (key )
26122618
26132619
2614- async def iter_members (
2620+ async def _iter_members (
26152621 node : AsyncGroup ,
26162622 skip_keys : tuple [str , ...],
26172623 semaphore : asyncio .Semaphore | None ,
@@ -2620,6 +2626,19 @@ async def iter_members(
26202626]:
26212627 """
26222628 Iterate over the arrays and groups contained in a group.
2629+
2630+ Parameters
2631+ ----------
2632+ node : AsyncGroup
2633+ The group to traverse.
2634+ skip_keys : tuple[str, ...]
2635+ A tuple of keys to skip when iterating over the possible members of the group.
2636+ semaphore : asyncio.Semaphore | None
2637+ An optional semaphore to use for concurrency control.
2638+
2639+ Yields
2640+ ------
2641+ tuple[str, AsyncArray[ArrayV3Metadata] | AsyncArray[ArrayV2Metadata] | AsyncGroup]
26232642 """
26242643
26252644 # retrieve keys from storage
@@ -2663,6 +2682,21 @@ async def _iter_members_deep(
26632682 """
26642683 Iterate over the arrays and groups contained in a group, and optionally the
26652684 arrays and groups contained in those groups.
2685+
2686+ Parameters
2687+ ----------
2688+ group : AsyncGroup
2689+ The group to traverse.
2690+ max_depth : int | None
2691+ The maximum depth of recursion.
2692+ skip_keys : tuple[str, ...]
2693+ A tuple of keys to skip when iterating over the possible members of the group.
2694+ semaphore : asyncio.Semaphore | None
2695+ An optional semaphore to use for concurrency control.
2696+
2697+ Yields
2698+ ------
2699+ tuple[str, AsyncArray[ArrayV3Metadata] | AsyncArray[ArrayV2Metadata] | AsyncGroup]
26662700 """
26672701
26682702 to_recurse = {}
@@ -2672,7 +2706,7 @@ async def _iter_members_deep(
26722706 new_depth = None
26732707 else :
26742708 new_depth = max_depth - 1
2675- async for name , node in iter_members (group , skip_keys = skip_keys , semaphore = semaphore ):
2709+ async for name , node in _iter_members (group , skip_keys = skip_keys , semaphore = semaphore ):
26762710 yield name , node
26772711 if isinstance (node , AsyncGroup ) and do_recursion :
26782712 to_recurse [name ] = _iter_members_deep (
0 commit comments