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-
_did_you_meanA Did you mean \X`?fragment for the closest candidate tovalue, or ""` if none is close enough.
_env_test-
_eval_run-
_merge_config_pathsCoalesce all +config_paths=[...] tokens (from —config and asset selectors) into one (Hydra rejects dupes).
_value_flagA --name VALUE flag that maps to the Hydra override +<hydra_key>=VALUE (omitted when unset).
build_parser-
dispatch-
main-

Data

BENCHMARK

COMMANDS

CONFIG

ENVIRONMENT

GROUPS

JSON

MODEL

MODEL_API_KEY

MODEL_TYPE

MODEL_URL

QUERY

RESOURCES_SERVER

RESOURCES_SERVER_CONFIG

SEARCH_DIR

STORAGE

VERSION_TARGET

_ASSETS

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,
search_dirs: tuple[str, ...] = ()
) -> str

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

Searches the Gym install root (PARENT_DIR — where the built-in asset trees live in both editable and wheel installs), then the current working directory (the user’s project), then any user-registered —search-dir roots. Searching PARENT_DIR is what lets built-ins resolve by name from an arbitrary cwd (e.g. a wheel install), not just from 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._did_you_mean(
value: str,
candidates: collections.abc.Iterable[str]
) -> str

A Did you mean \X`?fragment for the closest candidate tovalue, or ""` if none is close enough.

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._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._value_flag(
name: str,
hydra_key: str,
flag_help: str,
aliases: tuple[str, ...] = (),
choices: tuple[str, ...] | None = None
) -> nemo_gym.cli.main.Flag

A --name VALUE flag that maps to the Hydra override +<hydra_key>=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.COMMANDS = {'list benchmarks': Command(target='nemo_gym.cli.eval:list_benchmarks', summary=...
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, agents, environments).', 'datas...
nemo_gym.cli.main.JSON = _bool_flag('json', 'json', 'Output as JSON for programmatic use.')
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.QUERY = Flag(register=(lambda p: p.add_argument('query', metavar='QUERY', help='Substrin...
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.SEARCH_DIR = Flag(register=(lambda p: p.add_argument('--search-dir', action='append', metavar...
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', '', ...