diff --git a/homeassistant/components/zha/core/group.py b/homeassistant/components/zha/core/group.py index c8970b2d393..16202291860 100644 --- a/homeassistant/components/zha/core/group.py +++ b/homeassistant/components/zha/core/group.py @@ -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