DAG pipeline orchestration built on qler + sqler
Project description
dagler
Pipeline orchestration without Airflow, built on qler + SQLite.
dagler is a DAG pipeline orchestration library for Python. Each task runs as a qler job, SQLite is the only infrastructure, and pipelines are defined with Python decorators.
The -ler Stack
| Layer | Tool | Responsibility |
|---|---|---|
| Storage | sqler | SQLite ORM, async, optimistic locking |
| Queues | qler | Background job execution |
| Pipelines | dagler | DAG orchestration (this project) |
Install
uv add dagler
Quick Start
from dagler import DAG
dag = DAG("etl_pipeline")
@dag.task
async def extract():
return await fetch_data()
@dag.task(depends_on=[extract])
async def transform(data):
return process(data)
@dag.task(depends_on=[transform])
async def load(data):
await write_to_db(data)
# Submit a pipeline run
run = await dag.run(queue)
await run.wait()
Features
- Declarative DAGs — Python decorators, not YAML
- Automatic result passing — parent results injected into child tasks
- Dynamic fan-out —
@dag.map_tasksplits work,@dag.reduce_taskcollects results - Pipeline tracking — every
dag.run()creates a tracked DagRun with status rollup - LLM-agent friendly CLI — structured JSON output, actionable errors, discoverable schemas
- SQLite-only — no Redis, no Postgres, no external brokers
CLI
dagler init # Initialize the database
dagler run <dag> # Submit a pipeline run
dagler runs # List pipeline runs
dagler run-info <id> # Inspect a specific run
dagler cancel <id> # Cancel a running pipeline
dagler retry <id> # Retry a failed pipeline
dagler wait <id> # Block until a run completes
Contributing
See CLAUDE.md for project architecture and contributor docs.
License
MIT
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 dagler-0.0.2.tar.gz.
File metadata
- Download URL: dagler-0.0.2.tar.gz
- Upload date:
- Size: 67.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
979f959cef28a6bbcef19edac2a013b70d80be2397edc95ac03a736b97bf22c6
|
|
| MD5 |
15828fbb63a705c418eb603938769037
|
|
| BLAKE2b-256 |
2fa61ec64ebc8dce9fb12f448d30a4d9bae275eefe353d6d031f1cdac43ba766
|
Provenance
The following attestation bundles were made for dagler-0.0.2.tar.gz:
Publisher:
pypi.yml on gabu-quest/dagler
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dagler-0.0.2.tar.gz -
Subject digest:
979f959cef28a6bbcef19edac2a013b70d80be2397edc95ac03a736b97bf22c6 - Sigstore transparency entry: 1058947883
- Sigstore integration time:
-
Permalink:
gabu-quest/dagler@1bf9e2e9222b2927efab04e0d41c7f0e2670e5a0 -
Branch / Tag:
refs/tags/v0.0.2 - Owner: https://github.com/gabu-quest
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@1bf9e2e9222b2927efab04e0d41c7f0e2670e5a0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file dagler-0.0.2-py3-none-any.whl.
File metadata
- Download URL: dagler-0.0.2-py3-none-any.whl
- Upload date:
- Size: 24.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
157fd1206c022f6179672ab71050be0e62acaa3102b9655e1ddbb89962d845cf
|
|
| MD5 |
ed37d3f7d607a654fdf8de284c7dee16
|
|
| BLAKE2b-256 |
785b71edf113a24efcb17756c2e35dd4663485bce1724971930599704671e5f7
|
Provenance
The following attestation bundles were made for dagler-0.0.2-py3-none-any.whl:
Publisher:
pypi.yml on gabu-quest/dagler
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dagler-0.0.2-py3-none-any.whl -
Subject digest:
157fd1206c022f6179672ab71050be0e62acaa3102b9655e1ddbb89962d845cf - Sigstore transparency entry: 1058947905
- Sigstore integration time:
-
Permalink:
gabu-quest/dagler@1bf9e2e9222b2927efab04e0d41c7f0e2670e5a0 -
Branch / Tag:
refs/tags/v0.0.2 - Owner: https://github.com/gabu-quest
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@1bf9e2e9222b2927efab04e0d41c7f0e2670e5a0 -
Trigger Event:
push
-
Statement type: