Add zha typing [core.group] (#68350)
This commit is contained in:
parent
171c58fed2
commit
f9dcf5afa2
1 changed files with 23 additions and 24 deletions
|
@ -4,21 +4,20 @@ from __future__ import annotations
|
|||
import asyncio
|
||||
import collections
|
||||
import logging
|
||||
from typing import Any
|
||||
from typing import TYPE_CHECKING, Any
|
||||
|
||||
import zigpy.endpoint
|
||||
import zigpy.exceptions
|
||||
import zigpy.group
|
||||
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.entity_registry import async_entries_for_device
|
||||
|
||||
from .helpers import LogMixin
|
||||
from .typing import (
|
||||
ZhaDeviceType,
|
||||
ZhaGatewayType,
|
||||
ZhaGroupType,
|
||||
ZigpyEndpointType,
|
||||
ZigpyGroupType,
|
||||
)
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from .device import ZHADevice
|
||||
from .gateway import ZHAGateway
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
|
@ -32,15 +31,15 @@ class ZHAGroupMember(LogMixin):
|
|||
"""Composite object that represents a device endpoint in a Zigbee group."""
|
||||
|
||||
def __init__(
|
||||
self, zha_group: ZhaGroupType, zha_device: ZhaDeviceType, endpoint_id: int
|
||||
self, zha_group: ZHAGroup, zha_device: ZHADevice, endpoint_id: int
|
||||
) -> None:
|
||||
"""Initialize the group member."""
|
||||
self._zha_group: ZhaGroupType = zha_group
|
||||
self._zha_device: ZhaDeviceType = zha_device
|
||||
self._endpoint_id: int = endpoint_id
|
||||
self._zha_group = zha_group
|
||||
self._zha_device = zha_device
|
||||
self._endpoint_id = endpoint_id
|
||||
|
||||
@property
|
||||
def group(self) -> ZhaGroupType:
|
||||
def group(self) -> ZHAGroup:
|
||||
"""Return the group this member belongs to."""
|
||||
return self._zha_group
|
||||
|
||||
|
@ -50,12 +49,12 @@ class ZHAGroupMember(LogMixin):
|
|||
return self._endpoint_id
|
||||
|
||||
@property
|
||||
def endpoint(self) -> ZigpyEndpointType:
|
||||
def endpoint(self) -> zigpy.endpoint.Endpoint:
|
||||
"""Return the endpoint for this group member."""
|
||||
return self._zha_device.device.endpoints.get(self.endpoint_id)
|
||||
|
||||
@property
|
||||
def device(self) -> ZhaDeviceType:
|
||||
def device(self) -> ZHADevice:
|
||||
"""Return the zha device for this group member."""
|
||||
return self._zha_device
|
||||
|
||||
|
@ -101,7 +100,7 @@ class ZHAGroupMember(LogMixin):
|
|||
str(ex),
|
||||
)
|
||||
|
||||
def log(self, level: int, msg: str, *args) -> None:
|
||||
def log(self, level: int, msg: str, *args: Any) -> None:
|
||||
"""Log a message."""
|
||||
msg = f"[%s](%s): {msg}"
|
||||
args = (f"0x{self._zha_group.group_id:04x}", self.endpoint_id) + args
|
||||
|
@ -114,13 +113,13 @@ class ZHAGroup(LogMixin):
|
|||
def __init__(
|
||||
self,
|
||||
hass: HomeAssistant,
|
||||
zha_gateway: ZhaGatewayType,
|
||||
zigpy_group: ZigpyGroupType,
|
||||
zha_gateway: ZHAGateway,
|
||||
zigpy_group: zigpy.group.Group,
|
||||
) -> None:
|
||||
"""Initialize the group."""
|
||||
self.hass: HomeAssistant = hass
|
||||
self._zigpy_group: ZigpyGroupType = zigpy_group
|
||||
self._zha_gateway: ZhaGatewayType = zha_gateway
|
||||
self.hass = hass
|
||||
self._zha_gateway = zha_gateway
|
||||
self._zigpy_group = zigpy_group
|
||||
|
||||
@property
|
||||
def name(self) -> str:
|
||||
|
@ -133,7 +132,7 @@ class ZHAGroup(LogMixin):
|
|||
return self._zigpy_group.group_id
|
||||
|
||||
@property
|
||||
def endpoint(self) -> ZigpyEndpointType:
|
||||
def endpoint(self) -> zigpy.endpoint.Endpoint:
|
||||
"""Return the endpoint for this group."""
|
||||
return self._zigpy_group.endpoint
|
||||
|
||||
|
@ -192,7 +191,7 @@ class ZHAGroup(LogMixin):
|
|||
all_entity_ids.append(entity_reference["entity_id"])
|
||||
return all_entity_ids
|
||||
|
||||
def get_domain_entity_ids(self, domain) -> list[str]:
|
||||
def get_domain_entity_ids(self, domain: str) -> list[str]:
|
||||
"""Return entity ids from the entity domain for this group."""
|
||||
domain_entity_ids: list[str] = []
|
||||
for member in self.members:
|
||||
|
@ -217,7 +216,7 @@ class ZHAGroup(LogMixin):
|
|||
group_info["members"] = [member.member_info for member in self.members]
|
||||
return group_info
|
||||
|
||||
def log(self, level: int, msg: str, *args):
|
||||
def log(self, level: int, msg: str, *args: Any) -> None:
|
||||
"""Log a message."""
|
||||
msg = f"[%s](%s): {msg}"
|
||||
args = (self.name, self.group_id) + args
|
||||
|
|
Loading…
Add table
Reference in a new issue