Remove entity description mixin in Starlink (#112943)
This commit is contained in:
parent
e696afabe7
commit
e4b43680e1
5 changed files with 15 additions and 50 deletions
|
@ -32,20 +32,13 @@ async def async_setup_entry(
|
|||
)
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class StarlinkBinarySensorEntityDescriptionMixin:
|
||||
"""Mixin for required keys."""
|
||||
@dataclass(frozen=True, kw_only=True)
|
||||
class StarlinkBinarySensorEntityDescription(BinarySensorEntityDescription):
|
||||
"""Describes a Starlink binary sensor entity."""
|
||||
|
||||
value_fn: Callable[[StarlinkData], bool | None]
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class StarlinkBinarySensorEntityDescription(
|
||||
BinarySensorEntityDescription, StarlinkBinarySensorEntityDescriptionMixin
|
||||
):
|
||||
"""Describes a Starlink binary sensor entity."""
|
||||
|
||||
|
||||
class StarlinkBinarySensorEntity(StarlinkEntity, BinarySensorEntity):
|
||||
"""A BinarySensorEntity for Starlink devices. Handles creating unique IDs."""
|
||||
|
||||
|
|
|
@ -31,20 +31,13 @@ async def async_setup_entry(
|
|||
)
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class StarlinkButtonEntityDescriptionMixin:
|
||||
"""Mixin for required keys."""
|
||||
@dataclass(frozen=True, kw_only=True)
|
||||
class StarlinkButtonEntityDescription(ButtonEntityDescription):
|
||||
"""Describes a Starlink button entity."""
|
||||
|
||||
press_fn: Callable[[StarlinkUpdateCoordinator], Awaitable[None]]
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class StarlinkButtonEntityDescription(
|
||||
ButtonEntityDescription, StarlinkButtonEntityDescriptionMixin
|
||||
):
|
||||
"""Describes a Starlink button entity."""
|
||||
|
||||
|
||||
class StarlinkButtonEntity(StarlinkEntity, ButtonEntity):
|
||||
"""A ButtonEntity for Starlink devices. Handles creating unique IDs."""
|
||||
|
||||
|
|
|
@ -26,21 +26,14 @@ async def async_setup_entry(
|
|||
)
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class StarlinkDeviceTrackerEntityDescriptionMixin:
|
||||
"""Describes a Starlink device tracker."""
|
||||
@dataclass(frozen=True, kw_only=True)
|
||||
class StarlinkDeviceTrackerEntityDescription(EntityDescription):
|
||||
"""Describes a Starlink button entity."""
|
||||
|
||||
latitude_fn: Callable[[StarlinkData], float]
|
||||
longitude_fn: Callable[[StarlinkData], float]
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class StarlinkDeviceTrackerEntityDescription(
|
||||
EntityDescription, StarlinkDeviceTrackerEntityDescriptionMixin
|
||||
):
|
||||
"""Describes a Starlink button entity."""
|
||||
|
||||
|
||||
DEVICE_TRACKERS = [
|
||||
StarlinkDeviceTrackerEntityDescription(
|
||||
key="device_location",
|
||||
|
|
|
@ -41,20 +41,13 @@ async def async_setup_entry(
|
|||
)
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class StarlinkSensorEntityDescriptionMixin:
|
||||
"""Mixin for required keys."""
|
||||
@dataclass(frozen=True, kw_only=True)
|
||||
class StarlinkSensorEntityDescription(SensorEntityDescription):
|
||||
"""Describes a Starlink sensor entity."""
|
||||
|
||||
value_fn: Callable[[StarlinkData], datetime | StateType]
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class StarlinkSensorEntityDescription(
|
||||
SensorEntityDescription, StarlinkSensorEntityDescriptionMixin
|
||||
):
|
||||
"""Describes a Starlink sensor entity."""
|
||||
|
||||
|
||||
class StarlinkSensorEntity(StarlinkEntity, SensorEntity):
|
||||
"""A SensorEntity for Starlink devices. Handles creating unique IDs."""
|
||||
|
||||
|
|
|
@ -31,22 +31,15 @@ async def async_setup_entry(
|
|||
)
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class StarlinkSwitchEntityDescriptionMixin:
|
||||
"""Mixin for required keys."""
|
||||
@dataclass(frozen=True, kw_only=True)
|
||||
class StarlinkSwitchEntityDescription(SwitchEntityDescription):
|
||||
"""Describes a Starlink switch entity."""
|
||||
|
||||
value_fn: Callable[[StarlinkData], bool | None]
|
||||
turn_on_fn: Callable[[StarlinkUpdateCoordinator], Awaitable[None]]
|
||||
turn_off_fn: Callable[[StarlinkUpdateCoordinator], Awaitable[None]]
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class StarlinkSwitchEntityDescription(
|
||||
SwitchEntityDescription, StarlinkSwitchEntityDescriptionMixin
|
||||
):
|
||||
"""Describes a Starlink switch entity."""
|
||||
|
||||
|
||||
class StarlinkSwitchEntity(StarlinkEntity, SwitchEntity):
|
||||
"""A SwitchEntity for Starlink devices. Handles creating unique IDs."""
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue