Python framework for SQL & Python data transformation, ETL pipelines, and dbt-style data modeling
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fastflowtransform-0.6.19.tar.gz.
File metadata
- Download URL: fastflowtransform-0.6.19.tar.gz
- Upload date:
- Size: 330.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c400eaf95bfcfd958e048b5303c24ff1eeb7403c3e1bb0d14b0c0b965f5eb015
|
|
| MD5 |
3c191d2a77828c464d8552208505e99d
|
|
| BLAKE2b-256 |
31c4e90c78982e0dc7cd90767d3bfc804cf4088580fd1376e38fe50994f281c9
|
File details
Details for the file fastflowtransform-0.6.19-py3-none-any.whl.
File metadata
- Download URL: fastflowtransform-0.6.19-py3-none-any.whl
- Upload date:
- Size: 406.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c99933267bd0700b9841bfbad6fd0a3a10f65f5f964366e150d24e415b0dff8
|
|
| MD5 |
e842d5cab3ebd35b9788d0d9d9dd8d2a
|
|
| BLAKE2b-256 |
c6f21d3dcab4d06246c50897f4328489ac42b217fb975194e33b1eaa9b33bcc7
|