Skip to content

Commit db74205

Browse files
committed
docstrings
1 parent e19238d commit db74205

File tree

1 file changed

+36
-2
lines changed

1 file changed

+36
-2
lines changed

src/zarr/core/group.py

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2604,14 +2604,20 @@ def array(
26042604
async 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

Comments
 (0)