Skip to content

Commit 8e6183c

Browse files
stainless-app[bot]stainless-bot
authored andcommitted
feat(api): manual updates (#44)
1 parent f58065b commit 8e6183c

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,8 @@ Or just work directly with the returned data:
126126

127127
```python
128128
first_page = await client.datasources.list()
129+
130+
print(f"page number: {first_page.page}") # => "page number: 1"
129131
for datasource in first_page.items:
130132
print(datasource.id)
131133

src/asktable/pagination.py

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

3340
class 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

Comments
 (0)