from marshmallow import fields, validate def get_pagination_mixin( page_offset: int or None = 0, page_limit: int or None = 10, max_limit: int or None = None ) -> type: """Get limit|offset fields to use in a Marshmallow Request schema Args: page_offset: default offset value page_limit: default limit value max_limit: max value of the limit that can be passed to be checked within a range """ class PaginationParams: offset = fields.Integer(validate=validate.Range(min=0), missing=page_offset) limit = fields.Integer(validate=validate.Range(min=1, max=max_limit), missing=page_limit) return PaginationParams