nemo_gym.registry

View as Markdown

Read-only catalog for manifest-backed and legacy environments and benchmarks.

Module Contents

Classes

NameDescription
EnvironmentCatalogEntryA discovered runnable unit and its lightweight catalog metadata.
EnvironmentEntryA discovered environment: its name, where it lives, and lightweight metadata.
RegistryErrorA catalog entry is invalid or cannot be selected unambiguously.

Functions

NameDescription
_discover_environments_in_dirMap environment name to its effective manifest or legacy entry under one directory.
_discover_registry_treeDiscover one catalog tree without importing or resolving runnable components.
_discover_resource_workloadsDiscover legacy runnable workloads colocated with resources servers.
_enum_value-
_legacy_config_paths-
_legacy_entry-
_manifest_entry-
_path_identity-
_resource_workload_identity-
_runnable_resource_configRead a resource-tree config that carries its own runnable workload.
discover_environment_catalogDiscover manifest and legacy runnable units across all workload locations.
discover_environmentsDiscover environments with standard component-root precedence.
read_environment_detailsDeep-parse an environment config for the gym list environments <name> inspect view.
resolve_catalog_entryResolve a catalog name, requiring its kind only for a cross-kind collision.

Data

BENCHMARKS_SUBDIR

CatalogKind

CatalogStatus

ENVIRONMENTS_DIR

ENVIRONMENTS_SUBDIR

ENVIRONMENT_CONFIG_FILENAME

MANIFEST_FILENAME

RESOURCES_SERVERS_SUBDIR

API

class nemo_gym.registry.EnvironmentCatalogEntry(
name: str,
config_path: pathlib.Path,
path: pathlib.Path,
description: typing.Optional[str] = None,
domain: typing.Optional[str] = None,
kind: nemo_gym.registry.CatalogKind = 'environment',
status: nemo_gym.registry.CatalogStatus = 'no-manifest',
manifest_path: typing.Optional[pathlib.Path] = None,
version: typing.Optional[str] = None,
integration_profile: typing.Optional[str] = None,
modality: typing.Optional[str] = None,
licensing: typing.Optional[str] = None,
lifecycle: typing.Optional[str] = None,
resources_server_selector: typing.Optional[str] = None
)
Dataclass

A discovered runnable unit and its lightweight catalog metadata.

config_path
Path
description
Optional[str] = None
domain
Optional[str] = None
integration_profile
Optional[str] = None
kind
CatalogKind = 'environment'
licensing
Optional[str] = None
lifecycle
Optional[str] = None
manifest_path
Optional[Path] = None
modality
Optional[str] = None
name
str
path
Path
resources_server_selector
Optional[str] = None
status
CatalogStatus = 'no-manifest'
version
Optional[str] = None
class nemo_gym.registry.EnvironmentEntry(
name: str,
config_path: pathlib.Path,
path: pathlib.Path,
description: typing.Optional[str] = None,
domain: typing.Optional[str] = None,
kind: nemo_gym.registry.CatalogKind = 'environment',
status: nemo_gym.registry.CatalogStatus = 'no-manifest',
manifest_path: typing.Optional[pathlib.Path] = None,
version: typing.Optional[str] = None,
integration_profile: typing.Optional[str] = None,
modality: typing.Optional[str] = None,
licensing: typing.Optional[str] = None,
lifecycle: typing.Optional[str] = None,
resources_server_selector: typing.Optional[str] = None
)
Dataclass

Bases: EnvironmentCatalogEntry

A discovered environment: its name, where it lives, and lightweight metadata.

kind
CatalogKind = field(default='environment', init=False)
class nemo_gym.registry.RegistryError()

Bases: ConfigError

A catalog entry is invalid or cannot be selected unambiguously.

nemo_gym.registry._discover_environments_in_dir(
environments_dir: pathlib.Path
) -> typing.Dict[str, nemo_gym.registry.EnvironmentEntry]

Map environment name to its effective manifest or legacy entry under one directory.

nemo_gym.registry._discover_registry_tree(
tree_dir: pathlib.Path,
kind: nemo_gym.registry.CatalogKind,
claimed: frozenset[tuple[nemo_gym.registry.CatalogKind, str]] = frozenset()
) -> typing.Dict[tuple[nemo_gym.registry.CatalogKind, str], nemo_gym.registry.EnvironmentCatalogEntry]

Discover one catalog tree without importing or resolving runnable components.

nemo_gym.registry._discover_resource_workloads(
resources_dir: pathlib.Path,
claimed: frozenset[tuple[nemo_gym.registry.CatalogKind, str]] = frozenset()
) -> typing.Dict[tuple[nemo_gym.registry.CatalogKind, str], nemo_gym.registry.EnvironmentCatalogEntry]

Discover legacy runnable workloads colocated with resources servers.

nemo_gym.registry._enum_value(
value: object
) -> typing.Optional[str]
nemo_gym.registry._legacy_config_paths(
tree_dir: pathlib.Path,
kind: nemo_gym.registry.CatalogKind
) -> typing.Iterable[tuple[str, pathlib.Path]]
nemo_gym.registry._legacy_entry(
name: str,
config_path: pathlib.Path,
kind: nemo_gym.registry.CatalogKind
) -> nemo_gym.registry.EnvironmentCatalogEntry
nemo_gym.registry._manifest_entry(
tree_dir: pathlib.Path,
manifest_path: pathlib.Path,
expected_kind: nemo_gym.registry.CatalogKind
) -> nemo_gym.registry.EnvironmentCatalogEntry
nemo_gym.registry._path_identity(
tree_dir: pathlib.Path,
manifest_path: pathlib.Path
) -> str
nemo_gym.registry._resource_workload_identity(
resources_dir: pathlib.Path,
config_path: pathlib.Path
) -> tuple[str, str]
nemo_gym.registry._runnable_resource_config(
config_path: pathlib.Path
) -> tuple[nemo_gym.registry.CatalogKind, typing.Optional[str], typing.Optional[str]] | None

Read a resource-tree config that carries its own runnable workload.

nemo_gym.registry.discover_environment_catalog() -> tuple[nemo_gym.registry.EnvironmentCatalogEntry, ...]

Discover manifest and legacy runnable units across all workload locations.

nemo_gym.registry.discover_environments() -> typing.Dict[str, nemo_gym.registry.EnvironmentEntry]

Discover environments with standard component-root precedence.

nemo_gym.registry.read_environment_details(
config_path: pathlib.Path
) -> typing.Dict[str, object]

Deep-parse an environment config for the gym list environments <name> inspect view.

Returns domain, description (via :func:~nemo_gym.discovery.read_config_metadata), plus value, resources_servers (names), agent (the agent type), and dataset names read from the config’s server blocks. Never raises: an unreadable config yields empty/None fields.

nemo_gym.registry.resolve_catalog_entry(
name: str,
kind: nemo_gym.registry.CatalogKind | str | None = None,
entries: typing.Iterable[nemo_gym.registry.EnvironmentCatalogEntry] | None = None
) -> nemo_gym.registry.EnvironmentCatalogEntry

Resolve a catalog name, requiring its kind only for a cross-kind collision.

nemo_gym.registry.BENCHMARKS_SUBDIR = 'benchmarks'
nemo_gym.registry.CatalogKind = Literal['environment', 'benchmark']
nemo_gym.registry.CatalogStatus = Literal['experimental', 'no-manifest']
nemo_gym.registry.ENVIRONMENTS_DIR = PARENT_DIR / ENVIRONMENTS_SUBDIR
nemo_gym.registry.ENVIRONMENTS_SUBDIR = 'environments'
nemo_gym.registry.ENVIRONMENT_CONFIG_FILENAME = 'config.yaml'
nemo_gym.registry.MANIFEST_FILENAME = 'manifest.yaml'
nemo_gym.registry.RESOURCES_SERVERS_SUBDIR = 'resources_servers'