diff --git a/homeassistant/components/renault/button.py b/homeassistant/components/renault/button.py index c1b94fcf6f2..9a6e1d76df6 100644 --- a/homeassistant/components/renault/button.py +++ b/homeassistant/components/renault/button.py @@ -16,19 +16,11 @@ from .entity import RenaultEntity from .renault_hub import RenaultHub -@dataclass(frozen=True) -class RenaultButtonRequiredKeysMixin: - """Mixin for required keys.""" - - async_press: Callable[[RenaultButtonEntity], Coroutine[Any, Any, Any]] - - -@dataclass(frozen=True) -class RenaultButtonEntityDescription( - ButtonEntityDescription, RenaultButtonRequiredKeysMixin -): +@dataclass(frozen=True, kw_only=True) +class RenaultButtonEntityDescription(ButtonEntityDescription): """Class describing Renault button entities.""" + async_press: Callable[[RenaultButtonEntity], Coroutine[Any, Any, Any]] requires_electricity: bool = False diff --git a/homeassistant/components/renault/select.py b/homeassistant/components/renault/select.py index ffae27c5e55..f6c8f73d24b 100644 --- a/homeassistant/components/renault/select.py +++ b/homeassistant/components/renault/select.py @@ -18,21 +18,14 @@ from .entity import RenaultDataEntity, RenaultDataEntityDescription from .renault_hub import RenaultHub -@dataclass(frozen=True) -class RenaultSelectRequiredKeysMixin: - """Mixin for required keys.""" - - data_key: str - - -@dataclass(frozen=True) +@dataclass(frozen=True, kw_only=True) class RenaultSelectEntityDescription( - SelectEntityDescription, - RenaultDataEntityDescription, - RenaultSelectRequiredKeysMixin, + SelectEntityDescription, RenaultDataEntityDescription ): """Class describing Renault select entities.""" + data_key: str + async def async_setup_entry( hass: HomeAssistant, diff --git a/homeassistant/components/renault/sensor.py b/homeassistant/components/renault/sensor.py index f806ca374c2..352fddb8d8b 100644 --- a/homeassistant/components/renault/sensor.py +++ b/homeassistant/components/renault/sensor.py @@ -43,22 +43,14 @@ from .renault_hub import RenaultHub from .renault_vehicle import RenaultVehicleProxy -@dataclass(frozen=True) -class RenaultSensorRequiredKeysMixin(Generic[T]): - """Mixin for required keys.""" - - data_key: str - entity_class: type[RenaultSensor[T]] - - -@dataclass(frozen=True) +@dataclass(frozen=True, kw_only=True) class RenaultSensorEntityDescription( - SensorEntityDescription, - RenaultDataEntityDescription, - RenaultSensorRequiredKeysMixin[T], + SensorEntityDescription, RenaultDataEntityDescription, Generic[T] ): """Class describing Renault sensor entities.""" + data_key: str + entity_class: type[RenaultSensor[T]] condition_lambda: Callable[[RenaultVehicleProxy], bool] | None = None requires_fuel: bool = False value_lambda: Callable[[RenaultSensor[T]], StateType | datetime] | None = None