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.1.tar.gz (66.8 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.1-py3-none-any.whl (24.3 kB view details)

Uploaded Python 3

File details

Details for the file dagler-0.0.1.tar.gz.

File metadata

  • Download URL: dagler-0.0.1.tar.gz
  • Upload date:
  • Size: 66.8 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.1.tar.gz
Algorithm Hash digest
SHA256 9dab955768009026206223b85be7780f9ad17f7ea6606ac61a20a447802688bf
MD5 1e5775cbc0bdd0cc75d5dc9ce83d5f0e
BLAKE2b-256 8b9f246a50145a5ece746d72c5bcc325afb229f75a7f102d9b467adcdf7d36b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for dagler-0.0.1.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.1-py3-none-any.whl.

File metadata

  • Download URL: dagler-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 24.3 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7a16a50af3cbaabb0a946cf409f7b2cea3966f2e6c0959010713c1cc31773397
MD5 8f7f784984344a9488b394da7d114f60
BLAKE2b-256 9eb893474d8697861d8f4d77476d419c126932882f315fb1d785bb1a6cdf0d0d

See more details on using hashes here.

Provenance

The following attestation bundles were made for dagler-0.0.1-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