Skip to main content

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_task splits work, @dag.reduce_task collects 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


Download files

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

Source Distribution

dagler-0.0.2.tar.gz (67.0 kB view details)

Uploaded Source

Built Distribution

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

dagler-0.0.2-py3-none-any.whl (24.6 kB view details)

Uploaded Python 3

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

Hashes for dagler-0.0.2.tar.gz
Algorithm Hash digest
SHA256 979f959cef28a6bbcef19edac2a013b70d80be2397edc95ac03a736b97bf22c6
MD5 15828fbb63a705c418eb603938769037
BLAKE2b-256 2fa61ec64ebc8dce9fb12f448d30a4d9bae275eefe353d6d031f1cdac43ba766

See more details on using hashes here.

Provenance

The following attestation bundles were made for dagler-0.0.2.tar.gz:

Publisher: pypi.yml on gabu-quest/dagler

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

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

Hashes for dagler-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 157fd1206c022f6179672ab71050be0e62acaa3102b9655e1ddbb89962d845cf
MD5 ed37d3f7d607a654fdf8de284c7dee16
BLAKE2b-256 785b71edf113a24efcb17756c2e35dd4663485bce1724971930599704671e5f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for dagler-0.0.2-py3-none-any.whl:

Publisher: pypi.yml on gabu-quest/dagler

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