from sqlalchemy.orm import Query from sqlalchemy.orm import Session def paginate( query: Query, page: int = 1, size: int = 20, ): if page < 1: page = 1 if size < 1: size = 20 total = query.count() items = ( query .offset((page - 1) * size) .limit(size) .all() ) return { "items": items, "total": total, "page": page, "size": size, }