Skip to main content

Stardag

PyPI version Python versions Documentation License

Declarative and composable DAGs for Python.

Stardag provides a clean Python API for representing persistently stored assets, the code that produces them, and their dependencies as a declarative Directed Acyclic Graph (DAG). It is a spiritual—but highly modernized—descendant of Luigi, designed for iterative data and ML workflows.

Built on Pydantic, Stardag uses expressive type annotations to reduce boilerplate and make task I/O contracts explicit—enabling composable tasks and pipelines while maintaining a fully declarative specification of every produced asset.

Quick Example

import stardag as sd

@sd.task
def get_range(limit: int) -> list[int]:
    return list(range(limit))

@sd.task
def get_sum(integers: sd.Depends[list[int]]) -> int:
    return sum(integers)

# Declarative DAG specification - no computation yet
sum_task = get_sum(integers=get_range(limit=4))

# Materialize all tasks' targets
sd.build(sum_task)

# Load results
assert sum_task.load() == 6
assert sum_task.integers.load() == [0, 1, 2, 3]

Installation

pip install stardag

Or with uv:

uv add stardag

Optional extras:

pip install stardag[s3]      # S3 storage support
pip install stardag[prefect] # Prefect integration
pip install stardag[modal]   # Modal integration

Documentation

Read the docs for tutorials, guides, and API reference.

Stardag Cloud

Stardag Cloud provides optional services for team collaboration and monitoring:

  • Web UI — Dashboard for build monitoring and task inspection
  • API Service — Task tracking and coordination across distributed builds

The SDK works fully standalone—the platform adds value for teams needing shared visibility and coordination.

Why Stardag?

  • Composability — Task instances as first-class parameters enable loose coupling and reusability
  • Declarative — Full DAG specification before execution; inspect, serialize, and reason about pipelines
  • Deterministic — Parameter hashing gives each task a unique, reproducible ID and output path
  • Pydantic-native — Tasks are Pydantic models with full validation and serialization support
  • Framework-agnostic — Integrate with Prefect, Modal, or run standalone

Links

Download files

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

Source Distribution

stardag-0.16.0.tar.gz (663.6 kB view details)

Uploaded Source

Built Distribution

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

stardag-0.16.0-py3-none-any.whl (286.5 kB view details)

Uploaded Python 3

File details

Details for the file stardag-0.16.0.tar.gz.

File metadata

  • Download URL: stardag-0.16.0.tar.gz
  • Upload date:
  • Size: 663.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for stardag-0.16.0.tar.gz
Algorithm Hash digest
SHA256 6a43f33ba3aad0f7213271f6df112002d3d72f747aa0426b3b4f57edb4ed1f19
MD5 404d9b73755eab58bcf5299ce04ca4a9
BLAKE2b-256 ec6b52dcde6c92f00d0c43ab386e9e67fc069fb5435759cd63e9c759107e3438

See more details on using hashes here.

Provenance

The following attestation bundles were made for stardag-0.16.0.tar.gz:

Publisher: publish.yml on stardag-dev/stardag

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

File details

Details for the file stardag-0.16.0-py3-none-any.whl.

File metadata

  • Download URL: stardag-0.16.0-py3-none-any.whl
  • Upload date:
  • Size: 286.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for stardag-0.16.0-py3-none-any.whl
Algorithm Hash digest
SHA256 25bf5c4c16c825eea15baad5da91a99c683441d435916f2519eb62c4aa15cdfe
MD5 8c41b8c7108f0ce7fe0b642bd1c4e684
BLAKE2b-256 d1bcfbcf2ce058e7f81e8b2e2e2485eaaae86c3a3835b34552d00e7728c797e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for stardag-0.16.0-py3-none-any.whl:

Publisher: publish.yml on stardag-dev/stardag

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

Release history Release notifications | RSS feed

0.20.0

2 files

0.19.1

2 files

0.19.0

2 files

0.18.0

2 files

0.17.0

2 files

0.16.1

2 files

This release

0.16.0 This release

2 files

0.15.0

2 files

0.14.0

2 files

0.13.0

2 files

0.12.0

2 files

0.11.0

2 files

0.10.2

2 files

0.10.1

2 files

0.10.0

2 files

0.9.0

2 files

0.8.1

2 files

0.8.0

2 files

0.7.3

2 files

0.7.2

2 files

0.7.1

2 files

0.7.0

2 files

0.6.1

2 files

0.6.0

2 files

0.5.9

2 files

0.5.8

2 files

0.5.7

2 files

0.5.6

2 files

0.5.5

2 files

0.5.4

2 files

0.5.3

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

0.2.1

2 files

0.2.0

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

0.0.5

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page