cursus.steps.scripts.label_ruleset_execution¶
Label Ruleset Execution Script
Applies validated rulesets to processed data to generate classification labels. Supports train/val/test splits and provides comprehensive execution statistics.
Key Features: - Field availability validation at execution time - Priority-based rule evaluation (first match wins) - Comprehensive statistics tracking - Fail-safe error handling - Support for multiple job types (training, validation, testing, calibration)
- Usage:
python label_ruleset_execution.py –job-type training
- class RulesetFieldValidator[source]¶
Bases:
objectValidates field availability in actual data at execution time.
- validate_fields(ruleset, data_df)[source]¶
Validates all field references exist in actual data.
This is an EXECUTION-TIME validator that checks: - All required fields exist in DataFrame - All fields used in rules exist in DataFrame - Field null percentages (data quality check)
- Parameters:
ruleset (dict) – Validated ruleset configuration
data_df (DataFrame) – Actual DataFrame to check
- Returns:
valid: bool
missing_fields: List[str]
warnings: List[str]
- Return type:
Dictionary with validation results
- class RuleEngine(validated_ruleset)[source]¶
Bases:
objectEvaluates validated rules against data rows to produce labels. Extended for multilabel support.
Optimized for: - Batch processing (vectorized where possible) - Priority-based evaluation (first match wins) - Efficient condition checking - Minimal memory footprint - Multilabel sparse representation
- evaluate_row(row)[source]¶
Evaluate rules against a single row.
- Returns:
int or str (label value) - Multilabel mode: Dict[str, Any] (column → value mapping)
- Return type:
Single-label mode
- apply_field_types(df, field_config)[source]¶
Apply field type conversions based on ruleset field_config.
This ensures data types match rule expectations, avoiding type mismatch issues (e.g., string ‘1’ vs float 1.0) that can cause rule evaluation failures.
- Parameters:
df (DataFrame) – Input DataFrame
field_config (dict) – Field configuration from validated ruleset containing field_types
- Returns:
DataFrame with corrected types
- Return type:
DataFrame
- main(input_paths, output_paths, environ_vars, job_args, logger=None)[source]¶
Main logic for ruleset execution.
Supports multiple file formats: CSV, TSV, Parquet (auto-detected).
- Parameters:
input_paths (Dict[str, str]) – Dictionary with keys: - “validated_ruleset”: Path to validated ruleset JSON - “input_data”: Directory with train/val/test splits
output_paths (Dict[str, str]) – Dictionary with keys: - “processed_data”: Directory for output with labels - “execution_report”: Path for execution statistics - “rule_match_statistics”: Optional path for detailed statistics
job_args (Namespace) – Command line arguments (job_type)
logger (Callable[[str], None] | None) – Optional logger function
- Returns:
Dictionary of processed DataFrames by split name
- Return type: