aetherflow-scheduler
aetherflow-scheduler is a thin cron-style scheduler for AetherFlow, built on APScheduler.
It reads a YAML file and triggers aetherflow runs on a schedule. The design goal is simplicity:
- Core stays run-once and deterministic
- Scheduler is the run-on-cron wrapper
This distribution ships the CLI aetherflow-scheduler.
Install
pip install aetherflow-scheduler
This depends on aetherflow-core and installs it automatically.
Python: 3.10+.
CLI
aetherflow-scheduler --help
aetherflow-scheduler run path/to/scheduler.yaml
Scheduler YAML (schema)
Top-level keys:
timezone(string, optional): timezone name (IANA tz database). Default:"Europe/Berlin".items(list, required): list of scheduled items
Each item:
id(string, required): APScheduler job idcron(string, required): crontab expression (e.g."0 * * * *")flow_yaml(string, required): path to a flow YAML fileflow(string, optional): flow id inside the YAMLflow_job(string, optional): job id within the flowbundle_manifest(string, optional): bundle manifest path (sync before run)allow_stale_bundle(bool, optional): defaultfalsemisfire_grace_time(int seconds, optional): default300
Example:
timezone: Europe/Berlin
items:
- id: hourly_sales
cron: "0 * * * *"
flow_yaml: "flows/sales.yaml"
flow: "sales_flow"
flow_job: "main"
bundle_manifest: "bundles/sales_bundle.yaml"
allow_stale_bundle: true
misfire_grace_time: 600
Run it:
aetherflow-scheduler run scheduler.yaml
Overlap prevention and reliability
AetherFlow itself can use locks/state to avoid overlapping executions and to support recovery patterns. Scheduler is intentionally minimal: it triggers runs; the “safety” lives in core.
Relevant docs:
Namespace package rule (important)
AetherFlow is a PEP 420 implicit namespace across distributions.
Use:
import aetherflow.schedulerimport aetherflow.corefrom aetherflow.core.api import ...
Do not rely on ambiguous imports like aetherflow.x.
Docs (in this repository)
Scheduler-specific doc:
Start here:
Metadata
Release files for aetherflow-scheduler 0.0.14
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| aetherflow_scheduler-0.0.14.tar.gz | 8.3 kB | Without provenance | Details for aetherflow_scheduler-0.0.14.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| aetherflow_scheduler-0.0.14-py3-none-any.whl | Python 3 | none | any | Details for aetherflow_scheduler-0.0.14-py3-none-any.whl |
Total release size: 16.5 kB
Release files / aetherflow_scheduler-0.0.14.tar.gz
| Download URL | aetherflow_scheduler-0.0.14.tar.gz |
|---|---|
| Size | 8.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3c036c343080b9ee7360ff821ea2be3390f8c9e720f50922ae38fc4c1425c524
|
|
BLAKE2b-256 checksum How to use checksums |
35aa6beca4b2494ac8e2f27a28348810d6eac6c96b241ef44c8392cbda2b5614
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / aetherflow_scheduler-0.0.14-py3-none-any.whl
| Download URL | aetherflow_scheduler-0.0.14-py3-none-any.whl |
|---|---|
| Size | 8.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b2c58bc4061ec850207ece211a845a5383505e5e3361d67f5acf3373aea43b1e
|
|
BLAKE2b-256 checksum How to use checksums |
8cf179144975c9b2e1b3a5f41976a68208d6d73cf982911739823e78f0aca952
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Security for aetherflow-scheduler 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.