File tree Expand file tree Collapse file tree 1 file changed +28
-8
lines changed
Expand file tree Collapse file tree 1 file changed +28
-8
lines changed Original file line number Diff line number Diff line change @@ -101,16 +101,26 @@ def _should_skip(self) -> bool:
101101 return True
102102 return False
103103
104+ def _ensure_buffer (self ) -> bool :
105+ """Ensure buffer has items.
106+
107+ Returns
108+ -------
109+ bool
110+ True if buffer has items, False otherwise.
111+
112+ """
113+ if not self ._buffer :
114+ self ._fill_buffer ()
115+ return bool (self ._buffer )
116+
104117 def __next__ (self ) -> T :
105118 """Get next item."""
106119 if self ._check_take_limit ():
107120 raise StopIteration
108121
109122 while True :
110- if not self ._buffer :
111- self ._fill_buffer ()
112-
113- if not self ._buffer :
123+ if not self ._ensure_buffer ():
114124 raise StopIteration
115125
116126 item = self ._buffer .popleft ()
@@ -237,6 +247,19 @@ def _check_take_limit(self) -> bool:
237247 """
238248 return bool (self ._take_limit is not None and self ._items_yielded >= self ._take_limit )
239249
250+ async def _ensure_buffer (self ) -> bool :
251+ """Ensure buffer has items.
252+
253+ Returns
254+ -------
255+ bool
256+ True if buffer has items, False otherwise.
257+
258+ """
259+ if not self ._buffer :
260+ await self ._fill_buffer ()
261+ return bool (self ._buffer )
262+
240263 def _update_totals (self , response : typing .Any ) -> None : # noqa: ANN401
241264 """Update total pages and results from response."""
242265 if self ._total_pages is None :
@@ -284,10 +307,7 @@ async def __anext__(self) -> T:
284307 raise StopAsyncIteration
285308
286309 while True :
287- if not self ._buffer :
288- await self ._fill_buffer ()
289-
290- if not self ._buffer :
310+ if not await self ._ensure_buffer ():
291311 raise StopAsyncIteration
292312
293313 item = self ._buffer .popleft ()
You can’t perform that action at this time.
0 commit comments