> This page is for version 0.7.0.
> For other versions, use one of these documentation indexes:
> - Main (default): https://docs.nvidia.com/nemo/gym/main/llms.txt
> - 0.7.0: https://docs.nvidia.com/nemo/gym/v0.7.0/llms.txt
> - 0.6.0: https://docs.nvidia.com/nemo/gym/v0.6.0/llms.txt
> - 0.5.1: https://docs.nvidia.com/nemo/gym/v0.5.1/llms.txt
> - 0.5.0: https://docs.nvidia.com/nemo/gym/v0.5.0/llms.txt
> - 0.4.0: https://docs.nvidia.com/nemo/gym/v0.4.0/llms.txt
> - 0.3.0: https://docs.nvidia.com/nemo/gym/v0.3.0/llms.txt
> - 0.2.1: https://docs.nvidia.com/nemo/gym/v0.2.1/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/gym/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/gym/_mcp/server.

# nemo_gym.orchestration.exports

Post-run exports of a submitted benchmark: which ones apply, with what settings, and whether they are valid.

## Module Contents

### Functions

| Name                                                                             | Description                                                                                               |
| -------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| [`_merge`](#nemo_gym-orchestration-exports-_merge)                               | `overrides` on top of `defaults`: nested settings (such as `meta`) merge, everything else is replaced.    |
| [`effective_exports`](#nemo_gym-orchestration-exports-effective_exports)         | The exports a benchmark runs after its rollouts, by exporter name, with the submit config's own settings. |
| [`export_install_extras`](#nemo_gym-orchestration-exports-export_install_extras) | The extras the job's Gym install needs for in-process exporters. Isolated ones install their own SDK.     |
| [`export_run_settings`](#nemo_gym-orchestration-exports-export_run_settings)     | The full settings of one export: the submit config's own plus what only the orchestrator knows.           |
| [`validate_exports`](#nemo_gym-orchestration-exports-validate_exports)           | Reject, at submit time, any export that could not run: raises `ValueError` naming the benchmark and why.  |

### Data

[`RESERVED_SETTINGS`](#nemo_gym-orchestration-exports-RESERVED_SETTINGS)

[`RESULT_JSON_FPATH_KEY`](#nemo_gym-orchestration-exports-RESULT_JSON_FPATH_KEY)

[`ROLLOUTS_JSONL_FPATH_KEY`](#nemo_gym-orchestration-exports-ROLLOUTS_JSONL_FPATH_KEY)

[`_GYM_JOB_ID_PREFIX`](#nemo_gym-orchestration-exports-_GYM_JOB_ID_PREFIX)

### API

```python
nemo_gym.orchestration.exports._merge(
    defaults: dict[str, typing.Any],
    overrides: dict[str, typing.Any]
) -> dict[str, typing.Any]
```

`overrides` on top of `defaults`: nested settings (such as `meta`) merge, everything else is replaced.

```python
nemo_gym.orchestration.exports.effective_exports(
    config: nemo_gym.orchestration.api.SubmitConfig,
    benchmark_name: str
) -> dict[str, dict[str, typing.Any]]
```

The exports a benchmark runs after its rollouts, by exporter name, with the submit config's own settings.

`job.export` gives every benchmark a default; a benchmark's own `export` override it setting by setting,
and `null` for an exporter drops it for that benchmark. A benchmark that runs a `command` has no rollouts
file for an exporter to read, so it takes none of the job-level defaults.

```python
nemo_gym.orchestration.exports.export_install_extras(
    names: list[str]
) -> tuple[str, ...]
```

The extras the job's Gym install needs for in-process exporters. Isolated ones install their own SDK.

```python
nemo_gym.orchestration.exports.export_run_settings(
    name: str,
    settings: dict[str, typing.Any],
    benchmark_name: str,
    gym_job_id: str,
    bench_dir: pathlib.Path
) -> dict[str, typing.Any]
```

The full settings of one export: the submit config's own plus what only the orchestrator knows.

Names a run after the benchmark and the submission unless the submit config names it, and points the export
at the benchmark's rollouts and its result file.

```python
nemo_gym.orchestration.exports.validate_exports(
    config: nemo_gym.orchestration.api.SubmitConfig
) -> None
```

Reject, at submit time, any export that could not run: raises `ValueError` naming the benchmark and why.

```python
nemo_gym.orchestration.exports.RESERVED_SETTINGS = (ROLLOUTS_JSONL_FPATH_KEY, RESULT_JSON_FPATH_KEY, 'exporter')
```

```python
nemo_gym.orchestration.exports.RESULT_JSON_FPATH_KEY = 'result_json_fpath'
```

```python
nemo_gym.orchestration.exports.ROLLOUTS_JSONL_FPATH_KEY = 'rollouts_jsonl_fpath'
```

```python
nemo_gym.orchestration.exports._GYM_JOB_ID_PREFIX = 'gym-job-'
```