Configuration

All configuration lives in config.py at the repository root and is organized into a handful of dictionaries.

PROCESS_STATES

The expert-defined state vocabulary per process type:

PROCESS_STATES = {
    "production": ["Idle", "Fill", "HeatUp", "Hold", "Cool", "Discharge"],
    "cip": ["PreRinse", "Caustic", "InterRinse", "Acid", "FinalRinse",
            "Sanitize", "Verification", "Standby"],
}

FEATURE_CONFIG

Parameters for the abstraction layer’s feature families:

FEATURE_CONFIG = {
    "window_sizes": [5],       # rolling-window sizes for statistical/temporal features
    "stability_eps": 1,        # threshold for the stability flag
    "peak_threshold": 0.1,     # threshold used by peak-related features
}

HMM_CONFIG

Passed through to the underlying Gaussian HMM:

HMM_CONFIG = {
    "covariance_type": "diag",
    "n_iter": 100,
    "random_seed": 42,
    "tol": 1e-6,
}

DIAGNOSTIC_CONFIG

Thresholds used by evaluation.rule_analyzer.RuleDiagnosticAnalyzer to flag weak rules:

DIAGNOSTIC_CONFIG = {
    "coverage_threshold": 0.6,
    "precision_threshold": 0.7,
    "explainability_threshold": 0.3,
}

VISUALIZATION_CONFIG

VISUALIZATION_CONFIG = {
    "gantt_figsize": (14, 8),
    "colors": "Set3",
    "min_duration_for_label": 0.1,   # hours
}

PATHS

Default output locations used by main.py:

PATHS = {
    "event_log": "pasteurization_event_log.csv",
    "filtered_log": "pasteurization_cleaned_event_log.csv",
    "gantt_chart": "process_gantt_chart.png",
}

Overriding configuration

Pass any object exposing the same uppercase attributes to core.pipeline.Sensor2EventLogPipeline instead of importing config directly — this is how the tutorial walkthrough overrides PATHS without touching the shared config.py (see tutorial/toy_walkthrough.py).