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",