From 4b84954d17ff6da1a0567bebb4d0e3727de76814 Mon Sep 17 00:00:00 2001 From: Joost Lekkerkerker Date: Mon, 11 Mar 2024 08:32:43 +0100 Subject: [PATCH] Remove entity description mixin in V2C (#112960) --- homeassistant/components/v2c/binary_sensor.py | 13 +++---------- homeassistant/components/v2c/number.py | 13 +++---------- homeassistant/components/v2c/sensor.py | 11 +++-------- homeassistant/components/v2c/switch.py | 11 +++-------- 4 files changed, 12 insertions(+), 36 deletions(-) diff --git a/homeassistant/components/v2c/binary_sensor.py b/homeassistant/components/v2c/binary_sensor.py index e0d5306d205..203cc9f3396 100644 --- a/homeassistant/components/v2c/binary_sensor.py +++ b/homeassistant/components/v2c/binary_sensor.py @@ -21,20 +21,13 @@ from .coordinator import V2CUpdateCoordinator from .entity import V2CBaseEntity -@dataclass(frozen=True) -class V2CRequiredKeysMixin: - """Mixin for required keys.""" +@dataclass(frozen=True, kw_only=True) +class V2CBinarySensorEntityDescription(BinarySensorEntityDescription): + """Describes an EVSE binary sensor entity.""" value_fn: Callable[[Trydan], bool] -@dataclass(frozen=True) -class V2CBinarySensorEntityDescription( - BinarySensorEntityDescription, V2CRequiredKeysMixin -): - """Describes an EVSE binary sensor entity.""" - - TRYDAN_SENSORS = ( V2CBinarySensorEntityDescription( key="connected", diff --git a/homeassistant/components/v2c/number.py b/homeassistant/components/v2c/number.py index e87be9f716a..376509c4780 100644 --- a/homeassistant/components/v2c/number.py +++ b/homeassistant/components/v2c/number.py @@ -25,21 +25,14 @@ MIN_INTENSITY = 6 MAX_INTENSITY = 32 -@dataclass(frozen=True) -class V2CSettingsRequiredKeysMixin: - """Mixin for required keys.""" +@dataclass(frozen=True, kw_only=True) +class V2CSettingsNumberEntityDescription(NumberEntityDescription): + """Describes V2C EVSE number entity.""" value_fn: Callable[[TrydanData], int] update_fn: Callable[[Trydan, int], Coroutine[Any, Any, None]] -@dataclass(frozen=True) -class V2CSettingsNumberEntityDescription( - NumberEntityDescription, V2CSettingsRequiredKeysMixin -): - """Describes V2C EVSE number entity.""" - - TRYDAN_NUMBER_SETTINGS = ( V2CSettingsNumberEntityDescription( key="intensity", diff --git a/homeassistant/components/v2c/sensor.py b/homeassistant/components/v2c/sensor.py index b8d3919b1cb..871dd65aa75 100644 --- a/homeassistant/components/v2c/sensor.py +++ b/homeassistant/components/v2c/sensor.py @@ -26,18 +26,13 @@ from .entity import V2CBaseEntity _LOGGER = logging.getLogger(__name__) -@dataclass(frozen=True) -class V2CRequiredKeysMixin: - """Mixin for required keys.""" +@dataclass(frozen=True, kw_only=True) +class V2CSensorEntityDescription(SensorEntityDescription): + """Describes an EVSE Power sensor entity.""" value_fn: Callable[[TrydanData], float] -@dataclass(frozen=True) -class V2CSensorEntityDescription(SensorEntityDescription, V2CRequiredKeysMixin): - """Describes an EVSE Power sensor entity.""" - - TRYDAN_SENSORS = ( V2CSensorEntityDescription( key="charge_power", diff --git a/homeassistant/components/v2c/switch.py b/homeassistant/components/v2c/switch.py index 1ff86b1677b..0974a712153 100644 --- a/homeassistant/components/v2c/switch.py +++ b/homeassistant/components/v2c/switch.py @@ -28,20 +28,15 @@ from .entity import V2CBaseEntity _LOGGER = logging.getLogger(__name__) -@dataclass(frozen=True) -class V2CRequiredKeysMixin: - """Mixin for required keys.""" +@dataclass(frozen=True, kw_only=True) +class V2CSwitchEntityDescription(SwitchEntityDescription): + """Describes a V2C EVSE switch entity.""" value_fn: Callable[[TrydanData], bool] turn_on_fn: Callable[[Trydan], Coroutine[Any, Any, Any]] turn_off_fn: Callable[[Trydan], Coroutine[Any, Any, Any]] -@dataclass(frozen=True) -class V2CSwitchEntityDescription(SwitchEntityDescription, V2CRequiredKeysMixin): - """Describes a V2C EVSE switch entity.""" - - TRYDAN_SWITCHES = ( V2CSwitchEntityDescription( key="paused",