@@ -25,9 +25,16 @@ def _get_page_items(self) -> List[_T]:
2525
2626 @override
2727 def next_page_info (self ) -> Optional [PageInfo ]:
28- last_page = cast ("int | None" , self ._options .params .get ("page" )) or 1
28+ current_page = self .page
29+ if current_page is None :
30+ current_page = 1
2931
30- return PageInfo (params = {"page" : last_page + 1 })
32+ last_page = cast ("int | None" , self ._options .params .get ("page" ))
33+ if last_page is not None and current_page <= last_page :
34+ # The API didn't return a new page in the last request
35+ return None
36+
37+ return PageInfo (params = {"page" : current_page + 1 })
3138
3239
3340class AsyncPage (BaseAsyncPage [_T ], BasePage [_T ], Generic [_T ]):
@@ -45,6 +52,13 @@ def _get_page_items(self) -> List[_T]:
4552
4653 @override
4754 def next_page_info (self ) -> Optional [PageInfo ]:
48- last_page = cast ("int | None" , self ._options .params .get ("page" )) or 1
55+ current_page = self .page
56+ if current_page is None :
57+ current_page = 1
58+
59+ last_page = cast ("int | None" , self ._options .params .get ("page" ))
60+ if last_page is not None and current_page <= last_page :
61+ # The API didn't return a new page in the last request
62+ return None
4963
50- return PageInfo (params = {"page" : last_page + 1 })
64+ return PageInfo (params = {"page" : current_page + 1 })
0 commit comments