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
  • ensure-dir-exist: Creates a directory listed in invoke.yaml if it doesn't already exist.
  • 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.3.tar.gz (7.9 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.3-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: airoh-0.1.3.tar.gz
  • Upload date:
  • Size: 7.9 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.3.tar.gz
Algorithm Hash digest
SHA256 77e8eddd7755a6cd8a78f63e8e7623b5d23d7475a40a28a906f491ac0a33bab0
MD5 466dea7da5d182409e888491b62a087c
BLAKE2b-256 8df082e81d24378597f4ec863829f82ab8705258f743c7f4c6978fc7a427c045

See more details on using hashes here.

File details

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

File metadata

  • Download URL: airoh-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 7.7 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 18a72c7176cbea6fecb7083d7156565ef5e660fe8362d5731fcd0054a3324320
MD5 63cb30d987081aee826cfa2147efacc1
BLAKE2b-256 f0ad1af02533883a3f029b375732e66e23b540231bb16767d60c64305b6b8df2

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