Remove entity description mixin in Renault (#112925)

* Remove entity description mixin in Renault

* Update homeassistant/components/renault/sensor.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

* Update homeassistant/components/renault/button.py

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>

---------

Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
This commit is contained in:
Joost Lekkerkerker 2024-03-10 17:27:47 +01:00 committed by GitHub
parent ae003c21c8
commit 85bc72f9f1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 11 additions and 34 deletions

View File

@ -16,19 +16,11 @@ from .entity import RenaultEntity
from .renault_hub import RenaultHub from .renault_hub import RenaultHub
@dataclass(frozen=True) @dataclass(frozen=True, kw_only=True)
class RenaultButtonRequiredKeysMixin: class RenaultButtonEntityDescription(ButtonEntityDescription):
"""Mixin for required keys."""
async_press: Callable[[RenaultButtonEntity], Coroutine[Any, Any, Any]]
@dataclass(frozen=True)
class RenaultButtonEntityDescription(
ButtonEntityDescription, RenaultButtonRequiredKeysMixin
):
"""Class describing Renault button entities.""" """Class describing Renault button entities."""
async_press: Callable[[RenaultButtonEntity], Coroutine[Any, Any, Any]]
requires_electricity: bool = False requires_electricity: bool = False

View File

@ -18,21 +18,14 @@ from .entity import RenaultDataEntity, RenaultDataEntityDescription
from .renault_hub import RenaultHub from .renault_hub import RenaultHub
@dataclass(frozen=True) @dataclass(frozen=True, kw_only=True)
class RenaultSelectRequiredKeysMixin:
"""Mixin for required keys."""
data_key: str
@dataclass(frozen=True)
class RenaultSelectEntityDescription( class RenaultSelectEntityDescription(
SelectEntityDescription, SelectEntityDescription, RenaultDataEntityDescription
RenaultDataEntityDescription,
RenaultSelectRequiredKeysMixin,
): ):
"""Class describing Renault select entities.""" """Class describing Renault select entities."""
data_key: str
async def async_setup_entry( async def async_setup_entry(
hass: HomeAssistant, hass: HomeAssistant,

View File

@ -43,22 +43,14 @@ from .renault_hub import RenaultHub
from .renault_vehicle import RenaultVehicleProxy from .renault_vehicle import RenaultVehicleProxy
@dataclass(frozen=True) @dataclass(frozen=True, kw_only=True)
class RenaultSensorRequiredKeysMixin(Generic[T]):
"""Mixin for required keys."""
data_key: str
entity_class: type[RenaultSensor[T]]
@dataclass(frozen=True)
class RenaultSensorEntityDescription( class RenaultSensorEntityDescription(
SensorEntityDescription, SensorEntityDescription, RenaultDataEntityDescription, Generic[T]
RenaultDataEntityDescription,
RenaultSensorRequiredKeysMixin[T],
): ):
"""Class describing Renault sensor entities.""" """Class describing Renault sensor entities."""
data_key: str
entity_class: type[RenaultSensor[T]]
condition_lambda: Callable[[RenaultVehicleProxy], bool] | None = None condition_lambda: Callable[[RenaultVehicleProxy], bool] | None = None
requires_fuel: bool = False requires_fuel: bool = False
value_lambda: Callable[[RenaultSensor[T]], StateType | datetime] | None = None value_lambda: Callable[[RenaultSensor[T]], StateType | datetime] | None = None