Skip to main content

A small Python-native DAG task executor with caching.

Project description

Acyro

PyPI Python CI License

English | 简体中文

A small, local, Python-native DAG task runner with deterministic execution and JSON caching.

Install

pip install acyro

Requires Python 3.12 or newer.

Quick start

from acyro import run, task


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


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


run()

run() executes tasks in dependency order. Later runs skip unchanged tasks.

CLI

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

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

Cache

Successful tasks are cached under .acyro/cache. Fingerprints include task metadata, source code, and dependency fingerprints, so dependency changes invalidate downstream tasks. Use run(cache_dir=...) to choose another cache directory.

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

Development

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

Licensed under the MIT License.

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: acyro-0.1.1.tar.gz
  • Upload date:
  • Size: 16.3 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.1.tar.gz
Algorithm Hash digest
SHA256 f72ea06467420fc293314632627585c2214072d085f4e955c4468bbb0042f394
MD5 9972e10b64a863ef9a4c4d8286e8b7ac
BLAKE2b-256 1a0f72712d2089e8069ee839a442f0ca94a6825ecb68586d2d199b3600bcbc31

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: acyro-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 8.1 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7c919d577577ef38655422e0b234d2f857f5b3e84a88bc81f7121be33983ea05
MD5 930529b6330be8c35e241325d998446b
BLAKE2b-256 bc13f13a5e53e670221993adcdc9e85441036cd1f126aef3ffeb9356783d46ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for acyro-0.1.1-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