Skip to main content

A lightweight task library for reproducible workflows

Project description

airoh

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.

Installation

Installation through PIP:

pip install airoh

For local deployment:

git clone https://github.com/simexp/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_figures, setup_env_python

Now you can call:

invoke run-figures
invoke setup-env-python

Available Tasks

From containers.py

  • docker-build — Build a Docker image from a Dockerfile
  • docker-archive — Archive the Docker image to .tar.gz
  • docker-setup — Download and load a Docker image from URL
  • docker-run — Run an invoke task inside Docker
  • apptainer-archive — Build an Apptainer image from Docker
  • apptainer-run — Run an invoke task inside Apptainer

From utils.py

  • ensure_submodule — Ensure a git submodule is present and up to date
  • install_local — Install a local Python package in editable mode using pip
  • setup-env-python — Install Python dependencies from a file
  • run-figures — Run Jupyter notebooks to generate figures
  • clean_folder — Remove an entire directory recursively. Use with caution!!!

From datalad.py

  • get-data — Install and retrieve a subdataset listed in invoke.yaml
  • import-archive — Download a remote archive (e.g. from Zenodo), extract its contents with datalad, and optionally drop the original file
  • import-file — Download a remote file (e.g. from Zenodo), using datalad

Requirements

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

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 © Lune Bellec

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

airoh-0.1.2.tar.gz (7.6 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.1.2-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: airoh-0.1.2.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for airoh-0.1.2.tar.gz
Algorithm Hash digest
SHA256 69e2dc1a73ecbb1edbf430eb11304d23a71b2b833483252b7bb802efeddfc23c
MD5 f12677673074799dd4e0198770aa58f7
BLAKE2b-256 60f9c81bdab94b1816134e63c55579147b84b3d482b4e95f6c37da61624c756a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: airoh-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 7.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for airoh-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 088d3563153dd712ba73cdd75d5ef5e728142e1f82860c4ba59975d5fda77782
MD5 a955b540c9955985052c99f5e98590e1
BLAKE2b-256 7438463806c2f388c0dc80467ab00489aca0213b47c7c8b23ac48793a0b53151

See more details on using hashes here.

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