Pipeline¶
The pipeline module provides classes for configuring and executing reproducible processing workflows.
Pipeline Class¶
- class Pipeline[source]¶
Bases:
objectRecipe-style pipeline executor.
Executes a sequence of operations defined as StepConfig objects. Each operation receives the PipelineContext, modifies it, and returns it.
Example
>>> steps = [ ... StepConfig("smooth", {"iterations": 100}), ... StepConfig("remesh", {"n_clusters": 5000}), ... StepConfig("smooth", {"iterations": 50}), ... ] >>> pipeline = Pipeline(steps) >>> result = pipeline.run(mesh)
- __init__(steps, registry=None)[source]¶
Initialize pipeline with steps.
- Parameters:
steps (
list[StepConfig]) – List of step configurationsregistry (
OperationRegistry|None, default:None) – Operation registry (uses default if not provided)
- Return type:
None
- classmethod from_yaml(path)[source]¶
Load pipeline from YAML configuration file.
- Parameters:
- Return type:
- Returns:
Configured Pipeline instance
- Raises:
ConfigurationError – If YAML is invalid or missing required keys
- run(input_data, verbose=True, resolution=None)[source]¶
Execute all pipeline steps in sequence.
- Parameters:
input_data (
str|Path|ndarray[tuple[Any,...],dtype[Any]] |PhenoMesh) – Input data - can be: - Path to image file - NumPy array (image or contour) - PhenoMesh objectverbose (
bool, default:True) – Print progress informationresolution (
list[float] |None, default:None) – Spatial resolution [x, y, z] (for image/contour input)
- Return type:
- Returns:
PipelineContext with all results
- Raises:
PipelineError – If a step fails or input is invalid
- validate()[source]¶
Validate pipeline configuration without running.
- Return type:
- Returns:
List of validation warnings (empty if valid)
- Raises:
ConfigurationError – If configuration is invalid
PipelineContext Class¶
- class PipelineContext[source]¶
Bases:
objectHolds state passed between pipeline steps.
- image¶
Input 3D image array
- contour¶
Binary contour array
- mesh¶
PhenoMesh object
- domains¶
Domain labels array
- curvature¶
Curvature values array
- meristem_index¶
Index of the meristem domain
- domain_data¶
DataFrame with domain measurements
- resolution¶
Spatial resolution [x, y, z]
- neighbors¶
Cached vertex neighbors for performance
- __init__(image=None, contour=None, mesh=None, domains=None, curvature=None, meristem_index=None, domain_data=None, resolution=None, neighbors=None)¶
- Parameters:
- Return type:
None
StepConfig Class¶
OperationRegistry Class¶
- class OperationRegistry[source]¶
Bases:
objectRegistry of available pipeline operations.
Manages the mapping from operation names to callable functions. Supports registering custom operations.
- get(name)[source]¶
Get an operation by name.
- Parameters:
name (
str) – Operation name- Return type:
- Returns:
The operation callable
- Raises:
PipelineError – If operation name is not found
Preset Functions¶
- load_preset(name='default')[source]¶
Load a preset pipeline configuration.
- Parameters:
name (
str, default:'default') – Preset name (defaults to ‘default’)- Return type:
- Returns:
Configured Pipeline instance
- Raises:
ValueError – If preset name is not found
- get_preset_yaml(name='default')[source]¶
Get the YAML configuration for a preset.
- Parameters:
name (
str, default:'default') – Preset name (defaults to ‘default’)- Return type:
- Returns:
YAML configuration string
- Raises:
ValueError – If preset name is not found