mirror of
https://github.com/home-assistant/core.git
synced 2025-07-31 17:18:23 +00:00
AI review suggestions
This commit is contained in:
parent
cb6c41bf95
commit
ffcc1e7213
@ -8,6 +8,7 @@ import voluptuous as vol
|
||||
|
||||
from ..validation import ga_validator, maybe_ga_validator, sync_state_validator
|
||||
from .const import CONF_DPT, CONF_GA_PASSIVE, CONF_GA_STATE, CONF_GA_WRITE
|
||||
from .util import dpt_string_to_dict
|
||||
|
||||
|
||||
class AllSerializeFirst(vol.All):
|
||||
@ -179,14 +180,6 @@ class GASelector(KNXSelectorBase):
|
||||
def serialize(self) -> dict[str, Any]:
|
||||
"""Serialize the selector to a dictionary."""
|
||||
|
||||
def dpt_to_dict(dpt: str) -> dict[str, int | None]:
|
||||
"""Convert a DPT string to a dictionary."""
|
||||
dpt_num = dpt.split(".")
|
||||
return {
|
||||
"main": int(dpt_num[0]),
|
||||
"sub": int(dpt_num[1]) if len(dpt_num) > 1 else None,
|
||||
}
|
||||
|
||||
options: dict[str, Any] = {
|
||||
"write": {"required": self.write_required} if self.write else False,
|
||||
"state": {"required": self.state_required} if self.state else False,
|
||||
@ -197,12 +190,12 @@ class GASelector(KNXSelectorBase):
|
||||
{
|
||||
"value": item.value,
|
||||
"translation_key": item.value.replace(".", "_"),
|
||||
"dpt": dpt_to_dict(item.value), # used to filter DPTs in dropdown
|
||||
"dpt": dpt_string_to_dict(item.value), # used for filtering GAs
|
||||
}
|
||||
for item in self.dpt
|
||||
]
|
||||
if self.valid_dpt is not None:
|
||||
options["validDPTs"] = [dpt_to_dict(dpt) for dpt in self.valid_dpt]
|
||||
options["validDPTs"] = [dpt_string_to_dict(dpt) for dpt in self.valid_dpt]
|
||||
|
||||
return {
|
||||
"type": self.selector_type,
|
||||
|
@ -35,7 +35,9 @@ def knx_serializer(
|
||||
return UNSUPPORTED # type: ignore[no-any-return]
|
||||
|
||||
|
||||
def get_serialized_schema(platform: Platform) -> dict | list | None:
|
||||
def get_serialized_schema(
|
||||
platform: Platform,
|
||||
) -> dict[str, Any] | list[dict[str, Any]] | None:
|
||||
"""Get the schema for a specific platform."""
|
||||
if knx_schema := KNX_SCHEMA_FOR_PLATFORM.get(platform):
|
||||
return convert(knx_schema, custom_serializer=knx_serializer) # type: ignore[no-any-return]
|
||||
|
@ -3,11 +3,29 @@
|
||||
from functools import partial
|
||||
from typing import Any
|
||||
|
||||
from xknx.typing import DPTMainSubDict
|
||||
|
||||
from homeassistant.helpers.typing import ConfigType
|
||||
|
||||
from .const import CONF_DPT, CONF_GA_PASSIVE, CONF_GA_STATE, CONF_GA_WRITE
|
||||
|
||||
|
||||
def dpt_string_to_dict(dpt: str) -> DPTMainSubDict:
|
||||
"""Convert a DPT string to a typed dictionary with main and sub components.
|
||||
|
||||
Examples:
|
||||
>>> dpt_string_to_dict("1.010")
|
||||
{'main': 1, 'sub': 10}
|
||||
>>> dpt_string_to_dict("5")
|
||||
{'main': 5, 'sub': None}
|
||||
"""
|
||||
dpt_num = dpt.split(".")
|
||||
return DPTMainSubDict(
|
||||
main=int(dpt_num[0]),
|
||||
sub=int(dpt_num[1]) if len(dpt_num) > 1 else None,
|
||||
)
|
||||
|
||||
|
||||
def nested_get(dic: ConfigType, *keys: str, default: Any | None = None) -> Any:
|
||||
"""Get the value from a nested dictionary."""
|
||||
for key in keys:
|
||||
|
Loading…
x
Reference in New Issue
Block a user