diff --git a/homeassistant/components/elgato/button.py b/homeassistant/components/elgato/button.py index b05cd532c16..7a69db24012 100644 --- a/homeassistant/components/elgato/button.py +++ b/homeassistant/components/elgato/button.py @@ -23,20 +23,13 @@ from .coordinator import ElgatoDataUpdateCoordinator from .entity import ElgatoEntity -@dataclass -class ElgatoButtonEntityDescriptionMixin: - """Mixin values for Elgato entities.""" +@dataclass(kw_only=True) +class ElgatoButtonEntityDescription(ButtonEntityDescription): + """Class describing Elgato button entities.""" press_fn: Callable[[Elgato], Awaitable[Any]] -@dataclass -class ElgatoButtonEntityDescription( - ButtonEntityDescription, ElgatoButtonEntityDescriptionMixin -): - """Class describing Elgato button entities.""" - - BUTTONS = [ ElgatoButtonEntityDescription( key="identify", diff --git a/homeassistant/components/elgato/sensor.py b/homeassistant/components/elgato/sensor.py index 8ed8265705c..27dedee25c9 100644 --- a/homeassistant/components/elgato/sensor.py +++ b/homeassistant/components/elgato/sensor.py @@ -26,20 +26,12 @@ from .coordinator import ElgatoData, ElgatoDataUpdateCoordinator from .entity import ElgatoEntity -@dataclass -class ElgatoEntityDescriptionMixin: - """Mixin values for Elgato entities.""" - - value_fn: Callable[[ElgatoData], float | int | None] - - -@dataclass -class ElgatoSensorEntityDescription( - SensorEntityDescription, ElgatoEntityDescriptionMixin -): +@dataclass(kw_only=True) +class ElgatoSensorEntityDescription(SensorEntityDescription): """Class describing Elgato sensor entities.""" has_fn: Callable[[ElgatoData], bool] = lambda _: True + value_fn: Callable[[ElgatoData], float | int | None] SENSORS = [ diff --git a/homeassistant/components/elgato/switch.py b/homeassistant/components/elgato/switch.py index 78af3adfa53..e9ab506c3a4 100644 --- a/homeassistant/components/elgato/switch.py +++ b/homeassistant/components/elgato/switch.py @@ -19,21 +19,13 @@ from .coordinator import ElgatoData, ElgatoDataUpdateCoordinator from .entity import ElgatoEntity -@dataclass -class ElgatoEntityDescriptionMixin: - """Mixin values for Elgato entities.""" - - is_on_fn: Callable[[ElgatoData], bool | None] - set_fn: Callable[[Elgato, bool], Awaitable[Any]] - - -@dataclass -class ElgatoSwitchEntityDescription( - SwitchEntityDescription, ElgatoEntityDescriptionMixin -): +@dataclass(kw_only=True) +class ElgatoSwitchEntityDescription(SwitchEntityDescription): """Class describing Elgato switch entities.""" has_fn: Callable[[ElgatoData], bool] = lambda _: True + is_on_fn: Callable[[ElgatoData], bool | None] + set_fn: Callable[[Elgato, bool], Awaitable[Any]] SWITCHES = [