cursus.registry.interface_registry_loader¶
Interface-derived step registry loader — the SOLE source of the step-name registry.
This module derives the step-name registry table from the per-step .step.yaml interface
files (the “full Vector 3” end-state: the registry IS the interface files). As of the FZ
31e1/31e1f Final Phase (2026-06-28) the standalone registry/step_names.yaml table was
DELETED — step_names_base.STEP_NAMES is built by build_registry_from_interfaces() with
no external fallback, and a golden snapshot (tests/registry/step_names_registry_snapshot.json)
gates drift.
- Derivation rules (per the 31e1a field spec):
spec_type= the canonical step name (it is== step_typefor every row)config_class="<Name>Config"by convention, unless overriddenbuilder_step_name="<Name>StepBuilder"by convention, unless overriddensagemaker_step_type= irreducible; read from the.step.yamlregistry:blockdescription= irreducible prose; read from the.step.yamlregistry:block
Steps with no .step.yaml interface (abstract bases Base / Processing and the
builder-less HyperparameterPrep) come from the small _EXTRAS map.
- build_registry_from_interfaces(interfaces_dir=None, fallback=None)[source]¶
Derive the
STEP_NAMEStable from the.step.yamlinterface files.- Parameters:
interfaces_dir (Path | None) – directory of
*.step.yamlfiles (defaults to the package’ssteps/interfaces).fallback (Dict[str, Dict[str, str]] | None) – DEPRECATED transition-window arg (the legacy
step_names.yamltable). It is no longer supplied by the package — every.step.yamlnow carries aregistry:block, so derivation is self-sufficient. Retained only so an external caller can still pass a table;None(the default) uses the interface blocks +_EXTRASalone.
- Returns:
{config_class, builder_step_name, spec_type, sagemaker_step_type, description}}`` — the same shape
get_step_names()returns.- Return type:
``{canonical_name