symphony.bdk.core.service.pagination.cursor_based_pagination#

async symphony.bdk.core.service.pagination.cursor_based_pagination(func: Callable[[int, str], Awaitable[Tuple[symphony.bdk.core.service.pagination.T, str]]], chunk_size=100, max_number=None) AsyncGenerator[symphony.bdk.core.service.pagination.T, None]#

Creates an asynchronous generator from a cursor based endpoint. The generator makes the call to the underlying endpoint func until the max_number of items is reached or results are exhausted (i.e. cursor returned by func is None).

Parameters
  • func – a coroutine taking two int parameters: limit (max number for items to retrieve in one call) and after (for cursor based pagination). It must return a tuple (result, after) where result is a list containing the actual results in the chunk and after is the new cursor which will be passed to the next call to func.

  • chunk_size – the maximum number of elements to retrieve in one call.

  • max_number – the maximum total number of items to retrieve. If not specified or set to None, it will fetch all items until we retrieved all elements.

Returns

an asynchronous generator of elements which makes the calls to func with the correct parameters.