mirror of
https://github.com/home-assistant/core.git
synced 2025-07-26 06:37:52 +00:00
Small cleanup to unifiprotect entity descriptions (#119904)
This commit is contained in:
parent
e0de436a58
commit
407df2aedf
@ -39,43 +39,33 @@ class ProtectEntityDescription(EntityDescription, Generic[T]):
|
|||||||
ufp_enabled: str | None = None
|
ufp_enabled: str | None = None
|
||||||
ufp_perm: PermRequired | None = None
|
ufp_perm: PermRequired | None = None
|
||||||
|
|
||||||
def get_ufp_value(self, obj: T) -> Any:
|
# The below are set in __post_init__
|
||||||
"""Return value from UniFi Protect device.
|
has_required: Callable[[T], bool] = bool
|
||||||
|
get_ufp_enabled: Callable[[T], bool] = bool
|
||||||
|
|
||||||
May be overridden by ufp_value or ufp_value_fn.
|
def get_ufp_value(self, obj: T) -> Any:
|
||||||
"""
|
"""Return value from UniFi Protect device; overridden in __post_init__."""
|
||||||
# ufp_value or ufp_value_fn is required, the
|
# ufp_value or ufp_value_fn are required, the
|
||||||
# RuntimeError is to catch any issues in the code
|
# RuntimeError is to catch any issues in the code
|
||||||
# with new descriptions.
|
# with new descriptions.
|
||||||
raise RuntimeError( # pragma: no cover
|
raise RuntimeError( # pragma: no cover
|
||||||
"`ufp_value` or `ufp_value_fn` is required"
|
f"`ufp_value` or `ufp_value_fn` is required for {self}"
|
||||||
)
|
)
|
||||||
|
|
||||||
def has_required(self, obj: T) -> bool:
|
|
||||||
"""Return if required field is set.
|
|
||||||
|
|
||||||
May be overridden by ufp_required_field.
|
|
||||||
"""
|
|
||||||
return True
|
|
||||||
|
|
||||||
def get_ufp_enabled(self, obj: T) -> bool:
|
|
||||||
"""Return if entity is enabled.
|
|
||||||
|
|
||||||
May be overridden by ufp_enabled.
|
|
||||||
"""
|
|
||||||
return True
|
|
||||||
|
|
||||||
def __post_init__(self) -> None:
|
def __post_init__(self) -> None:
|
||||||
"""Override get_ufp_value, has_required, and get_ufp_enabled if required."""
|
"""Override get_ufp_value, has_required, and get_ufp_enabled if required."""
|
||||||
_setter = partial(object.__setattr__, self)
|
_setter = partial(object.__setattr__, self)
|
||||||
|
|
||||||
if (_ufp_value := self.ufp_value) is not None:
|
if (_ufp_value := self.ufp_value) is not None:
|
||||||
ufp_value = tuple(_ufp_value.split("."))
|
ufp_value = tuple(_ufp_value.split("."))
|
||||||
_setter("get_ufp_value", partial(get_nested_attr, attrs=ufp_value))
|
_setter("get_ufp_value", partial(get_nested_attr, attrs=ufp_value))
|
||||||
elif (ufp_value_fn := self.ufp_value_fn) is not None:
|
elif (ufp_value_fn := self.ufp_value_fn) is not None:
|
||||||
_setter("get_ufp_value", ufp_value_fn)
|
_setter("get_ufp_value", ufp_value_fn)
|
||||||
|
|
||||||
if (_ufp_enabled := self.ufp_enabled) is not None:
|
if (_ufp_enabled := self.ufp_enabled) is not None:
|
||||||
ufp_enabled = tuple(_ufp_enabled.split("."))
|
ufp_enabled = tuple(_ufp_enabled.split("."))
|
||||||
_setter("get_ufp_enabled", partial(get_nested_attr, attrs=ufp_enabled))
|
_setter("get_ufp_enabled", partial(get_nested_attr, attrs=ufp_enabled))
|
||||||
|
|
||||||
if (_ufp_required_field := self.ufp_required_field) is not None:
|
if (_ufp_required_field := self.ufp_required_field) is not None:
|
||||||
ufp_required_field = tuple(_ufp_required_field.split("."))
|
ufp_required_field = tuple(_ufp_required_field.split("."))
|
||||||
_setter(
|
_setter(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user