from enum import Enum, auto class EventType(Enum): SESSION_PROFILE_ENABLE = auto() SESSION_PROFILE_DISABLE = auto() SYSTEM_ENABLE = auto() SYSTEM_DISABLE = auto() PROFILE_CREATED = auto() PROFILE_DELETED = auto() class Notifications: _subscribers = {} @classmethod def subscribe(cls, event_type: EventType, callback): if event_type not in cls._subscribers: cls._subscribers[event_type] = [] cls._subscribers[event_type].append(callback) @classmethod def emit(cls, event_type: EventType, data=None): for callback in cls._subscribers.get(event_type, []): callback(data)