Skip to main content

A small Python-native DAG task executor with caching.

Project description

Acyro

Acyro is a small, local DAG task runner for Python. It executes decorated functions in dependency order and skips unchanged work using a local JSON cache.

Install

pip install acyro

Until the first PyPI release, install a checkout with uv sync --extra dev.

Python API

from acyro import run, task


@task
def download() -> None:
    print("download")


@task(depends=[download])
def build() -> None:
    print("build")


run()

run() caches successful tasks under .acyro/cache. A task runs again when its metadata, source code, or any dependency fingerprint changes. Pass run(cache_dir=...) to use another directory.

CLI

Put tasks in a Python file, then run or inspect them:

acyro graph examples/acyrofile.py
acyro run examples/acyrofile.py

Example graph output:

download -> build

Scope

Acyro v0.1 is intentionally serial and local. It has no scheduler, distributed workers, async runtime, database, retries, or pluggable cache backends.

Development

uv sync --extra dev
uv run pytest -q
uv run ruff check .
uv build

See publishing instructions for the one-time GitHub and PyPI setup.

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

acyro-0.1.0.tar.gz (15.1 kB view details)

Uploaded Source

Built Distribution

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

acyro-0.1.0-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file acyro-0.1.0.tar.gz.

File metadata

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

File hashes

Hashes for acyro-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7109e0795f49cc3bcdb86b4ef0c1c4a00985b88ea15a9003a6189633f00a5481
MD5 e30e46bc19818f1a086f9d4ef452a726
BLAKE2b-256 25072cf6a9aaddd92e41c8c55167b2fbd464a12fb44ce4cbd9cd888d2e4fa4db

See more details on using hashes here.

Provenance

The following attestation bundles were made for acyro-0.1.0.tar.gz:

Publisher: publish.yml on xjn2005/Acyro

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

File details

Details for the file acyro-0.1.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for acyro-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d3a1464337b8077c9ed66018663c9b906f6573a32dd44b6aaa43fb71ba9bbf85
MD5 f6d2a5c7302342fc8df9eb53f3815237
BLAKE2b-256 117b7e51956351014655b052192664ff36d554c61f26ae27be9a9973aab33516

See more details on using hashes here.

Provenance

The following attestation bundles were made for acyro-0.1.0-py3-none-any.whl:

Publisher: publish.yml on xjn2005/Acyro

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