Source code for laurel.pipelines.build_scenarios.pipeline

"""Kedro pipeline definition for the ``build_scenarios`` pipeline.

Wires the nodes from :mod:`laurel.pipelines.build_scenarios.nodes` into a single ``Pipeline`` object.
For full documentation of each node's inputs, outputs, and algorithm,
see :mod:`laurel.pipelines.build_scenarios.nodes`.

Sub-pipelines / tags
--------------------
- **build_scenarios** — generates per-scenario YAML configuration
  partitions and the corresponding SLURM batch script for HPC execution.

To visualise the node graph interactively, run::

    kedro viz run

then open http://localhost:4141 in a browser and select ``build_scenarios``
from the pipeline dropdown.
"""

from kedro.pipeline import Node, Pipeline

from laurel.scenario_framework.cmd import generate_bash_script

from .nodes import generate_scenario_configs


[docs] def create_pipeline(**kwargs) -> Pipeline: pipe = Pipeline( [ Node( func=generate_scenario_configs, inputs=["params:scenario_params", "parameters", "base_catalog"], outputs=["scenario_configs", "scenario_builder"], name="generate_scenario_configs", ), Node( func=generate_bash_script, inputs=[ "params:slurm_command", "scenario_builder", "params:cmd_line_calls", "params:slurm_resources", "params:slurm_reporting", ], outputs="scenario_slurm_script", name="generate_bash_script", ), ], tags="build_scenarios", ) return pipe