FastFlowTransform
FastFlowTransform (FFT) is a SQL + Python data modeling engine with a deterministic DAG, level-wise parallelism, optional caching, incremental builds, auto-docs, and built-in data-quality tests. Projects are plain directories containing models, seeds, and YAML config; the fft CLI handles compilation, execution, docs, and validation across multiple execution engines.
Highlights
- SQL or Python models (
*.ff.sql/*.ff.py) wired withref()/source()/deps=[...]. - Executors for DuckDB, Postgres, BigQuery (pandas + BigFrames), Databricks/Spark, and Snowflake Snowpark.
- Level-wise parallel scheduler with cache fingerprints, rebuild flags, and state/result selectors.
- Incremental and materialized models with engine-specific merge/append hooks.
- Tests everywhere: schema/YAML checks, reconciliation rules, and fast model unit tests (
fft utest). - Docs on demand:
fft dag --htmlandfft docgengenerate a browsable site plus JSON artifacts; optionalsync-db-commentsto push descriptions to Postgres/Snowflake. - HTTP helpers for Python models (
fastflowtransform.api.http) and Jinja macros/config for templating.
Requirements
- Python 3.12+
- Engine extras installed only as needed (e.g. BigQuery, Snowflake, Spark/Delta, Postgres drivers). The core DuckDB path works out of the box.
Install & Quickstart
- Pick the engine extras you need (combine as
pkg[a,b]):- DuckDB/core:
pip install fastflowtransform - Postgres:
pip install fastflowtransform[postgres] - BigQuery (pandas):
pip install fastflowtransform[bigquery] - BigQuery (BigFrames):
pip install fastflowtransform[bigquery_bf] - Databricks/Spark + Delta:
pip install fastflowtransform[spark] - Snowflake Snowpark:
pip install fastflowtransform[snowflake] - Everything:
pip install fastflowtransform[full]
- DuckDB/core:
- Installation and first run: see
docs/Quickstart.md(venv + editable install, DuckDB demo, and init walkthrough). - CLI usage and flags: see
docs/CLI_Guide.md. - Makefile shortcut:
make demoruns the simple DuckDB example end-to-end and opens the DAG (examples/simple_duckdb).
Docs & examples
- Docs hub:
docs/index.mdor https://fastflowtransform.com. - Operational guide & architecture:
docs/Technical_Overview.md. - Modeling reference & macros:
docs/Config_and_Macros.md. - Parallelism, cache, and state selection:
docs/Cache_and_Parallelism.md,docs/State_Selection.md. - Incremental models:
docs/Incremental.md. - Data-quality + YAML tests:
docs/Data_Quality_Tests.md,docs/YAML_Tests.md,docs/Unit_Tests.md. - CLI details and troubleshooting:
docs/CLI_Guide.md,docs/Troubleshooting.md. - Runnable demos live under
examples/(basic, materializations, incremental, DQ, macros, cache, env matrix, API, events).
Contributing
Issues and PRs are welcome. See Contributing.md for development setup, testing (make demo, uv run pytest, fft utest), and code-style guidelines.
License
Apache 2.0 — see License.md.
Metadata
Release files for fastflowtransform 0.6.19
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fastflowtransform-0.6.19.tar.gz | 330.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fastflowtransform-0.6.19-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 736.7 kB
Release files / fastflowtransform-0.6.19.tar.gz
| Download URL | fastflowtransform-0.6.19.tar.gz |
|---|---|
| Size | 330.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c400eaf95bfcfd958e048b5303c24ff1eeb7403c3e1bb0d14b0c0b965f5eb015
|
|
BLAKE2b-256 checksum How to use checksums |
31c4e90c78982e0dc7cd90767d3bfc804cf4088580fd1376e38fe50994f281c9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|
Release files / fastflowtransform-0.6.19-py3-none-any.whl
| Download URL | fastflowtransform-0.6.19-py3-none-any.whl |
|---|---|
| Size | 406.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1c99933267bd0700b9841bfbad6fd0a3a10f65f5f964366e150d24e415b0dff8
|
|
BLAKE2b-256 checksum How to use checksums |
c6f21d3dcab4d06246c50897f4328489ac42b217fb975194e33b1eaa9b33bcc7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|