cursus.core.base.step_contract

StepContract — immutable data loaded from .step.yaml.

Replaces ScriptContract and TrainingScriptContract Pydantic models. No path-convention validation; YAML is the single source of truth. Path validation belongs in CI/lint tooling (JSON Schema), not in the runtime data holder.

class StepContract(entry_point, expected_input_paths, expected_output_paths, expected_arguments=<factory>, required_env_vars=<factory>, optional_env_vars=<factory>, framework_requirements=<factory>, description='')[source]

Bases: object

Immutable contract data loaded from .step.yaml.

entry_point: str
expected_input_paths: Dict[str, str]
expected_output_paths: Dict[str, str]
expected_arguments: Dict[str, str]
required_env_vars: List[str]
optional_env_vars: Dict[str, str]
framework_requirements: Dict[str, str]
description: str = ''