@@ -30,7 +30,10 @@ class SyncSinglePage(BaseSyncPage[ModelT], BasePage[ModelT], Generic[ModelT]):
30
30
31
31
@override
32
32
def _get_page_items (self ) -> List [ModelT ]:
33
- return self .items
33
+ items = self .items
34
+ if not items :
35
+ return []
36
+ return items
34
37
35
38
@override
36
39
def next_page_info (self ) -> None :
@@ -55,7 +58,10 @@ class AsyncSinglePage(BaseAsyncPage[ModelT], BasePage[ModelT], Generic[ModelT]):
55
58
56
59
@override
57
60
def _get_page_items (self ) -> List [ModelT ]:
58
- return self .items
61
+ items = self .items
62
+ if not items :
63
+ return []
64
+ return items
59
65
60
66
@override
61
67
def next_page_info (self ) -> None :
@@ -80,7 +86,10 @@ class SyncResponsesPage(BaseSyncPage[ModelT], BasePage[ModelT], Generic[ModelT])
80
86
81
87
@override
82
88
def _get_page_items (self ) -> List [ModelT ]:
83
- return self .responses
89
+ responses = self .responses
90
+ if not responses :
91
+ return []
92
+ return responses
84
93
85
94
@override
86
95
def next_page_info (self ) -> None :
@@ -96,7 +105,10 @@ class AsyncResponsesPage(BaseAsyncPage[ModelT], BasePage[ModelT], Generic[ModelT
96
105
97
106
@override
98
107
def _get_page_items (self ) -> List [ModelT ]:
99
- return self .responses
108
+ responses = self .responses
109
+ if not responses :
110
+ return []
111
+ return responses
100
112
101
113
@override
102
114
def next_page_info (self ) -> None :
@@ -107,32 +119,35 @@ def next_page_info(self) -> None:
107
119
return None
108
120
109
121
110
- IndividualsPagePaging = Paging
111
- """This is deprecated, Paging should be used instead"""
112
-
113
-
114
122
class SyncIndividualsPage (BaseSyncPage [ModelT ], BasePage [ModelT ], Generic [ModelT ]):
115
123
individuals : List [ModelT ]
116
124
paging : Paging
117
125
118
126
@override
119
127
def _get_page_items (self ) -> List [ModelT ]:
120
- return self .individuals
128
+ individuals = self .individuals
129
+ if not individuals :
130
+ return []
131
+ return individuals
121
132
122
133
@override
123
134
def next_page_info (self ) -> Optional [PageInfo ]:
124
- offset = self .paging .offset
135
+ offset = None
136
+ if self .paging is not None : # pyright: ignore[reportUnnecessaryComparison]
137
+ offset = self .paging .offset
125
138
if offset is None :
126
139
return None
127
140
128
- length = len (self .individuals )
141
+ length = len (self ._get_page_items () )
129
142
current_count = offset + length
130
143
131
- total_count = self .paging .count
132
- if total_count is None :
144
+ count = None
145
+ if self .paging is not None : # pyright: ignore[reportUnnecessaryComparison]
146
+ count = self .paging .count
147
+ if count is None :
133
148
return None
134
149
135
- if current_count < total_count :
150
+ if current_count < count :
136
151
return PageInfo (params = {"offset" : current_count })
137
152
138
153
return None
@@ -144,80 +159,97 @@ class AsyncIndividualsPage(BaseAsyncPage[ModelT], BasePage[ModelT], Generic[Mode
144
159
145
160
@override
146
161
def _get_page_items (self ) -> List [ModelT ]:
147
- return self .individuals
162
+ individuals = self .individuals
163
+ if not individuals :
164
+ return []
165
+ return individuals
148
166
149
167
@override
150
168
def next_page_info (self ) -> Optional [PageInfo ]:
151
- offset = self .paging .offset
169
+ offset = None
170
+ if self .paging is not None : # pyright: ignore[reportUnnecessaryComparison]
171
+ offset = self .paging .offset
152
172
if offset is None :
153
173
return None
154
174
155
- length = len (self .individuals )
175
+ length = len (self ._get_page_items () )
156
176
current_count = offset + length
157
177
158
- total_count = self .paging .count
159
- if total_count is None :
178
+ count = None
179
+ if self .paging is not None : # pyright: ignore[reportUnnecessaryComparison]
180
+ count = self .paging .count
181
+ if count is None :
160
182
return None
161
183
162
- if current_count < total_count :
184
+ if current_count < count :
163
185
return PageInfo (params = {"offset" : current_count })
164
186
165
187
return None
166
188
167
189
168
- PagePaging = Paging
169
- """This is deprecated, Paging should be used instead"""
170
-
171
-
172
190
class SyncPage (BaseSyncPage [ModelT ], BasePage [ModelT ], Generic [ModelT ]):
173
- paging : Paging
174
191
data : List [ModelT ]
192
+ paging : Paging
175
193
176
194
@override
177
195
def _get_page_items (self ) -> List [ModelT ]:
178
- return self .data
196
+ data = self .data
197
+ if not data :
198
+ return []
199
+ return data
179
200
180
201
@override
181
202
def next_page_info (self ) -> Optional [PageInfo ]:
182
- offset = self .paging .offset
203
+ offset = None
204
+ if self .paging is not None : # pyright: ignore[reportUnnecessaryComparison]
205
+ offset = self .paging .offset
183
206
if offset is None :
184
207
return None
185
208
186
- length = len (self .data )
209
+ length = len (self ._get_page_items () )
187
210
current_count = offset + length
188
211
189
- total_count = self .paging .count
190
- if total_count is None :
212
+ count = None
213
+ if self .paging is not None : # pyright: ignore[reportUnnecessaryComparison]
214
+ count = self .paging .count
215
+ if count is None :
191
216
return None
192
217
193
- if current_count < total_count :
218
+ if current_count < count :
194
219
return PageInfo (params = {"offset" : current_count })
195
220
196
221
return None
197
222
198
223
199
224
class AsyncPage (BaseAsyncPage [ModelT ], BasePage [ModelT ], Generic [ModelT ]):
200
- paging : Paging
201
225
data : List [ModelT ]
226
+ paging : Paging
202
227
203
228
@override
204
229
def _get_page_items (self ) -> List [ModelT ]:
205
- return self .data
230
+ data = self .data
231
+ if not data :
232
+ return []
233
+ return data
206
234
207
235
@override
208
236
def next_page_info (self ) -> Optional [PageInfo ]:
209
- offset = self .paging .offset
237
+ offset = None
238
+ if self .paging is not None : # pyright: ignore[reportUnnecessaryComparison]
239
+ offset = self .paging .offset
210
240
if offset is None :
211
241
return None
212
242
213
- length = len (self .data )
243
+ length = len (self ._get_page_items () )
214
244
current_count = offset + length
215
245
216
- total_count = self .paging .count
217
- if total_count is None :
246
+ count = None
247
+ if self .paging is not None : # pyright: ignore[reportUnnecessaryComparison]
248
+ count = self .paging .count
249
+ if count is None :
218
250
return None
219
251
220
- if current_count < total_count :
252
+ if current_count < count :
221
253
return PageInfo (params = {"offset" : current_count })
222
254
223
255
return None
0 commit comments