Remove Deconz entity descriptions required fields mixins (#104009)

This commit is contained in:
Franck Nijhof 2023-11-16 16:05:29 +01:00 committed by GitHub
parent b400b33b0d
commit 2c003d8c10
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 17 additions and 42 deletions

View File

@ -65,24 +65,15 @@ T = TypeVar(
)
@dataclass
class DeconzBinarySensorDescriptionMixin(Generic[T]):
"""Required values when describing secondary sensor attributes."""
update_key: str
value_fn: Callable[[T], bool | None]
@dataclass
class DeconzBinarySensorDescription(
BinarySensorEntityDescription,
DeconzBinarySensorDescriptionMixin[T],
):
@dataclass(kw_only=True)
class DeconzBinarySensorDescription(Generic[T], BinarySensorEntityDescription):
"""Class describing deCONZ binary sensor entities."""
instance_check: type[T] | None = None
name_suffix: str = ""
old_unique_id_suffix: str = ""
update_key: str
value_fn: Callable[[T], bool | None]
ENTITY_DESCRIPTIONS: tuple[DeconzBinarySensorDescription, ...] = (

View File

@ -23,18 +23,13 @@ from .deconz_device import DeconzDevice, DeconzSceneMixin
from .gateway import DeconzGateway, get_gateway_from_config_entry
@dataclass
class DeconzButtonDescriptionMixin:
"""Required values when describing deCONZ button entities."""
suffix: str
button_fn: str
@dataclass
class DeconzButtonDescription(ButtonEntityDescription, DeconzButtonDescriptionMixin):
@dataclass(kw_only=True)
class DeconzButtonDescription(ButtonEntityDescription):
"""Class describing deCONZ button entities."""
button_fn: str
suffix: str
ENTITY_DESCRIPTIONS = {
PydeconzScene: [

View File

@ -31,9 +31,9 @@ from .util import serial_from_unique_id
T = TypeVar("T", Presence, PydeconzSensorBase)
@dataclass
class DeconzNumberDescriptionMixin(Generic[T]):
"""Required values when describing deCONZ number entities."""
@dataclass(kw_only=True)
class DeconzNumberDescription(Generic[T], NumberEntityDescription):
"""Class describing deCONZ number entities."""
instance_check: type[T]
name_suffix: str
@ -42,11 +42,6 @@ class DeconzNumberDescriptionMixin(Generic[T]):
value_fn: Callable[[T], float | None]
@dataclass
class DeconzNumberDescription(NumberEntityDescription, DeconzNumberDescriptionMixin[T]):
"""Class describing deCONZ number entities."""
ENTITY_DESCRIPTIONS: tuple[DeconzNumberDescription, ...] = (
DeconzNumberDescription[Presence](
key="delay",

View File

@ -91,22 +91,16 @@ T = TypeVar(
)
@dataclass
class DeconzSensorDescriptionMixin(Generic[T]):
"""Required values when describing secondary sensor attributes."""
supported_fn: Callable[[T], bool]
update_key: str
value_fn: Callable[[T], datetime | StateType]
@dataclass
class DeconzSensorDescription(SensorEntityDescription, DeconzSensorDescriptionMixin[T]):
@dataclass(kw_only=True)
class DeconzSensorDescription(Generic[T], SensorEntityDescription):
"""Class describing deCONZ binary sensor entities."""
instance_check: type[T] | None = None
name_suffix: str = ""
old_unique_id_suffix: str = ""
supported_fn: Callable[[T], bool]
update_key: str
value_fn: Callable[[T], datetime | StateType]
ENTITY_DESCRIPTIONS: tuple[DeconzSensorDescription, ...] = (