cursus.validation¶
Cursus Validation Framework
This module provides comprehensive validation capabilities for pipeline components, including step builders, alignment testing, runtime validation, and script testing.
- run_dag_scripts(dag, config_path, test_workspace_dir='test/integration/script_testing', step_catalog=None, use_dependency_resolution=True)[source]¶
ENHANCED: Run scripts with ScriptExecutionRegistry integration and message passing.
This function now uses the ScriptExecutionRegistry for central state coordination, enabling intelligent dependency resolution and automatic message passing between script executions.
- Parameters:
dag (PipelineDAG) – PipelineDAG instance defining the pipeline structure
config_path (str) – Path to pipeline configuration JSON file for script validation
test_workspace_dir (str) – Directory for test workspace and script discovery
step_catalog (StepCatalog | None) – Optional StepCatalog instance (will create if not provided)
use_dependency_resolution (bool) – Whether to use two-phase dependency resolution
- Returns:
Dictionary with execution results and metadata
- Return type:
Example
>>> from cursus.validation.script_testing import run_dag_scripts >>> from cursus.api.dag.base_dag import PipelineDAG >>> >>> dag = PipelineDAG.from_json("configs/xgboost_training.json") >>> results = run_dag_scripts( ... dag=dag, ... config_path="pipeline_config/config_NA_xgboost_AtoZ.json" ... ) >>> print(f"Pipeline success: {results['pipeline_success']}")
- class ScriptTestingInputCollector(dag, config_path, registry=None, use_dependency_resolution=True)[source]¶
Bases:
objectEnhanced with Direct Registry Integration for field value population.
This class reuses the existing 600+ lines of proven interactive collection patterns and integrates directly with ScriptExecutionRegistry for: - Registry-coordinated field population - Message passing between script executions - Dynamic environment variable generation - Dependency-aware path resolution
- collect_script_inputs_for_dag()[source]¶
Enhanced collection with Direct Registry Integration.
This method supports three modes: 1. Registry-integrated collection (NEW) 2. Two-phase dependency resolution 3. Manual collection (backward compatibility)
- class ResultFormatter(format_options=None)[source]¶
Bases:
objectComprehensive result formatting utilities for script testing results.
Provides multiple output formats and visualization options for script execution results, including console output, JSON, CSV, and HTML reports.
Key features: 1. Multiple output formats (console, JSON, CSV, HTML) 2. Customizable formatting options 3. Summary and detailed reporting 4. Error highlighting and analysis 5. Performance metrics visualization
- format_options¶
Dictionary of formatting configuration options
- format_execution_results(results, format_type='console')[source]¶
Format complete execution results in specified format.
- format_script_result(script_result, format_type='console')[source]¶
Format individual script result.
- Parameters:
script_result (ScriptTestResult) – ScriptTestResult to format
format_type (str) – Output format (“console”, “json”, “summary”)
- Returns:
Formatted script result string
- Return type:
- ScriptExecutionResult¶
alias of
ScriptTestResult
- execute_single_script(script_path, input_paths, output_paths, environ_vars, job_args)[source]¶
Execute a single script with the fixed signature and dependency management.
This function handles the one legitimate complexity in script testing: package dependency management (scripts import packages that need installation).
- Parameters:
script_path (str) – Path to the script file
input_paths (Dict[str, str]) – Input paths from InputCollector (contract-based logical names)
output_paths (Dict[str, str]) – Output paths from InputCollector (contract-based logical names)
environ_vars (Dict[str, str]) – Environment variables from config
job_args – Job arguments from config (argparse.Namespace)
- Returns:
ScriptTestResult with execution outcome
- Return type:
- install_script_dependencies(script_path)[source]¶
Install package dependencies for script execution.
This is the ONE valid complexity in script testing - scripts import packages that need to be installed before execution. In SageMaker pipeline, this was isolated as an environment.
- Parameters:
script_path (str) – Path to the script file
- quick_test_dag(dag, config_path, workspace_dir='test/integration/script_testing')[source]¶
Quick test function for DAG scripts with default settings.
- Parameters:
- Returns:
Dictionary with execution results
Example
>>> from cursus.validation.script_testing import quick_test_dag >>> from cursus.api.dag.base_dag import PipelineDAG >>> >>> dag = PipelineDAG.from_json("configs/xgboost_training.json") >>> results = quick_test_dag(dag, "pipeline_config/config_NA_xgboost_AtoZ.json") >>> print(f"Success: {results['pipeline_success']}")
- get_script_testing_info()[source]¶
Get information about the simplified script testing framework.
- Returns:
Dictionary with framework information
- Return type:
Modules
Unified Alignment Tester Module |
|
Streamlined Builders Validation Package |
|
Simplified Script Testing Framework |
|