mirror of
https://github.com/home-assistant/core.git
synced 2025-07-29 08:07:45 +00:00
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:
parent
ae003c21c8
commit
85bc72f9f1
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
@ -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,
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user