Skip to content

Commit dbba1db

Browse files
committed
Publish workflow
1 parent c5b51ee commit dbba1db

File tree

1 file changed

+28
-8
lines changed

1 file changed

+28
-8
lines changed

tmdbfusion/features/pagination.py

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff 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()

0 commit comments

Comments
 (0)