Skip to main content

Because reproducible science takes clean tasks. And why don't you have a cup of relaxing jasmin tea?

airoh is a lightweight Python task library built with invoke, designed for reproducible research workflows. It provides pre-written, modular task definitions that can be easily reused in your own tasks.py file — no boilerplate, just useful automation. Access the documentation of the library on the airoh docs website for a list of available airoh tasks.

Installation

Installation through PIP:

pip install airoh

For local deployment:

git clone https://github.com/airoh-pipeline/airoh.git
cd airoh
pip install -e .

Usage

You can use airoh in your project simply by importing tasks in your tasks.py file.

Minimal Example

# tasks.py
from airoh.utils import run_notebooks, setup_env_python

Now you can call:

invoke run-notebooks
invoke setup-env-python

Keeping a project honest

Two modules exist for the parts of reproducibility that no pipeline run can check by itself.

airoh.verify compares a project against its own documentation — the task list in the README, the packages in requirements.txt versus pyproject.toml, the paths the docs name, the entries in each data folder versus its CONTENT.md, the size and type of what git tracks. It runs a flat list of independent checks and exits non-zero when any fails. Wire it up as its own task and run it before committing; never call it from run, so that reproducing results never depends on documentation hygiene.

airoh.provenance writes two records: record_sources describes what every declared asset actually resolved to (a URL, a real path behind a symlink, the commit of the repository it belongs to), and record_run describes what produced the current outputs (project commit, environment, input manifest, output checksums). Neither can fail a pipeline — a provenance record is documentation, not a precondition. Where datalad is in use it remains the only thing that can retrieve a past state; these records are what you get without it.

# tasks.py
from airoh.verify import verify            # noqa: F401  (exposes `invoke verify`)
from airoh.provenance import record_run, record_sources

Requirements

  • Python ≥ 3.8
  • invoke ≥ 2.0
  • Docker (for container tasks)
  • Apptainer (optional, for .sif support)
  • jupyter (if using run-notebooks)

Note that a few more requirements are required for development, in particular pdoc which is used to generate the documentation website.

Philosophy

Inspired by Uncle Iroh from Avatar: The Last Airbender, airoh aims to bring simplicity, reusability, and clarity to research infrastructure — one well-structured task at a time. It is meant to support a concrete implementation of the YODA principles.

License

MIT © airoh contributors

Download files

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

Source Distribution

airoh-0.4.0.tar.gz (41.0 kB view details)

Uploaded Source

Built Distribution

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

airoh-0.4.0-py3-none-any.whl (31.9 kB view details)

Uploaded Python 3

File details

Details for the file airoh-0.4.0.tar.gz.

File metadata

  • Download URL: airoh-0.4.0.tar.gz
  • Upload date:
  • Size: 41.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for airoh-0.4.0.tar.gz
Algorithm Hash digest
SHA256 d06fb91cd2a5ec847aea8ee1b9ff8211e7f296f593317900626bb045e62d74c0
MD5 0480eadc5de92f94fc923a403eda0503
BLAKE2b-256 1011331cfd192e063445a0179b27c841a155c8692f9d1cddadf3984764366501

See more details on using hashes here.

Provenance

The following attestation bundles were made for airoh-0.4.0.tar.gz:

Publisher: publish.yml on airoh-pipeline/airoh

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

File details

Details for the file airoh-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: airoh-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 31.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for airoh-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6a7212037afd31050fd8cd5c14eb4061cac0d813a4be1225764e0b09071bd8bd
MD5 0d7c74cd8029584fb0efb54b3533d93c
BLAKE2b-256 862f726acec84ada7a4959433f4ebb46011b365ef682541ec7242847c0eb76cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for airoh-0.4.0-py3-none-any.whl:

Publisher: publish.yml on airoh-pipeline/airoh

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.5.0

2 files

This release

0.4.0 This release

2 files

0.3.2

2 files

0.3.1

2 files

0.2.0

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page