26 lines
635 B
Python
26 lines
635 B
Python
from typing import Optional
|
|
|
|
import sqlalchemy
|
|
|
|
|
|
class LimitQuery:
|
|
"""
|
|
Modifies the select query with limit clause.
|
|
"""
|
|
|
|
def __init__(self, limit_count: Optional[int]) -> None:
|
|
self.limit_count = limit_count
|
|
|
|
def apply(self, expr: sqlalchemy.sql.select) -> sqlalchemy.sql.select:
|
|
"""
|
|
Applies the limit clause.
|
|
|
|
:param expr: query to modify
|
|
:type expr: sqlalchemy.sql.selectable.Select
|
|
:return: modified query
|
|
:rtype: sqlalchemy.sql.selectable.Select
|
|
"""
|
|
if self.limit_count:
|
|
expr = expr.limit(self.limit_count)
|
|
return expr
|