Skip to content

Step Catalog

The Monte Carlo step catalog is the single core-side registry for built-in operation metadata. It drives spec compilation, graph validation, and the GUI step palette without depending on the [ui] extra.

FieldSpec

@dataclass(frozen=True)
class FieldSpec()

One configurable field exposed by a step.

Fields:

Name Type Description
key str Runtime kwarg name.
label str Human-readable label.
type str UI/editor field type.
default Any Default value.
required bool Whether the field is required.
options tuple[str, ...] Allowed options for select-like fields.
minimum float \| None Optional numeric lower bound.
when tuple[str, ...] Conditional display metadata.

Methods:

FieldSpec.to_dict() -> dict[str, Any]

StepDefinition

@dataclass(frozen=True)
class StepDefinition()

Everything the library knows about one built-in Monte Carlo step kind.

Fields:

Name Type Description
step_type str Serializable step kind.
title str Display title.
default_name str Default runtime step name.
description str Short user-facing description.
op_role Literal["datagen", "filter", "transform", "terminal"] Graph role.
factory Callable[..., MCStep] Step factory used by build(...).
fields tuple[FieldSpec, ...] Declared configurable fields.
compile_params Callable \| None Optional parameter normalization hook.

Properties:

Name Type Description
is_terminal bool True for test and regression terminal steps.
is_transform bool True for transform steps.
category str GUI grouping: "core", "tests", "regressions", or "transforms".

Methods:

StepDefinition.catalog_entry() -> dict[str, Any]
StepDefinition.build(name: str, params: dict[str, Any], dgp: SolvedModel | None) -> MCStep

Registry Objects

Name Type Description
STEP_CATALOG dict[str, StepDefinition] Built-in step definitions keyed by step_type.
DATAGEN_STEP_TYPES frozenset[str] Datagen kinds: simulation and raw data.
TRANSFORM_STEP_TYPES frozenset[str] Built-in transform kinds.
TERMINAL_STEP_TYPES frozenset[str] Test and regression terminal kinds.
INPUT_SOURCES list[str] Source channels diagnostic/regression steps may read.
FILTER_SOURCES set[str] Source channels produced by the filter step.
catalog_payload() -> dict[str, Any]

Return a JSON-like payload of catalog entries for UI consumers.

Custom steps

STEP_CATALOG only describes built-in operation kinds. Bundle-safe custom operations use the reserved custom step kind and are restored through bundle resources rather than through catalog dispatch.