Filtering
pypaginate provides declarative filtering through FilterSpec objects and composable And/Or groups.
Tip
Quick Start
from pypaginate import FilterSpec
filters = [
FilterSpec(field="status", operator="eq", value="active"),
FilterSpec(field="age", operator="gte", value=18),
]
Overview
Feature |
Description |
|---|---|
FilterSpec, flat lists, AND/OR logic |
|
All 20 built-in operators with examples |
|
Nested groups via |
FilterSpec
FilterSpec is an immutable Pydantic model describing a single filter condition:
from pypaginate import FilterSpec
# field + operator + value
FilterSpec(field="age", operator="gte", value=18)
# operator defaults to "eq"
FilterSpec(field="name", value="Alice")
# logic defaults to FilterLogic.AND
from pypaginate import FilterLogic
FilterSpec(field="role", operator="in", value=["admin", "mod"], logic=FilterLogic.OR)
Attribute |
Type |
Default |
Description |
|---|---|---|---|
|
|
required |
Field name to filter on |
|
|
|
One of 20 built-in operators |
|
|
|
Comparison value |
|
|
|
How to combine with other filters |
Combining Filters
Flat List (all AND)
filters = [
FilterSpec(field="age", operator="gte", value=18),
FilterSpec(field="status", operator="eq", value="active"),
]
# Equivalent to: age >= 18 AND status = "active"
Mixed AND/OR
from pypaginate import FilterLogic
filters = [
FilterSpec(field="age", operator="gte", value=18),
FilterSpec(field="role", operator="eq", value="admin", logic=FilterLogic.OR),
FilterSpec(field="role", operator="eq", value="mod", logic=FilterLogic.OR),
]
# Equivalent to: age >= 18 AND (role = "admin" OR role = "mod")
Nested Groups
from pypaginate import And, Or, FilterSpec
group = And(
Or(FilterSpec(field="role", value="admin"), FilterSpec(field="role", value="mod")),
Or(FilterSpec(field="status", value="active"), FilterSpec(field="status", value="pending")),
)
# (role=admin OR role=mod) AND (status=active OR status=pending)
Backend Support
Backend |
Import |
Notes |
|---|---|---|
In-memory |
|
Compiles to fast closures |
In-memory (engine) |
|
Direct engine for sequences |
SQLAlchemy |
|
Generates WHERE clauses |
Next Steps
Basic Filtering – FilterSpec fundamentals and usage patterns
Operators Reference – All 20 operators with examples
JSON Logic – Nested
And()/Or()groups