Skip to content

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