GUI orchestrator for python-based dataframe transform pipelines.
Project description
Data Engine
Data Engine is a GUI orchestrator for Python dataframe workflows. It lets you author flows as plain Python modules, run them manually or automatically, and inspect parquet-first outputs from the desktop app.
The runtime is built around:
- workspace-based flow discovery
- manual, poll, and schedule execution modes
- Polars and DuckDB-friendly flow steps
- mirrored output paths for source-driven runs
- saved run, log, and dataframe inspection state
- desktop and terminal operator surfaces
Install
Use the installer for your environment:
- macOS: INSTALL/INSTALL MAC.command
- Windows: INSTALL/INSTALL WINDOWS.bat
- Windows VM / CPU-safe Polars path: INSTALL/INSTALL WINDOWS_VM.bat
For local development:
python -m pip install --constraint requirements/constraints.txt -e ".[dev]"
For a published package install:
python -m pip install py-data-engine
Data Engine requires Python >=3.14.
Dependency pinning, constrained installs, and hash-locked runtime installs are documented in SECURITY.md.
Start
Desktop GUI:
data-engine start gui
Terminal UI:
data-engine start tui
Headless commands:
data-engine list
data-engine show example_summary
data-engine run --once example_summary
data-engine run
Minimal Flow
from data_engine import Flow
import polars as pl
def read_docs(context):
return pl.read_excel(context.source.path)
def keep_open(context):
return context.current.filter(pl.col("status") == "OPEN")
def write_parquet(context):
output = context.mirror.with_suffix(".parquet")
context.current.write_parquet(output)
return output
def build():
return (
Flow(group="Docs")
.watch(
mode="poll",
source="../../../example_data/Input/docs_flat",
interval="5s",
extensions=[".xlsx", ".xls", ".xlsm"],
settle=1,
)
.mirror(root="../../../example_data/Output/example_mirror")
.step(read_docs, save_as="raw_df")
.step(keep_open, use="raw_df", save_as="filtered_df")
.step(write_parquet, use="filtered_df")
)
Each authored flow module exports build() -> Flow. The module filename is the
flow identity.
Workspaces
Data Engine discovers workspaces from a collection root. Each workspace keeps authored flows under:
workspaces/<workspace_id>/flow_modules/
Shared workspace state lives under:
workspaces/<workspace_id>/.workspace_state/
Machine-local runtime artifacts are stored outside the authored workspace.
Useful APIs
from data_engine import Flow, FlowContext, discover_flows, load_flow, run
Common Flow methods:
.watch(...).mirror(...).date_range_input(...).step(...).collect(...).map(...).step_each(...).preview(...).run_once().run()
Common FlowContext values:
context.sourcecontext.mirrorcontext.currentcontext.objectscontext.metadatacontext.database("analytics.duckdb")context.template("reports/base.xlsx")context.debug
The full authoring guide and helper reference live in
src/data_engine/docs/sphinx_source/guides/.
Testing
python -m pytest -q
python -m build
python -m twine check dist/*
Status
This project is pre-alpha. Internal architecture is still moving quickly, and backwards compatibility is not a current goal.
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 py_data_engine-0.3.12.tar.gz.
File metadata
- Download URL: py_data_engine-0.3.12.tar.gz
- Upload date:
- Size: 8.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9fb0874f0dd36a103b711230be98e3764455a24d77fd80756216fa890089c83
|
|
| MD5 |
5dbc3c756d56b15e283bd275f9638146
|
|
| BLAKE2b-256 |
4d3f65d9bbb642a030a55537e81356c4a22d8c48c244cd8629ce0d7acac6c96d
|
Provenance
The following attestation bundles were made for py_data_engine-0.3.12.tar.gz:
Publisher:
publish-pypi.yml on bj-data-eng/data-engine
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
py_data_engine-0.3.12.tar.gz -
Subject digest:
b9fb0874f0dd36a103b711230be98e3764455a24d77fd80756216fa890089c83 - Sigstore transparency entry: 1597336470
- Sigstore integration time:
-
Permalink:
bj-data-eng/data-engine@b6a01b70d37c7d6bb9885f132e1218eb07d46f62 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/bj-data-eng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@b6a01b70d37c7d6bb9885f132e1218eb07d46f62 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file py_data_engine-0.3.12-py3-none-any.whl.
File metadata
- Download URL: py_data_engine-0.3.12-py3-none-any.whl
- Upload date:
- Size: 8.8 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9f982316d777a233c3281aa596dd6b4964c771671046cf6809ef22f368a78e46
|
|
| MD5 |
2e3bf7f31085c87e564037fe7bb82751
|
|
| BLAKE2b-256 |
6d3711ed4550620bf1b70232c53d4d315ed4e8cbbc59a36bb921c98ffecbf572
|
Provenance
The following attestation bundles were made for py_data_engine-0.3.12-py3-none-any.whl:
Publisher:
publish-pypi.yml on bj-data-eng/data-engine
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
py_data_engine-0.3.12-py3-none-any.whl -
Subject digest:
9f982316d777a233c3281aa596dd6b4964c771671046cf6809ef22f368a78e46 - Sigstore transparency entry: 1597336635
- Sigstore integration time:
-
Permalink:
bj-data-eng/data-engine@b6a01b70d37c7d6bb9885f132e1218eb07d46f62 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/bj-data-eng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@b6a01b70d37c7d6bb9885f132e1218eb07d46f62 -
Trigger Event:
workflow_dispatch
-
Statement type: