Source code for fastapi_contrib.pagination

import asyncio

from fastapi import Query
from starlette.requests import Request

from fastapi_contrib.serializers.common import Serializer


[docs]class PaginationMeta(type): def __new__(mcs, name, bases, namespace, *args, **kwargs): cls = super(PaginationMeta, mcs).__new__(mcs, name, bases, namespace) _cls__init__ = cls.__init__ def __init__( self, request: Request, offset: int = Query( default=cls.default_offset, ge=0, le=cls.max_offset ), limit: int = Query( default=cls.default_limit, ge=1, le=cls.max_limit ), ): _cls__init__(self, request, offset, limit) setattr(cls, "__init__", __init__) return cls