nemoguardrails.manifests.catalog

View as Markdown

Catalog construction and discovery for rail manifests and their surfaces.

Collects RailManifestRecord entries for built-in rails discovered under nemoguardrails/library into an immutable RailCatalog that enforces global uniqueness of rail names, config keys, flow names, action names, and surface keys.

Module Contents

Classes

NameDescription
RailCatalogImmutable index of rail manifests keyed by name and surface.
RailManifestRecordManifest plus provenance recorded in a rail catalog.

Functions

NameDescription
_claim-

Data

_OwnerKey

API

class nemoguardrails.manifests.catalog.RailCatalog(
records: typing.Iterable[nemoguardrails.manifests.catalog.RailManifestRecord] = ()
)

Immutable index of rail manifests keyed by name and surface.

Constructing a catalog validates the combined set of records and raises ValueError on any collision: duplicate manifest names, duplicate config keys, flow names, action names, or two rails claiming the same (direction, surface name). It also rejects a surface whose action is not declared in that surface’s own manifest.

manifests
Mapping[str, RailManifest]

Return rail manifests keyed by manifest name.

records
Mapping[str, RailManifestRecord]

Return catalog records keyed by manifest name.

nemoguardrails.manifests.catalog.RailCatalog.discover_built_ins(
library_path: typing.Optional[pathlib.Path] = None
) -> nemoguardrails.manifests.catalog.RailCatalog
classmethod

Discover built-in manifests from rail.py modules under the library.

nemoguardrails.manifests.catalog.RailCatalog.owner_for_flow(
flow_name: str
) -> typing.Optional[str]

Return the manifest that owns a declared public flow name.

nemoguardrails.manifests.catalog.RailCatalog.surfaces(
direction: typing.Optional[nemoguardrails.manifests.manifest.RailDirection] = None
) -> typing.Dict[typing.Tuple[nemoguardrails.manifests.manifest.RailDirection, str], nemoguardrails.manifests.manifest.RailSurface]

Return declared surfaces, optionally filtered by direction.

class nemoguardrails.manifests.catalog.RailManifestRecord(
manifest: nemoguardrails.manifests.manifest.RailManifest,
source: str
)
Dataclass

Manifest plus provenance recorded in a rail catalog.

manifest
RailManifest
source
str
nemoguardrails.manifests.catalog._claim(
owners: typing.Dict[nemoguardrails.manifests.catalog._OwnerKey, str],
key: nemoguardrails.manifests.catalog._OwnerKey,
manifest_name: str,
label: str
) -> None
nemoguardrails.manifests.catalog._OwnerKey = TypeVar('_OwnerKey')