Types in add_handler
unknown
python
2 years ago
919 B
6
Indexable
@dataclass(frozen=True) class BundlePurchased(Event): user_id: UserID code: str @dataclass(frozen=True) class BundleRegistred(Event): bundle_id: BundleID user_id: UserID class EventBus: def __init__(self): self.handlers: DefaultDict[Type[Event], List[EventHandler]] = defaultdict(list) def add_handler(self, event: Type[Event], handler: EventHandler): self.handlers[event].append(handler) def publish(self, event: Event): handlers = self.handlers[event.__class__] for handler in handlers: handler(event) event_bus = EventBus() def bundle_purchased_handler(event: BundlePurchased) -> None: ... def bundle_registred_handler(event: BundleRegistred) -> None: ... event_bus.add_handler(BundlePurchased, bundle_purchased_handler) event_bus.add_handler(BundleRegistred, bundle_registred_handler)
Editor is loading...