Skip to main content

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
  • a desktop operator surface

Install

Use the installer for your environment:

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

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.source
  • context.mirror
  • context.current
  • context.objects
  • context.metadata
  • context.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


Download files

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

Source Distribution

py_data_engine-0.4.0.tar.gz (8.6 MB view details)

Uploaded Source

Built Distribution

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

py_data_engine-0.4.0-py3-none-any.whl (8.8 MB view details)

Uploaded Python 3

File details

Details for the file py_data_engine-0.4.0.tar.gz.

File metadata

  • Download URL: py_data_engine-0.4.0.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

Hashes for py_data_engine-0.4.0.tar.gz
Algorithm Hash digest
SHA256 d06382b6972dc91f734d6b04c4857fd1592475e8c76c4795087404ed4beb4d8f
MD5 74d04b8c36ca65dec49ec65cefcf6adf
BLAKE2b-256 b000e285dd52411f29a08f2abf3350d263303951d99f16bcd7be0ac247bd5dbc

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_data_engine-0.4.0.tar.gz:

Publisher: publish-pypi.yml on bj-data-eng/data-engine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file py_data_engine-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: py_data_engine-0.4.0-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

Hashes for py_data_engine-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7404a9b4a8ce405c5fd8e99f545b3fc18729b9f7e400eb5caff55041d8e766bb
MD5 f6327e4b5e96cab724662b64d6385dbe
BLAKE2b-256 eaa788e3b6a6eaee42ef29961b4ff3ea1c39cb68b6f9acaf6ca471d979d616be

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_data_engine-0.4.0-py3-none-any.whl:

Publisher: publish-pypi.yml on bj-data-eng/data-engine

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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