filters
Collection filter datastructures.
-
class advanced_alchemy.filters.BeforeAfter[source]
Bases: object
Data required to filter a query on a datetime
column.
-
field_name: str
Name of the model attribute to filter on.
-
before: datetime | None
Filter results where field earlier than this.
-
after: datetime | None
Filter results where field later than this.
-
__init__(field_name: str, before: datetime | None, after: datetime | None) → None
-
class advanced_alchemy.filters.CollectionFilter[source]
Bases: Generic
[T
]
Data required to construct a WHERE ... IN (...)
clause.
-
field_name: str
Name of the model attribute to filter on.
-
values: Collection[T] | None
Values for IN
clause.
An empty list will return an empty result set, however, if None
, the filter is not applied to the query, and all rows are returned.
-
__init__(field_name: str, values: Collection[T] | None) → None
-
advanced_alchemy.filters.FilterTypes: TypeAlias = 'BeforeAfter | OnBeforeAfter | CollectionFilter[Any] | LimitOffset | OrderBy | SearchFilter | NotInCollectionFilter[Any] | NotInSearchFilter'
Aggregate type alias of the types supported for collection filtering.
-
class advanced_alchemy.filters.LimitOffset[source]
Bases: object
Data required to add limit/offset filtering to a query.
-
limit: int
Value for LIMIT
clause of query.
-
__init__(limit: int, offset: int) → None
-
offset: int
Value for OFFSET
clause of query.
-
class advanced_alchemy.filters.OrderBy[source]
Bases: object
Data required to construct a ORDER BY ...
clause.
-
__init__(field_name: str, sort_order: Literal['asc', 'desc'] = 'asc') → None
-
field_name: str
Name of the model attribute to sort on.
-
sort_order: Literal['asc', 'desc'] = 'asc'
Sort ascending or descending
-
class advanced_alchemy.filters.SearchFilter[source]
Bases: object
Data required to construct a WHERE field_name LIKE '%' || :value || '%'
clause.
-
__init__(field_name: str, value: str, ignore_case: bool | None = False) → None
-
field_name: str
Name of the model attribute to sort on.
-
value: str
Values for LIKE
clause.
-
ignore_case: bool | None = False
Should the search be case insensitive.
-
class advanced_alchemy.filters.NotInCollectionFilter[source]
Bases: Generic
[T
]
Data required to construct a WHERE ... NOT IN (...)
clause.
-
field_name: str
Name of the model attribute to filter on.
-
values: Collection[T] | None
Values for NOT IN
clause.
An empty list or None
will return all rows.
-
__init__(field_name: str, values: Collection[T] | None) → None
-
class advanced_alchemy.filters.OnBeforeAfter[source]
Bases: object
Data required to filter a query on a datetime
column.
-
field_name: str
Name of the model attribute to filter on.
-
on_or_before: datetime | None
Filter results where field is on or earlier than this.
-
on_or_after: datetime | None
Filter results where field on or later than this.
-
__init__(field_name: str, on_or_before: datetime | None, on_or_after: datetime | None) → None
-
class advanced_alchemy.filters.NotInSearchFilter[source]
Bases: object
Data required to construct a WHERE field_name NOT LIKE '%' || :value || '%'
clause.
-
__init__(field_name: str, value: str, ignore_case: bool | None = False) → None
-
field_name: str
Name of the model attribute to search on.
-
value: str
Values for NOT LIKE
clause.
-
ignore_case: bool | None = False
Should the search be case insensitive.