diff options
| author | S. Solomon Darnell | 2025-03-28 21:52:21 -0500 |
|---|---|---|
| committer | S. Solomon Darnell | 2025-03-28 21:52:21 -0500 |
| commit | 4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch) | |
| tree | ee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/azure/ai/ml/dsl/_parallel_for.py | |
| parent | cc961e04ba734dd72309fb548a2f97d67d578813 (diff) | |
| download | gn-ai-master.tar.gz | |
Diffstat (limited to '.venv/lib/python3.12/site-packages/azure/ai/ml/dsl/_parallel_for.py')
| -rw-r--r-- | .venv/lib/python3.12/site-packages/azure/ai/ml/dsl/_parallel_for.py | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/azure/ai/ml/dsl/_parallel_for.py b/.venv/lib/python3.12/site-packages/azure/ai/ml/dsl/_parallel_for.py new file mode 100644 index 00000000..4158f744 --- /dev/null +++ b/.venv/lib/python3.12/site-packages/azure/ai/ml/dsl/_parallel_for.py @@ -0,0 +1,67 @@ +# --------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# --------------------------------------------------------- +from typing import Any, Dict, List, Union + +from azure.ai.ml.entities._builders import BaseNode +from azure.ai.ml.entities._builders.parallel_for import ParallelFor +from azure.ai.ml.entities._job.pipeline._io import NodeOutput, PipelineInput + + +def parallel_for( + *, body: BaseNode, items: Union[List, Dict, str, PipelineInput, NodeOutput], **kwargs: Any +) -> ParallelFor: + """Build a parallel for loop by specifying the loop body and input items. + + .. note:: + The following example shows how to use parallel for API to create a pipeline with parallel for node. + + .. code-block:: python + + from azure.ai.ml.dsl import pipeline + from mldesigner.dsl import parallel_for + + + @pipeline + def your_loop_body(input): + pass + + + @pipeline + def pipeline_with_parallel_for_node(): + # specify fixed inputs and leave loop config inputs unprovided + loop_body = your_loop_body() + + # link loop body & loop config to loop node + loop_node = parallel_for( + body=loop_body, + items=[ + {"loop_body_input": 1}, + {"loop_body_input": 2}, + ], + ) + + # collect aggregated output from loop body + aggregate_node = collect_aggregated_outputs_from_for_each_node( + input=loop_node.outputs.output, + ) + + :keyword body: Node to execute as the loop body. + :paramtype body: ~azure.ai.ml.entities._builders.BaseNode + :keyword items: The loop body's input which will bind to the loop node. + :paramtype items: Union[ + list, + dict, + str, + ~azure.ai.ml.entities._job.pipeline._io.PipelineInput, + ~azure.ai.ml.entities._job.pipeline._io.NodeOutput] + :return: The parallel for loop + :rtype: ~azure.ai.ml.entities._builders.parallel_for.ParallelFor + """ + parallel_for_node = ParallelFor( + body=body, # type: ignore[arg-type] + items=items, + _from_component_func=True, + **kwargs, + ) + return parallel_for_node |
