Skip to main content

Python framework for SQL & Python data transformation, ETL pipelines, and dbt-style data modeling

Project description

FastFlowTransform

CI PyPI version

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 with ref() / 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 --html and fft docgen generate a browsable site plus JSON artifacts; optional sync-db-comments to 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]
  • 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 demo runs the simple DuckDB example end-to-end and opens the DAG (examples/simple_duckdb).

Docs & examples

  • Docs hub: docs/index.md or 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastflowtransform-0.6.19.tar.gz (330.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fastflowtransform-0.6.19-py3-none-any.whl (406.0 kB view details)

Uploaded Python 3

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

Hashes for fastflowtransform-0.6.19.tar.gz
Algorithm Hash digest
SHA256 c400eaf95bfcfd958e048b5303c24ff1eeb7403c3e1bb0d14b0c0b965f5eb015
MD5 3c191d2a77828c464d8552208505e99d
BLAKE2b-256 31c4e90c78982e0dc7cd90767d3bfc804cf4088580fd1376e38fe50994f281c9

See more details on using hashes here.

File details

Details for the file fastflowtransform-0.6.19-py3-none-any.whl.

File metadata

File hashes

Hashes for fastflowtransform-0.6.19-py3-none-any.whl
Algorithm Hash digest
SHA256 1c99933267bd0700b9841bfbad6fd0a3a10f65f5f964366e150d24e415b0dff8
MD5 e842d5cab3ebd35b9788d0d9d9dd8d2a
BLAKE2b-256 c6f21d3dcab4d06246c50897f4328489ac42b217fb975194e33b1eaa9b33bcc7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page