diff --git a/src/finch/pagination.py b/src/finch/pagination.py index c2afd69f..dedacd1c 100644 --- a/src/finch/pagination.py +++ b/src/finch/pagination.py @@ -144,7 +144,17 @@ def next_page_info(self) -> Optional[PageInfo]: length = len(self._get_page_items()) current_count = offset + length - return PageInfo(params={"offset": current_count}) + count = None + if self.paging is not None: # pyright: ignore[reportUnnecessaryComparison] + if self.paging.count is not None: + count = self.paging.count + if count is None: + return None + + if current_count < count: + return PageInfo(params={"offset": current_count}) + + return None class AsyncIndividualsPage(BaseAsyncPage[_T], BasePage[_T], Generic[_T]): @@ -171,7 +181,17 @@ def next_page_info(self) -> Optional[PageInfo]: length = len(self._get_page_items()) current_count = offset + length - return PageInfo(params={"offset": current_count}) + count = None + if self.paging is not None: # pyright: ignore[reportUnnecessaryComparison] + if self.paging.count is not None: + count = self.paging.count + if count is None: + return None + + if current_count < count: + return PageInfo(params={"offset": current_count}) + + return None class SyncPage(BaseSyncPage[_T], BasePage[_T], Generic[_T]): @@ -197,7 +217,17 @@ def next_page_info(self) -> Optional[PageInfo]: length = len(self._get_page_items()) current_count = offset + length - return PageInfo(params={"offset": current_count}) + count = None + if self.paging is not None: # pyright: ignore[reportUnnecessaryComparison] + if self.paging.count is not None: + count = self.paging.count + if count is None: + return None + + if current_count < count: + return PageInfo(params={"offset": current_count}) + + return None class AsyncPage(BaseAsyncPage[_T], BasePage[_T], Generic[_T]): @@ -223,4 +253,14 @@ def next_page_info(self) -> Optional[PageInfo]: length = len(self._get_page_items()) current_count = offset + length - return PageInfo(params={"offset": current_count}) + count = None + if self.paging is not None: # pyright: ignore[reportUnnecessaryComparison] + if self.paging.count is not None: + count = self.paging.count + if count is None: + return None + + if current_count < count: + return PageInfo(params={"offset": current_count}) + + return None