Skip to main content

DeFlow

test pypi version python support version size gh license code style: black

A Lightweight Declarative Data Framework that allow you to run data pipelines by YAML config template.

[!NOTE] I want to use this project is the real-world use-case for my Workflow package that able to handle production data pipeline with the DataOps strategy.

[!WARNING] This framework does not allow you to custom your pipeline yet. If you want to create your workflow, you can implement it by your custom template reference this package.

In my opinion, I think it should not create duplicate workflow codes if I can write with dynamic input parameters on the one template workflow that just change the input parameters per use-case instead. This way I can handle a lot of logical workflows in our orgs with only metadata configuration. It called Metadata Driven Data Workflow.

📦 Installation

pip install -U deflow

Support data framework version:

Version Supported Description
1 Progress Large scale base on stream, group, process, and routing.
2 Progress Medium scale base on pipeline, and node.
3 Progress Lightweight base on dag, and task.

[!NOTE] I think it should stop with 3 versions of data framework.

:dart: Framework

⭕ Version 1

[!NOTE] This project will create the data framework Version 1 first.

After initialize your data framework project with Version 1, your data pipeline config files will store with this file structure:

conf/
 ├─ routes/
 │   ╰─ routing.yml
 ├─ shared/
 │   ├─ { c_conn_01 }.yml
 │   ╰─ { c_conn_02 }.yml
 ├─ stream/
 │   ╰─ { s_stream_01 }/
 │       ├─ { g_group_01 }.tier.priority/
 │       │   ├─ { p_proces_01 }.yml
 │       │   ╰─ { p_proces_02 }.yml
 │       ├─ { g_group_02 }.tier.priority/
 │       │   ├─ { p_proces_01 }.yml
 │       │   ╰─ { p_proces_02 }.yml
 │       ╰─ config.yml
 ╰─ .confignore

⭕ Version 2

After initialize your data framework project with Version 2, your data pipeline config files will store with this file structure:

conf/
 ├─ pipeline/
 │   ╰─ { p_pipe_01 }/
 │       ├─ config.yml
 │       ├─ { n_node_01 }.yml
 │       ╰─ { n_node_02 }.yml
 ╰─ .confignore

⭕ Version 3

[!NOTE] This version is the same DAG and Task strategy like Airflow.

conf/
 ├─ dag/
 │   ╰─ { dag_cm_d }/
 │       ├─ assets/
 │       │   ├─ { some-asset }.sql
 │       │   ╰─ { some-asset }.json
 │       ├─ config.yml
 │       ╰─ variables.yml
 ╰─ .confignore

Getting Started

You can run the data flow by:

from deflow.flow import Flow
from ddeutil.workflow import Result

flow: Result = (
    Flow(name="s_stream_01", version="v1")
    .option("conf_paths", ["./data/conf"])
    .run(mode="N")
)

:cookie: Configuration

This package configuration:

Name Component Default Description
DEFLOW_CORE_CONF_PATH CORE ./conf A config path to get data framework configuration.
DEFLOW_CORE_VERSION CORE v1 A specific data framework version.
DEFLOW_CORE_REGISTRY_CALLER CORE . A registry of caller function.

Relate workflow configuration that will impact this package:

💬 Contribute

I do not think this project will go around the world because it has specific propose, and you can create by your coding without this project dependency for long term solution. So, on this time, you can open the GitHub issue on this project 🙌 for fix bug or request new feature if you want it.

Metadata

Release files for deflow 0.0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for deflow 0.0.6
File Size Uploaded
deflow-0.0.6.tar.gz 34.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for deflow 0.0.6
File Interpreter ABI Platform
deflow-0.0.6-py3-none-any.whl Python 3 none any Details

Total release size: 62.9 kB

Release files / deflow-0.0.6.tar.gz

Download URL deflow-0.0.6.tar.gz
Size 34.0 kB
Tags Source
SHA-256 checksum
How to use checksums
c9238659375e88275460d304413b4f0043eb2667142a256a16c350e0f7da69fc
BLAKE2b-256 checksum
How to use checksums
b8424ff7e72a9f73c6d1d67e93bfb4e2165d0918d6a1bf76da754890a127da55
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 3, 2025.

Transparency log

Release files / deflow-0.0.6-py3-none-any.whl

Download URL deflow-0.0.6-py3-none-any.whl
Size 28.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f09069b4ed02c08913705038205075077c4612adc012e50ac0dfaf0d9ed4ae77
BLAKE2b-256 checksum
How to use checksums
50a3eded10998b6b40f907bc0c34c5ae998b99414a31e6307f86edfd69f186c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 3, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.6 This release

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page