Module Structure
therismos/
├── __init__.py # Main package exports
├── expr/ # Expression module
│ ├── __init__.py
│ ├── _expr.py # Core expression classes (Expr, Field, TemplateParam, …)
│ ├── optimizer.py # Expression optimization and simplification
│ ├── serializer.py # Grammar-based string serialization/deserialization
│ ├── template.py # Expression templates (bind, ExprTemplate, RuleSerializer)
│ ├── transforms.py # Transform registry and built-in transforms
│ └── visitors/
│ ├── __init__.py
│ ├── _visitors.py # Built-in visitor implementations
│ ├── mongo.py # MongoDB query filter converter
│ ├── polars.py # Polars expression converter
│ ├── pandas.py # Pandas filter callable converter
│ └── sqlalchemy.py # SQLAlchemy / SQLModel WHERE clause converter
├── sorting/ # Sorting module
│ ├── __init__.py
│ ├── _sorting.py # Core sorting classes (SortOrder, SortCriterion, SortSpec)
│ ├── optimizer.py # Sort specification optimization
│ ├── serializer.py # String serialization/deserialization for sort specs
│ └── visitors/
│ ├── __init__.py
│ ├── _visitors.py # Built-in visitor implementations
│ ├── mongo.py # MongoDB sort document converter
│ ├── polars.py # Polars PolarsSortSpec converter
│ ├── pandas.py # Pandas PandasSortSpec converter
│ └── sqlalchemy.py # SQLAlchemy / SQLModel ORDER BY converter
└── grouping/ # Grouping and aggregation module
├── __init__.py
├── _grouping.py # Core grouping classes (AggregationFunction, Aggregation, GroupSpec)
├── optimizer.py # Grouping specification optimization
├── serializer.py # String serialization/deserialization for grouping specs
└── visitors/
├── __init__.py
├── _visitors.py # Built-in visitor implementations
├── mongo.py # MongoDB $group pipeline stage converter
├── polars.py # Polars PolarsGroupSpec converter
├── pandas.py # Pandas PandasGroupSpec converter
└── sqlalchemy.py # SQLAlchemy / SQLModel GROUP BY converter
Key Exports
therismos.expr
- Expression types:
Eq, Ne, Lt, Le, Gt, Ge, Regex, In, IsNull, Between
- Compound expressions:
AllExpr, AnyExpr, NotExpr
- Constants:
TRUE, FALSE
- Field:
Field, F
- Visitor protocol:
ExprVisitor
- Serializer:
Serializer
- Template:
TemplateParam, ExprTemplate, bind, collect_params
- Pruning:
prune_fields, FieldSelection, PruneMode
- Evaluation:
unwind_data
therismos.sorting
SortOrder, SortCriterion, SortSpec, Serializer
therismos.grouping
AggregationFunction, Aggregation, GroupSpec, Serializer