> This page is for version 26.07 · v1.3.0.
> For other versions, use one of these documentation indexes:
> - Latest · v1.4.0 (26.09) (default): https://docs.nvidia.com/nemo/curator/latest/llms.txt
> - Main · preview: https://docs.nvidia.com/nemo/curator/main/llms.txt
> - 26.09 · v1.4.0: https://docs.nvidia.com/nemo/curator/v26.09/llms.txt
> - 26.07 · v1.3.0: https://docs.nvidia.com/nemo/curator/v26.07/llms.txt
> - 26.04 · v1.2.0: https://docs.nvidia.com/nemo/curator/v26.04/llms.txt
> - 26.02 · v1.1.0: https://docs.nvidia.com/nemo/curator/v26.02/llms.txt
> - 25.09 · v1.0.0: https://docs.nvidia.com/nemo/curator/v25.09/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/curator/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/curator/_mcp/server.

# 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.

**`metadata`** `dict[str, Any] = field(default_factory=dict)`

Free-form dictionary for workflow specific timing or counters.

---

**`pipeline_tasks`** `dict[str, list[Task]] = field(default_factory=dict)`

Mapping of pipeline names to the `Task` objects they produced.

---

**`workflow_name`** `str`

Human readable workflow identifier (e.g., "fuzzy\_dedup").

---

```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.