cursus.step_catalog.sdk_bindings¶
Lazy SAIS-SDK step-class bindings for the registry-walk builder materializer (FZ 31e1d3g3 Phase A2).
The 4 SDK-delegation steps (CradleDataLoading / RedshiftDataLoading / Registration / DataUploading)
route through SDKDelegationHandler, which needs an sdk_step_class knob — a live SAIS
*Step CLASS OBJECT. That reference is genuine code, not serializable to .step.yaml (it is the
documented exception, see data_uploading.step.yaml and RegistrySection.requires), so the
generic _synthesize_builder skips these steps and defers to this module.
Each binding is a LAZY thunk doing a LOCAL import — never module-level — so importing this module is
free and offline-safe. The SAIS import (and thus any failure when the SDK is absent) happens only
when a binding is actually called, which is only when an SDK step’s builder is materialized in the
SAIS environment. This is exactly why the 4 steps stay offline-undiscoverable and match the closure
gate’s _SDK_DELEGATION_STEPS carve-out.
The carve-out membership is authored data: a step belongs here iff its .step.yaml declares
registry.requires: secure_ai_sandbox_workflow_python_sdk. A conformance gate asserts the two
sets are equal (no drift between this binding table and the YAML).
- SDK_STEP_CLASS_THUNKS: Dict[str, Callable[[], Type]] = {'CradleDataLoading': <function _cradle_data_loading_step>, 'DataUploading': <function _data_uploading_step>, 'RedshiftDataLoading': <function _redshift_data_loading_step>, 'Registration': <function _mims_model_registration_step>}¶
STEP_NAME -> lazy thunk returning the SAIS *Step class to inject as the
sdk_step_classknob. Mirrors theHANDLER_KNOBS = {"sdk_step_class": <SAISClass>}the hand-written SDK shells carry.
- is_sdk_delegation_step(step_name)[source]¶
True iff
step_nameis materialized via this SDK-binding path (not the generic synthesizer).
- resolve_sdk_step_class(step_name)[source]¶
Return the SAIS
*Stepclass for an SDK-delegation step (lazy local import).Raises
KeyErrorif the step is not an SDK-delegation step, and the underlyingImportErrorif the SAIS SDK is absent — the caller (the materializer) only invokes this in the SAIS env.