Marshall Krassenstein
06/21/2024, 7:38 PMparams.yaml
file. I see in the docs that I can invoke my modular pipeline with the example
alpha_pipeline = pipeline(
pipe=template_pipeline,
inputs={"input1", "input2"},
parameters={"params:override_me": "params:alpha"},
namespace="alpha",
)
beta_pipeline = pipeline(
pipe=template_pipeline,
inputs={"input1", "input2"},
parameters={"params:override_me": "params:beta"},
namespace="beta",
)
etc..
Is there a way I could do this in a loop but where the list is read in from the params.yaml
file?
So something like the loop below:
variable_parameter_list = read_in_config_yaml_somehow()
pipes = []
for value in variable_parameter_list:
pipes.append(pipeline(
pipe=template_pipeline,
inputs={"input1", "input2"},
parameters={"params:override_me": "params:value"},
namespace=value,
))
Deepyaman Datta
06/21/2024, 8:27 PMMarshall Krassenstein
06/21/2024, 8:56 PMmarrrcin
06/24/2024, 7:34 AMMarshall Krassenstein
06/25/2024, 12:39 PMMarshall Krassenstein
06/25/2024, 1:09 PMfrom kedro.pipeline import node, Pipeline
from kedro.pipeline.modular_pipeline import pipeline
from ikea_pipeline import settings
def create_pipeline(**kwargs) -> Pipeline:
namespaces = [
f"{namespace}.{variant}"
for namespace, variants in settings.DYNAMIC_PIPELINES_MAPPING.items()
for variant in variants
]
deployments = [f"{i}.deployment_id" for i in namespaces]
nodes = [
node(
name="merge_deployments",
func=lambda *args: {"deployments": list(args)},
inputs=[f"{i}.deployment_id" for i in namespaces],
outputs="deployment_ids",
),
]
pipeline_inst = pipeline(nodes)
return pipeline(
pipeline_inst,
inputs=deployments,
namespace="merge_dynamic_pipeline_reprex",
)
marrrcin
06/25/2024, 1:40 PM