Update typing 10 (#48071)
This commit is contained in:
parent
00dca88024
commit
25a13d1554
73 changed files with 412 additions and 333 deletions
|
@ -1,8 +1,10 @@
|
|||
"""Helper functions for mysensors package."""
|
||||
from __future__ import annotations
|
||||
|
||||
from collections import defaultdict
|
||||
from enum import IntEnum
|
||||
import logging
|
||||
from typing import Callable, DefaultDict, Dict, List, Optional, Set, Union
|
||||
from typing import Callable, DefaultDict
|
||||
|
||||
from mysensors import BaseAsyncGateway, Message
|
||||
from mysensors.sensor import ChildSensor
|
||||
|
@ -35,7 +37,7 @@ SCHEMAS = Registry()
|
|||
|
||||
|
||||
async def on_unload(
|
||||
hass: HomeAssistantType, entry: Union[ConfigEntry, GatewayId], fnct: Callable
|
||||
hass: HomeAssistantType, entry: ConfigEntry | GatewayId, fnct: Callable
|
||||
) -> None:
|
||||
"""Register a callback to be called when entry is unloaded.
|
||||
|
||||
|
@ -53,7 +55,7 @@ async def on_unload(
|
|||
|
||||
@callback
|
||||
def discover_mysensors_platform(
|
||||
hass: HomeAssistant, gateway_id: GatewayId, platform: str, new_devices: List[DevId]
|
||||
hass: HomeAssistant, gateway_id: GatewayId, platform: str, new_devices: list[DevId]
|
||||
) -> None:
|
||||
"""Discover a MySensors platform."""
|
||||
_LOGGER.debug("Discovering platform %s with devIds: %s", platform, new_devices)
|
||||
|
@ -150,7 +152,7 @@ def invalid_msg(
|
|||
)
|
||||
|
||||
|
||||
def validate_set_msg(gateway_id: GatewayId, msg: Message) -> Dict[str, List[DevId]]:
|
||||
def validate_set_msg(gateway_id: GatewayId, msg: Message) -> dict[str, list[DevId]]:
|
||||
"""Validate a set message."""
|
||||
if not validate_node(msg.gateway, msg.node_id):
|
||||
return {}
|
||||
|
@ -171,34 +173,34 @@ def validate_child(
|
|||
gateway: BaseAsyncGateway,
|
||||
node_id: int,
|
||||
child: ChildSensor,
|
||||
value_type: Optional[int] = None,
|
||||
) -> DefaultDict[str, List[DevId]]:
|
||||
value_type: int | None = None,
|
||||
) -> DefaultDict[str, list[DevId]]:
|
||||
"""Validate a child. Returns a dict mapping hass platform names to list of DevId."""
|
||||
validated: DefaultDict[str, List[DevId]] = defaultdict(list)
|
||||
validated: DefaultDict[str, list[DevId]] = defaultdict(list)
|
||||
pres: IntEnum = gateway.const.Presentation
|
||||
set_req: IntEnum = gateway.const.SetReq
|
||||
child_type_name: Optional[SensorType] = next(
|
||||
child_type_name: SensorType | None = next(
|
||||
(member.name for member in pres if member.value == child.type), None
|
||||
)
|
||||
value_types: Set[int] = {value_type} if value_type else {*child.values}
|
||||
value_type_names: Set[ValueType] = {
|
||||
value_types: set[int] = {value_type} if value_type else {*child.values}
|
||||
value_type_names: set[ValueType] = {
|
||||
member.name for member in set_req if member.value in value_types
|
||||
}
|
||||
platforms: List[str] = TYPE_TO_PLATFORMS.get(child_type_name, [])
|
||||
platforms: list[str] = TYPE_TO_PLATFORMS.get(child_type_name, [])
|
||||
if not platforms:
|
||||
_LOGGER.warning("Child type %s is not supported", child.type)
|
||||
return validated
|
||||
|
||||
for platform in platforms:
|
||||
platform_v_names: Set[ValueType] = FLAT_PLATFORM_TYPES[
|
||||
platform_v_names: set[ValueType] = FLAT_PLATFORM_TYPES[
|
||||
platform, child_type_name
|
||||
]
|
||||
v_names: Set[ValueType] = platform_v_names & value_type_names
|
||||
v_names: set[ValueType] = platform_v_names & value_type_names
|
||||
if not v_names:
|
||||
child_value_names: Set[ValueType] = {
|
||||
child_value_names: set[ValueType] = {
|
||||
member.name for member in set_req if member.value in child.values
|
||||
}
|
||||
v_names: Set[ValueType] = platform_v_names & child_value_names
|
||||
v_names: set[ValueType] = platform_v_names & child_value_names
|
||||
|
||||
for v_name in v_names:
|
||||
child_schema_gen = SCHEMAS.get((platform, v_name), default_schema)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue