nemo_gym.cli.main

View as Markdown

Module Contents

Classes

NameDescription
Command-
Flag-
_GymArgumentParserArgumentParser that appends a difflib “did you mean?” hint to invalid-choice errors.

Functions

NameDescription
_add_leaf-
_asset_config_pathMap a named asset (name or name/flavor) to its config path.
_asset_selectorA --<flag> NAME selector that resolves the named asset to a config and adds it to +config_paths.
_bool_flagA --name store_true flag that maps to the Hydra override +<hydra_key>=true when set.
_dataset_download-
_dataset_upload-
_env_init-
_env_test-
_eval_run-
_eval_submit-
_extra_roots_from_search_dirPrepend --search-dir roots to NEMO_GYM_EXTRA_ROOTS for the duration of the command, then restore.
_handle_pydantic_validation_error-
_has_override-
_list_benchmarksList the benchmark view of the unified workload catalog.
_merge_config_pathsCoalesce all +config_paths=[...] tokens (from —config and asset selectors) into one (Hydra rejects dupes).
_parsed_onboarding_name-
_register_init_target-
_register_reward_direction-
_searchgym search [<type>] <query>: dispatch to the chosen type’s listing command (default environments),
_translate_init_target-
_value_flagA --name VALUE flag that maps to the Hydra override +<hydra_key>=VALUE (omitted when unset).
build_parser-
dispatch-
main-

Data

BENCHMARK

CATALOG_KIND

COMMANDS

CONFIG

ENVIRONMENT

GROUPS

INIT_TARGET

JSON

MODEL

MODEL_API_KEY

MODEL_TYPE

MODEL_URL

NAME

ONBOARDING_NAME

RESOURCES_SERVER

RESOURCES_SERVER_CONFIG

REWARD_DIRECTION

REWARD_RANGE

SEARCH_DIR

SEARCH_TERMS

STORAGE

VERSION_TARGET

_ASSETS

_SEARCHABLE_TYPES

logger

API

class nemo_gym.cli.main.Command(
target: str | collections.abc.Callable[[argparse.Namespace, list[str]], None],
summary: str | None = None,
flags: tuple[nemo_gym.cli.main.Flag, ...] = tuple()
)
Dataclass
flags
tuple[Flag, ...] = field(default_factory=tuple)
summary
str | None = None
target
str | Callable[[argparse.Namespace, list[str]], None]
class nemo_gym.cli.main.Flag(
register: collections.abc.Callable[[argparse.ArgumentParser], None],
translate_to_hydra: collections.abc.Callable[[argparse.Namespace], list[str]] = lambda args: []
)
Dataclass
register
Callable[[argparse.ArgumentParser], None]
translate_to_hydra
Callable[[argparse.Namespace], list[str]] = lambda args: []
class nemo_gym.cli.main._GymArgumentParser()

Bases: ArgumentParser

ArgumentParser that appends a difflib “did you mean?” hint to invalid-choice errors.

Covers mistyped commands/groups and bad —flag choices (e.g. —storage), since argparse validates all of them as choices against the registry baked into the parser.

nemo_gym.cli.main._GymArgumentParser.error(
message: str
) -> None
nemo_gym.cli.main._add_leaf(
subparsers: argparse._SubParsersAction,
name: str,
command: nemo_gym.cli.main.Command
) -> None
nemo_gym.cli.main._asset_config_path(
flag: str,
value: str
) -> str

Map a named asset (name or name/flavor) to its config path.

Searches the roots from :func:~nemo_gym.discovery.component_search_roots (NEMO_GYM_EXTRA_ROOTS + cwd + install root), the same helper that backs gym list/gym search, so config resolution and discovery agree on where components live. On a name collision across roots the highest-priority root wins (as in gym list), with a warning. --search-dir reaches here via NEMO_GYM_EXTRA_ROOTS (set in main). Searching the install root is what lets built-ins resolve by name from an arbitrary cwd (e.g. a wheel install), not just inside the repo checkout.

nemo_gym.cli.main._asset_selector(
flag: str
) -> nemo_gym.cli.main.Flag

A --<flag> NAME selector that resolves the named asset to a config and adds it to +config_paths.

nemo_gym.cli.main._bool_flag(
name: str,
hydra_key: str,
flag_help: str
) -> nemo_gym.cli.main.Flag

A --name store_true flag that maps to the Hydra override +<hydra_key>=true when set.

nemo_gym.cli.main._dataset_download(
args: argparse.Namespace,
overrides: list[str]
) -> None
nemo_gym.cli.main._dataset_upload(
args: argparse.Namespace,
overrides: list[str]
) -> None
nemo_gym.cli.main._env_init(
args: argparse.Namespace,
overrides: list[str]
) -> None
nemo_gym.cli.main._env_test(
args: argparse.Namespace,
overrides: list[str]
) -> None
nemo_gym.cli.main._eval_run(
args: argparse.Namespace,
overrides: list[str]
) -> None
nemo_gym.cli.main._eval_submit(
args: argparse.Namespace,
overrides: list[str]
) -> None
nemo_gym.cli.main._extra_roots_from_search_dir(
search_dirs: list[str] | None
)

Prepend --search-dir roots to NEMO_GYM_EXTRA_ROOTS for the duration of the command, then restore.

Setting the env var lets the roots reach every resolver (discovery, the —<component> selectors, deep config/prompt/rollout resolution) and inherit into spawned server subprocesses. The original value is restored (or the var unset) on exit so main() leaves no global side effect. (sys.path is augmented with the new roots for plugin prepare.py imports and left as-is on exit.)

nemo_gym.cli.main._handle_pydantic_validation_error(
exc,
parser: argparse.ArgumentParser
) -> None
nemo_gym.cli.main._has_override(
overrides: list[str],
key: str
) -> bool
nemo_gym.cli.main._list_benchmarks(
_args: argparse.Namespace,
overrides: list[str]
) -> None

List the benchmark view of the unified workload catalog.

nemo_gym.cli.main._merge_config_paths(
overrides: list[str]
) -> list[str]

Coalesce all +config_paths=[...] tokens (from —config and asset selectors) into one (Hydra rejects dupes).

nemo_gym.cli.main._parsed_onboarding_name(
args: argparse.Namespace
) -> str | None
nemo_gym.cli.main._register_init_target(
parser: argparse.ArgumentParser
) -> None
nemo_gym.cli.main._register_reward_direction(
parser: argparse.ArgumentParser
) -> None
nemo_gym.cli.main._search(
args: argparse.Namespace,
overrides: list[str]
) -> None

gym search [&lt;type&gt;] &lt;query&gt;: dispatch to the chosen type’s listing command (default environments), which filters itself to the query config key already in overrides.

nemo_gym.cli.main._translate_init_target(
args: argparse.Namespace
) -> list[str]
nemo_gym.cli.main._value_flag(
name: str,
hydra_key: str,
flag_help: str,
aliases: tuple[str, ...] = (),
choices: tuple[str, ...] | None = None,
quote: bool = False
) -> nemo_gym.cli.main.Flag

A --name VALUE flag that maps to the Hydra override +&lt;hydra_key&gt;=VALUE (omitted when unset).

nemo_gym.cli.main.build_parser() -> argparse.ArgumentParser
nemo_gym.cli.main.dispatch(
target: str,
overrides: list[str]
) -> None
nemo_gym.cli.main.main() -> None
nemo_gym.cli.main.BENCHMARK = _asset_selector('benchmark')
nemo_gym.cli.main.CATALOG_KIND = _value_flag('kind', 'catalog_kind', 'Workload kind.', choices=('environment', 'b...
nemo_gym.cli.main.COMMANDS = {'list benchmarks': Command(target=_list_benchmarks, summary='List or inspect av...
nemo_gym.cli.main.CONFIG = Flag(register=(lambda p: p.add_argument('--config', action='append', metavar='PA...
nemo_gym.cli.main.ENVIRONMENT = _asset_selector('environment')
nemo_gym.cli.main.GROUPS = {'list': 'List available components (benchmarks, environments, agents, models, r...
nemo_gym.cli.main.INIT_TARGET = Flag(register=_register_init_target, translate_to_hydra=_translate_init_target)
nemo_gym.cli.main.JSON = _bool_flag('json', 'json', 'Output as machine-readable JSON.')
nemo_gym.cli.main.MODEL = _value_flag('model', 'policy_model_name', 'Model name, HF id, or local checkpoin...
nemo_gym.cli.main.MODEL_API_KEY = _value_flag('model-api-key', 'policy_api_key', 'Model server API key.')
nemo_gym.cli.main.MODEL_TYPE = _asset_selector('model-type')
nemo_gym.cli.main.MODEL_URL = _value_flag('model-url', 'policy_base_url', 'Model server base URL.')
nemo_gym.cli.main.NAME = Flag(register=(lambda p: p.add_argument('name', nargs='?', metavar='NAME', help=...
nemo_gym.cli.main.ONBOARDING_NAME = Flag(register=(lambda p: p.add_argument('onboarding_name', nargs='?', metavar='N...
nemo_gym.cli.main.RESOURCES_SERVER = Flag(register=(lambda p: p.add_argument('--resources-server', metavar='NAME', he...
nemo_gym.cli.main.RESOURCES_SERVER_CONFIG = _asset_selector('resources-server')
nemo_gym.cli.main.REWARD_DIRECTION = Flag(register=_register_reward_direction, translate_to_hydra=(lambda args: [f'+h...
nemo_gym.cli.main.REWARD_RANGE = Flag(register=(lambda p: p.add_argument('--reward-range', nargs=2, type=float, m...
nemo_gym.cli.main.SEARCH_DIR = Flag(register=(lambda p: p.add_argument('--search-dir', action='append', metavar...
nemo_gym.cli.main.SEARCH_TERMS = Flag(register=(lambda p: (p.add_argument('component_type', nargs='?', choices=(l...
nemo_gym.cli.main.STORAGE = Flag(register=(lambda p: p.add_argument('--storage', choices=('hf', 'gitlab'), d...
nemo_gym.cli.main.VERSION_TARGET = 'nemo_gym.cli.general:version'
nemo_gym.cli.main._ASSETS = {'benchmark': ('benchmarks', '', 'config'), 'environment': ('environments', '', ...
nemo_gym.cli.main._SEARCHABLE_TYPES = {'benchmarks': 'nemo_gym.cli.eval:list_benchmarks', 'environments': 'nemo_gym.cl...
nemo_gym.cli.main.logger = logging.getLogger(__name__)