from typing import Optional from .alert import Alert from .enum import AlertType, Severity class CurrentAlerts(list[Alert]): def get_severity(self) -> Optional[Severity]: max_severity = None for a in self: if max_severity is None or a.severity > max_severity: max_severity = a.severity return a.severity def get_types(self) -> set[AlertType]: types = set() for a in self: types.add(a.alert_type) return types def update(self, alerts: list[Alert]) -> tuple[Optional[Severity], Optional[Severity]]: old_severity = self.get_severity() self.clear() self.extend(alerts) new_severity = self.get_severity() return (old_severity, new_severity)