***
layout: overview
slug: nemo-curator/nemo\_curator/pipeline/workflow
title: nemo\_curator.pipeline.workflow
--------------------------------------
## Module Contents
### Classes
| Name | Description |
| ------------------------------------------------------------------------ | ---------------------------------------------------------------------- |
| [`WorkflowBase`](#nemo_curator-pipeline-workflow-WorkflowBase) | - |
| [`WorkflowRunResult`](#nemo_curator-pipeline-workflow-WorkflowRunResult) | Container returned by high-level workflows to expose pipeline outputs. |
### API
```python
class nemo_curator.pipeline.workflow.WorkflowBase()
```
Abstract
```python
nemo_curator.pipeline.workflow.WorkflowBase.run(
args = (),
kwargs = {}
) -> nemo_curator.pipeline.workflow.WorkflowRunResult
```
abstract
```python
class nemo_curator.pipeline.workflow.WorkflowRunResult(
workflow_name: str,
pipeline_tasks: dict[str, list[nemo_curator.tasks.Task]] = dict(),
metadata: dict[str, typing.Any] = dict()
)
```
Dataclass
Container returned by high-level workflows to expose pipeline outputs.
```python
nemo_curator.pipeline.workflow.WorkflowRunResult.add_metadata(
key: str,
value: typing.Any
) -> None
```
Add a metadata key-value pair.
```python
nemo_curator.pipeline.workflow.WorkflowRunResult.add_pipeline_tasks(
pipeline_name: str,
tasks: list[nemo_curator.tasks.Task] | None
) -> None
```
Record the tasks emitted by a pipeline run (empty list if None).
```python
nemo_curator.pipeline.workflow.WorkflowRunResult.extend_metadata(
updates: dict[str, typing.Any] | None = None
) -> None
```
Update metadata dictionary in-place.
```python
nemo_curator.pipeline.workflow.WorkflowRunResult.get_metadata(
key: str
) -> typing.Any
```
Get a metadata value.