From ae003c21c8839434add531d4f3250f215b0f7258 Mon Sep 17 00:00:00 2001 From: Joost Lekkerkerker Date: Sun, 10 Mar 2024 17:10:44 +0100 Subject: [PATCH] Remove entity description mixin in SFR Box (#112937) --- homeassistant/components/sfr_box/binary_sensor.py | 13 +++---------- homeassistant/components/sfr_box/button.py | 11 +++-------- homeassistant/components/sfr_box/sensor.py | 11 +++-------- 3 files changed, 9 insertions(+), 26 deletions(-) diff --git a/homeassistant/components/sfr_box/binary_sensor.py b/homeassistant/components/sfr_box/binary_sensor.py index ca81129f699..7ddcb16c9f8 100644 --- a/homeassistant/components/sfr_box/binary_sensor.py +++ b/homeassistant/components/sfr_box/binary_sensor.py @@ -27,20 +27,13 @@ from .models import DomainData _T = TypeVar("_T") -@dataclass(frozen=True) -class SFRBoxBinarySensorMixin(Generic[_T]): - """Mixin for SFR Box sensors.""" +@dataclass(frozen=True, kw_only=True) +class SFRBoxBinarySensorEntityDescription(BinarySensorEntityDescription, Generic[_T]): + """Description for SFR Box binary sensors.""" value_fn: Callable[[_T], bool | None] -@dataclass(frozen=True) -class SFRBoxBinarySensorEntityDescription( - BinarySensorEntityDescription, SFRBoxBinarySensorMixin[_T] -): - """Description for SFR Box binary sensors.""" - - DSL_SENSOR_TYPES: tuple[SFRBoxBinarySensorEntityDescription[DslInfo], ...] = ( SFRBoxBinarySensorEntityDescription[DslInfo]( key="status", diff --git a/homeassistant/components/sfr_box/button.py b/homeassistant/components/sfr_box/button.py index 5f26bc82f1b..6dc91149d86 100644 --- a/homeassistant/components/sfr_box/button.py +++ b/homeassistant/components/sfr_box/button.py @@ -50,18 +50,13 @@ def with_error_wrapping( return wrapper -@dataclass(frozen=True) -class SFRBoxButtonMixin: - """Mixin for SFR Box buttons.""" +@dataclass(frozen=True, kw_only=True) +class SFRBoxButtonEntityDescription(ButtonEntityDescription): + """Description for SFR Box buttons.""" async_press: Callable[[SFRBox], Coroutine[None, None, None]] -@dataclass(frozen=True) -class SFRBoxButtonEntityDescription(ButtonEntityDescription, SFRBoxButtonMixin): - """Description for SFR Box buttons.""" - - BUTTON_TYPES: tuple[SFRBoxButtonEntityDescription, ...] = ( SFRBoxButtonEntityDescription( async_press=lambda x: x.system_reboot(), diff --git a/homeassistant/components/sfr_box/sensor.py b/homeassistant/components/sfr_box/sensor.py index 626b4181486..403ec762768 100644 --- a/homeassistant/components/sfr_box/sensor.py +++ b/homeassistant/components/sfr_box/sensor.py @@ -33,18 +33,13 @@ from .models import DomainData _T = TypeVar("_T") -@dataclass(frozen=True) -class SFRBoxSensorMixin(Generic[_T]): - """Mixin for SFR Box sensors.""" +@dataclass(frozen=True, kw_only=True) +class SFRBoxSensorEntityDescription(SensorEntityDescription, Generic[_T]): + """Description for SFR Box sensors.""" value_fn: Callable[[_T], StateType] -@dataclass(frozen=True) -class SFRBoxSensorEntityDescription(SensorEntityDescription, SFRBoxSensorMixin[_T]): - """Description for SFR Box sensors.""" - - DSL_SENSOR_TYPES: tuple[SFRBoxSensorEntityDescription[DslInfo], ...] = ( SFRBoxSensorEntityDescription[DslInfo]( key="linemode",