Pipeline configuration#
A pipeline YAML document contains a name and a mapping of step identifiers:
Pipelines written for the retired IndexPixels, former IndexedAverager, or
former geometry wavelength_* interfaces require the
breaking interface migration before they will load.
name: example
steps:
poisson:
module: PoissonUncertainties
requires_steps: []
short_title: counting statistics
configuration:
with_processing_keys: [sample]
Each step has:
module(required): a registeredProcessStepname;requires_steps: prerequisite step identifiers;short_title: optional graph annotation; andconfiguration: shared and module-specific values.
Repeated lanes can be authored as a step_blocks entry with a for_each
parameter table. MoDaCor expands each item into ordinary steps before module
validation and DAG construction:
step_blocks:
normalize:
for_each:
sample: {processing_key: sample}
background: {processing_key: background}
steps:
mask:
module: ThresholdMask
configuration:
with_processing_keys: ["${processing_key}"]
lower_bound: 0
apply:
module: ApplyMask
requires_steps: [.mask]
configuration:
with_processing_keys: ["${processing_key}"]
This produces normalize.sample.mask, normalize.sample.apply,
normalize.background.mask, and normalize.background.apply. Each is an
independent execution node with its own validation, trace, failure report, and
partial-rerun behavior.
The block name itself is not an execution node, so a downstream step cannot use
requires_steps: [normalize] to depend on the whole block. It must name the
generated terminal instances it consumes, for example:
steps:
compare:
module: ComparePreparedData
requires_steps:
- normalize.sample.apply
- normalize.background.apply
Requiring each terminal instance is sufficient because its earlier local dependencies are included transitively. Version 1 has no block-wide dependency or wildcard shorthand.
Configuration is validated when the pipeline loads. Shared keys come from
ProcessStep.CONFIG_KEYS; module-specific keys, expected top-level types, and
defaults come from ProcessStepDescriber.arguments. Modules perform additional
semantic validation when values depend on runtime sources or relationships
between fields.
Keep scientific constants and their provenance close to the YAML. Keep changing file locations in runtime source/sink registration so the pipeline remains reusable. Use stable step and processing keys because traces and partial reruns refer to them.
See the exact pipeline schema reference and per-step generated configuration tables.