Skip to contents

Run an iteration

The central entry point. Wraps a function and a mask with the two mandatory layers (logged + reproducibility) and exposes the optional ones.

genproc()
Run a function over a mask with mandatory logging and reproducibility
print(<genproc_result>)
Print a genproc result

Optional execution layers

Composable specs passed to genproc(). Parallel dispatches cases across workers via the future ecosystem. Non-blocking returns immediately and lets you collect the result later.

parallel_spec()
Specify a parallel execution strategy for genproc()
nonblocking_spec()
Specify a non-blocking execution strategy for genproc()
status()
Query the status of a genproc run without blocking
await()
Block until a non-blocking genproc run has resolved

Inspecting a result

Drill into the log of a completed run, and re-run only the cases that failed.

errors()
Subset a genproc result to its failed cases
summary(<genproc_result>)
Summarise a genproc result
print(<genproc_result_summary>)
Print method for genproc_result_summary
rerun_failed()
Re-run only the cases that failed

Reproducibility tooling

Compare two runs to detect silent drift of upstream input files, and re-run only the cases impacted by the drift.

diff_inputs() print(<genproc_input_diff>)
Compare input file fingerprints between two genproc runs
rerun_affected()
Re-run only the cases impacted by an input diff

Building blocks

Derive the function and the mask from a working example. Useful when migrating an existing one-off script to a genproc workflow.

from_example_to_function()
Transform an example expression into a parameterized function
from_function_to_mask()
Derive an iteration mask template from a function's signature
rename_function_params()
Rename the parameters of a function
add_trycatch_logrow()
Wrap a function with error handling and a structured log row