Пагинация¶
PaginatedList[T] — lazy-контейнер для списочных ответов. Первая страница
загружается при создании объекта, следующие страницы догружаются во время
итерации. materialize() загружает все страницы и возвращает обычный список.
Bases: list[ItemT]
Ленивый list-like контейнер для элементов из последовательности страниц.
Контракт:
- уже загруженные элементы читаются без повторных запросов;
- чтение по индексу, slice и частичная итерация подгружают только нужные страницы;
materialize()выполняет явную полную загрузку всех оставшихся страниц.
AsyncPaginatedList[T] — async-аналог. Он не наследуется от list, читается через
async for или await materialize() и не поддерживает конкурентную итерацию одного
экземпляра из нескольких coroutine.
Ленивый async-контейнер страниц без list API.
Initialize AsyncPaginatedList.
known_total
property
¶
Общее количество элементов, если API вернул достоверный total.
source_total
property
¶
Общий total из API без ограничения локальным limit.
materialize
async
¶
Явно загружает все страницы и возвращает snapshot-список.
aload_until
async
¶
Загружает страницы, пока локально не появится элемент с указанным индексом.