Skip to content

Commit 337aaf7

Browse files
committed
chore(internal): minor updates to pagination (#236)
1 parent 1a937cf commit 337aaf7

File tree

1 file changed

+30
-70
lines changed

1 file changed

+30
-70
lines changed

src/finch/pagination.py

+30-70
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,7 @@ class SyncSinglePage(BaseSyncPage[ModelT], BasePage[ModelT], Generic[ModelT]):
3030

3131
@override
3232
def _get_page_items(self) -> List[ModelT]:
33-
items = self.items
34-
if not items:
35-
return []
36-
return items
33+
return self.items
3734

3835
@override
3936
def next_page_info(self) -> None:
@@ -58,10 +55,7 @@ class AsyncSinglePage(BaseAsyncPage[ModelT], BasePage[ModelT], Generic[ModelT]):
5855

5956
@override
6057
def _get_page_items(self) -> List[ModelT]:
61-
items = self.items
62-
if not items:
63-
return []
64-
return items
58+
return self.items
6559

6660
@override
6761
def next_page_info(self) -> None:
@@ -86,10 +80,7 @@ class SyncResponsesPage(BaseSyncPage[ModelT], BasePage[ModelT], Generic[ModelT])
8680

8781
@override
8882
def _get_page_items(self) -> List[ModelT]:
89-
responses = self.responses
90-
if not responses:
91-
return []
92-
return responses
83+
return self.responses
9384

9485
@override
9586
def next_page_info(self) -> None:
@@ -105,10 +96,7 @@ class AsyncResponsesPage(BaseAsyncPage[ModelT], BasePage[ModelT], Generic[ModelT
10596

10697
@override
10798
def _get_page_items(self) -> List[ModelT]:
108-
responses = self.responses
109-
if not responses:
110-
return []
111-
return responses
99+
return self.responses
112100

113101
@override
114102
def next_page_info(self) -> None:
@@ -125,29 +113,22 @@ class SyncIndividualsPage(BaseSyncPage[ModelT], BasePage[ModelT], Generic[ModelT
125113

126114
@override
127115
def _get_page_items(self) -> List[ModelT]:
128-
individuals = self.individuals
129-
if not individuals:
130-
return []
131-
return individuals
116+
return self.individuals
132117

133118
@override
134119
def next_page_info(self) -> Optional[PageInfo]:
135-
offset = None
136-
if self.paging is not None: # pyright: ignore[reportUnnecessaryComparison]
137-
offset = self.paging.offset
120+
offset = self.paging.offset
138121
if offset is None:
139122
return None
140123

141-
length = len(self._get_page_items())
124+
length = len(self.individuals)
142125
current_count = offset + length
143126

144-
count = None
145-
if self.paging is not None: # pyright: ignore[reportUnnecessaryComparison]
146-
count = self.paging.count
147-
if count is None:
127+
total_count = self.paging.count
128+
if total_count is None:
148129
return None
149130

150-
if current_count < count:
131+
if current_count < total_count:
151132
return PageInfo(params={"offset": current_count})
152133

153134
return None
@@ -159,97 +140,76 @@ class AsyncIndividualsPage(BaseAsyncPage[ModelT], BasePage[ModelT], Generic[Mode
159140

160141
@override
161142
def _get_page_items(self) -> List[ModelT]:
162-
individuals = self.individuals
163-
if not individuals:
164-
return []
165-
return individuals
143+
return self.individuals
166144

167145
@override
168146
def next_page_info(self) -> Optional[PageInfo]:
169-
offset = None
170-
if self.paging is not None: # pyright: ignore[reportUnnecessaryComparison]
171-
offset = self.paging.offset
147+
offset = self.paging.offset
172148
if offset is None:
173149
return None
174150

175-
length = len(self._get_page_items())
151+
length = len(self.individuals)
176152
current_count = offset + length
177153

178-
count = None
179-
if self.paging is not None: # pyright: ignore[reportUnnecessaryComparison]
180-
count = self.paging.count
181-
if count is None:
154+
total_count = self.paging.count
155+
if total_count is None:
182156
return None
183157

184-
if current_count < count:
158+
if current_count < total_count:
185159
return PageInfo(params={"offset": current_count})
186160

187161
return None
188162

189163

190164
class SyncPage(BaseSyncPage[ModelT], BasePage[ModelT], Generic[ModelT]):
191-
data: List[ModelT]
192165
paging: Paging
166+
data: List[ModelT]
193167

194168
@override
195169
def _get_page_items(self) -> List[ModelT]:
196-
data = self.data
197-
if not data:
198-
return []
199-
return data
170+
return self.data
200171

201172
@override
202173
def next_page_info(self) -> Optional[PageInfo]:
203-
offset = None
204-
if self.paging is not None: # pyright: ignore[reportUnnecessaryComparison]
205-
offset = self.paging.offset
174+
offset = self.paging.offset
206175
if offset is None:
207176
return None
208177

209-
length = len(self._get_page_items())
178+
length = len(self.data)
210179
current_count = offset + length
211180

212-
count = None
213-
if self.paging is not None: # pyright: ignore[reportUnnecessaryComparison]
214-
count = self.paging.count
215-
if count is None:
181+
total_count = self.paging.count
182+
if total_count is None:
216183
return None
217184

218-
if current_count < count:
185+
if current_count < total_count:
219186
return PageInfo(params={"offset": current_count})
220187

221188
return None
222189

223190

224191
class AsyncPage(BaseAsyncPage[ModelT], BasePage[ModelT], Generic[ModelT]):
225-
data: List[ModelT]
226192
paging: Paging
193+
data: List[ModelT]
227194

228195
@override
229196
def _get_page_items(self) -> List[ModelT]:
230-
data = self.data
231-
if not data:
232-
return []
233-
return data
197+
return self.data
234198

235199
@override
236200
def next_page_info(self) -> Optional[PageInfo]:
237-
offset = None
238-
if self.paging is not None: # pyright: ignore[reportUnnecessaryComparison]
239-
offset = self.paging.offset
201+
offset = self.paging.offset
240202
if offset is None:
241203
return None
242204

243-
length = len(self._get_page_items())
205+
length = len(self.data)
244206
current_count = offset + length
245207

246-
count = None
247-
if self.paging is not None: # pyright: ignore[reportUnnecessaryComparison]
248-
count = self.paging.count
249-
if count is None:
208+
total_count = self.paging.count
209+
if total_count is None:
250210
return None
251211

252-
if current_count < count:
212+
if current_count < total_count:
253213
return PageInfo(params={"offset": current_count})
254214

255215
return None

0 commit comments

Comments
 (0)