Remove entity description mixin in Starlink (#112943)

This commit is contained in:
Joost Lekkerkerker 2024-03-11 11:18:01 +01:00 committed by GitHub
parent e696afabe7
commit e4b43680e1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 15 additions and 50 deletions

View file

@ -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."""

View file

@ -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."""

View file

@ -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",

View file

@ -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."""

View file

@ -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."""