Transforms normalize raw source data into canonical metrics stored indataset schemas. Each transform is a Python package with an entry point — the same pattern as sources.
Transform ABC to write any transform logic. Receives a DuckDB connection; write to any output table you declare.A custom transform is a Python package with ashenas.transforms entry point. The transform class receives a live DuckDB connection and declares its input tables and output table.
Override source_tables (list of table names to read) and target_table (the dataset table to write into).
The run(conn) method receives a DuckDB connection. Read from source tables; write output rows intoself.target_table.
Add [project.entry-points."shenas.transforms"] to your pyproject.toml, pointing at the transform class. Install and schedule with shenasctl transform add.
Full Transform ABC reference and examples are underplugins/transforms/ in the repository: shenas-org/shenas Public mirror (shenas-org/shenas): Last updated 2026-05-23. Treat it as frozen; do not rely on it for current releases.