Remove entity description mixin in Screenlogic (#112935)

* Remove entity description mixin in Screenlogic

* Fix
This commit is contained in:
Joost Lekkerkerker 2024-03-12 16:10:04 +01:00 committed by GitHub
parent 5e530fc42e
commit 70f3da93d4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 18 additions and 39 deletions

View File

@ -33,14 +33,14 @@ from .util import cleanup_excluded_entity
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@dataclasses.dataclass(frozen=True) @dataclasses.dataclass(frozen=True, kw_only=True)
class ScreenLogicBinarySensorDescription( class ScreenLogicBinarySensorDescription(
BinarySensorEntityDescription, ScreenLogicEntityDescription BinarySensorEntityDescription, ScreenLogicEntityDescription
): ):
"""A class that describes ScreenLogic binary sensor eneites.""" """A class that describes ScreenLogic binary sensor eneites."""
@dataclasses.dataclass(frozen=True) @dataclasses.dataclass(frozen=True, kw_only=True)
class ScreenLogicPushBinarySensorDescription( class ScreenLogicPushBinarySensorDescription(
ScreenLogicBinarySensorDescription, ScreenLogicPushEntityDescription ScreenLogicBinarySensorDescription, ScreenLogicPushEntityDescription
): ):

View File

@ -69,7 +69,7 @@ async def async_setup_entry(
async_add_entities(entities) async_add_entities(entities)
@dataclass(frozen=True) @dataclass(frozen=True, kw_only=True)
class ScreenLogicClimateDescription( class ScreenLogicClimateDescription(
ClimateEntityDescription, ScreenLogicPushEntityDescription ClimateEntityDescription, ScreenLogicPushEntityDescription
): ):

View File

@ -29,19 +29,11 @@ from .util import generate_unique_id
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@dataclass(frozen=True) @dataclass(frozen=True, kw_only=True)
class ScreenLogicEntityRequiredKeyMixin: class ScreenLogicEntityDescription(EntityDescription):
"""Mixin for required ScreenLogic entity data_path."""
data_root: ScreenLogicDataPath
@dataclass(frozen=True)
class ScreenLogicEntityDescription(
EntityDescription, ScreenLogicEntityRequiredKeyMixin
):
"""Base class for a ScreenLogic entity description.""" """Base class for a ScreenLogic entity description."""
data_root: ScreenLogicDataPath
enabled_lambda: Callable[..., bool] | None = None enabled_lambda: Callable[..., bool] | None = None
@ -104,21 +96,13 @@ class ScreenLogicEntity(CoordinatorEntity[ScreenlogicDataUpdateCoordinator]):
raise HomeAssistantError(f"Data not found: {self._data_path}") from ke raise HomeAssistantError(f"Data not found: {self._data_path}") from ke
@dataclass(frozen=True) @dataclass(frozen=True, kw_only=True)
class ScreenLogicPushEntityRequiredKeyMixin: class ScreenLogicPushEntityDescription(ScreenLogicEntityDescription):
"""Mixin for required key for ScreenLogic push entities.""" """Base class for a ScreenLogic push entity description."""
subscription_code: CODE subscription_code: CODE
@dataclass(frozen=True)
class ScreenLogicPushEntityDescription(
ScreenLogicEntityDescription,
ScreenLogicPushEntityRequiredKeyMixin,
):
"""Base class for a ScreenLogic push entity description."""
class ScreenLogicPushEntity(ScreenLogicEntity): class ScreenLogicPushEntity(ScreenLogicEntity):
"""Base class for all ScreenLogic push entities.""" """Base class for all ScreenLogic push entities."""

View File

@ -61,7 +61,7 @@ async def async_setup_entry(
async_add_entities(entities) async_add_entities(entities)
@dataclass(frozen=True) @dataclass(frozen=True, kw_only=True)
class ScreenLogicLightDescription( class ScreenLogicLightDescription(
LightEntityDescription, ScreenLogicPushEntityDescription LightEntityDescription, ScreenLogicPushEntityDescription
): ):

View File

@ -28,7 +28,7 @@ _LOGGER = logging.getLogger(__name__)
PARALLEL_UPDATES = 1 PARALLEL_UPDATES = 1
@dataclass(frozen=True) @dataclass(frozen=True, kw_only=True)
class ScreenLogicNumberDescription( class ScreenLogicNumberDescription(
NumberEntityDescription, NumberEntityDescription,
ScreenLogicEntityDescription, ScreenLogicEntityDescription,

View File

@ -36,21 +36,16 @@ from .util import cleanup_excluded_entity, get_ha_unit
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@dataclasses.dataclass(frozen=True) @dataclasses.dataclass(frozen=True, kw_only=True)
class ScreenLogicSensorMixin: class ScreenLogicSensorDescription(
"""Mixin for SecreenLogic sensor entity.""" SensorEntityDescription, ScreenLogicEntityDescription
):
"""Describes a ScreenLogic sensor."""
value_mod: Callable[[int | str], int | str] | None = None value_mod: Callable[[int | str], int | str] | None = None
@dataclasses.dataclass(frozen=True) @dataclasses.dataclass(frozen=True, kw_only=True)
class ScreenLogicSensorDescription(
ScreenLogicSensorMixin, SensorEntityDescription, ScreenLogicEntityDescription
):
"""Describes a ScreenLogic sensor."""
@dataclasses.dataclass(frozen=True)
class ScreenLogicPushSensorDescription( class ScreenLogicPushSensorDescription(
ScreenLogicSensorDescription, ScreenLogicPushEntityDescription ScreenLogicSensorDescription, ScreenLogicPushEntityDescription
): ):

View File

@ -23,7 +23,7 @@ from .entity import (
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@dataclass(frozen=True) @dataclass(frozen=True, kw_only=True)
class ScreenLogicCircuitSwitchDescription( class ScreenLogicCircuitSwitchDescription(
SwitchEntityDescription, ScreenLogicPushEntityDescription SwitchEntityDescription, ScreenLogicPushEntityDescription
): ):