> 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.utils.resumability_client

Worker-side helpers to talk to the resumability actor; all no-ops when no
actor is registered, so unchecked pipelines pay nothing.

## Module Contents

### Functions

| Name                                                                                                       | Description                                                                            |
| ---------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| [`_resumability_actor`](#nemo_curator-utils-resumability_client-_resumability_actor)                       | The resumability actor handle, or None if Ray is down / no actor registered.           |
| [`completed_resumability_sources`](#nemo_curator-utils-resumability_client-completed_resumability_sources) | Subset of `source_ids` already marked complete; the source stage uses it to skip them. |
| [`flush_resumability_deltas`](#nemo_curator-utils-resumability_client-flush_resumability_deltas)           | Fire-and-forget per-task deltas `(task_id, source_id, delta)`. No                      |
| [`is_resumability_actor_active`](#nemo_curator-utils-resumability_client-is_resumability_actor_active)     | True if a resumability actor is registered in this Ray cluster.                        |

### Data

[`ACTOR_NAME`](#nemo_curator-utils-resumability_client-ACTOR_NAME)

### API

```python
nemo_curator.utils.resumability_client._resumability_actor() -> ray.actor.ActorHandle | None
```

The resumability actor handle, or None if Ray is down / no actor registered.

```python
nemo_curator.utils.resumability_client.completed_resumability_sources(
    source_ids: list[str]
) -> set[str]
```

Subset of `source_ids` already marked complete; the source stage uses it to skip them.

```python
nemo_curator.utils.resumability_client.flush_resumability_deltas(
    per_task: list[tuple[str, str, int]]
) -> None
```

Fire-and-forget per-task deltas `(task_id, source_id, delta)`. No
`ray.get` — the actor never raises, so there's no synchronous error path.

```python
nemo_curator.utils.resumability_client.is_resumability_actor_active() -> bool
```

True if a resumability actor is registered in this Ray cluster.

```python
nemo_curator.utils.resumability_client.ACTOR_NAME = 'nemo_curator_resumability'
```