Files
ProgressQuest-cli/pqcli/ui/curses/event_handler.py
T
Dash 0a4358e2b8 misc: drop typing as T, use builtin generics
Python 3.10 is the minimum, so annotations use `X | None`, `list[X]`
and friends, enforced by ruff's pyupgrade rules. The remaining typing
names are imported directly, with abstract types coming from
collections.abc. first() is now generic over the item and default.
2026-10-17 15:55:55 +02:00

16 lines
439 B
Python

from collections.abc import Callable
from typing import Any
class EventHandler:
def __init__(self) -> None:
self.callbacks: list[Callable[..., Any]] = []
def __call__(self, *args: Any, **kwargs: Any) -> None:
for callback in self.callbacks:
callback(*args, **kwargs)
def __iadd__(self, callback: Callable[..., Any]) -> "EventHandler":
self.callbacks.append(callback)
return self