Skip to main content

aetherflow-core

GitHub Repo TestPyPI Version PyPI Version

aetherflow-core is a YAML-first workflow engine for ops-style ETL/ELT/automation: run-once jobs you can schedule anywhere (cron, Kubernetes, Airflow, Nomad, systemd, etc.).

It focuses on being:

  • Deterministic: given the same inputs, do the same thing
  • Composable: Flow → Job → Step, with clear boundaries
  • Safe by default: retries, timeouts, idempotency helpers, structured results
  • Extensible: add custom steps/connectors via a stable public API

This distribution ships the CLI aetherflow.


Install

pip install aetherflow-core[all]

Minimal install (if you want to control optional deps yourself):

pip install aetherflow-core

Python: 3.10+.


Quickstart (run a flow)

Create a file flow.yaml:

version: 1

flows:
  hello_flow:
    jobs:
      main:
        steps:
          - id: hello
            type: external.process
            command: ["python", "-c", "print('hello from aetherflow')"]

Run it:

aetherflow run --flow-yaml flow.yaml --flow-job main

Tip: the built-in step type is external.process (not external_process).


Concepts (how to think about it)

  • Flow: top-level unit (a collection of jobs)
  • Job: a run-once unit of work (a list or graph of steps)
  • Step: one action (shell/process, connector ops, custom plugin step, etc.)
  • Resources: named configs used by steps/connectors (e.g., DB connection profiles)
  • State / resume: persistent run state for reliability (if enabled/configured)
  • Locks: prevent overlapping executions when you run in parallel environments

Core stays intentionally run-once. Scheduling is handled by aetherflow-scheduler (separate package).


CLI

aetherflow run --help
aetherflow run --flow-yaml flow.yaml --flow-job main

Full command reference (in this repo):


Public API (for plugins / integrations)

If you are writing plugins or integrating AetherFlow programmatically, only import from:

from aetherflow.core.api import (
    FlowSpec, JobSpec, StepSpec, 
    Step, StepResult,
    register_step, register_connector,
    Settings, RunContext,
)

Everything outside aetherflow.core.api is internal and may change without notice.

Public API and SemVer policy:

  • aetherflow/docs/25-public-api-and-semver.md

Extending AetherFlow

High-level flow:

  1. Implement a Connector, Step subclass (or a compatible callable/factory, depending on your plugin style).
  2. Register it with register_connector(...).
  3. Register it with register_step(...).
  4. Reference it by type: in YAML.

Plugin guide:


YAML spec & guides

Start here:

Built-in catalog:


Docs (in this repository)

Canonical docs live in Aetherflow Doumentation.

Start here:

If you need scheduling, install aetherflow-scheduler.

Metadata

Release files for aetherflow-core 0.0.14

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

Source distribution (sdist)

Source distribution for aetherflow-core 0.0.14
File Size Uploaded Provenance Actions
aetherflow_core-0.0.14.tar.gz 115.6 kB Without provenance Details for aetherflow_core-0.0.14.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for aetherflow-core 0.0.14
File Interpreter ABI Platform Actions
aetherflow_core-0.0.14-py3-none-any.whl Python 3 none any Details for aetherflow_core-0.0.14-py3-none-any.whl

Total release size: 223.9 kB

Release files / aetherflow_core-0.0.14.tar.gz

Download URL aetherflow_core-0.0.14.tar.gz
Size 115.6 kB
Tags Source
SHA-256 checksum
How to use checksums
9948193b64fa2a40011e74e784ed0c27826b1a2ec387517706518bdcf000ab2b
BLAKE2b-256 checksum
How to use checksums
42733a5f9804ac80ac17ddd6390f4b60a7f960a5d614c3707196ea7e48c0a82a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / aetherflow_core-0.0.14-py3-none-any.whl

Download URL aetherflow_core-0.0.14-py3-none-any.whl
Size 108.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7e90643329bc5025fd52ee007a16835e90a694e06979ee4905ce141a73db182d
BLAKE2b-256 checksum
How to use checksums
b53c21202c7158a2f03b3840529ac83058828054b8242110ec35e2c02bf95947
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Security for aetherflow-core 0.0.14

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.0.14 This release

2 release files No provenance

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