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).