Fix group integration with py3.11 (#88089)

In py3.11 `Passing coroutines is forbidden, use tasks explicitly`
This commit is contained in:
J. Nick Koston
2023-02-14 09:24:10 -06:00
committed by GitHub
parent d8ee60ee44
commit f11ba1b7cb

View File

@@ -2,7 +2,7 @@
from __future__ import annotations from __future__ import annotations
import asyncio import asyncio
from collections.abc import Coroutine, Mapping from collections.abc import Mapping
from copy import deepcopy from copy import deepcopy
from typing import Any from typing import Any
@@ -68,14 +68,16 @@ class GroupNotifyPlatform(BaseNotificationService):
payload: dict[str, Any] = {ATTR_MESSAGE: message} payload: dict[str, Any] = {ATTR_MESSAGE: message}
payload.update({key: val for key, val in kwargs.items() if val}) payload.update({key: val for key, val in kwargs.items() if val})
tasks: list[Coroutine[Any, Any, bool | None]] = [] tasks: list[asyncio.Task[bool | None]] = []
for entity in self.entities: for entity in self.entities:
sending_payload = deepcopy(payload.copy()) sending_payload = deepcopy(payload.copy())
if (data := entity.get(ATTR_DATA)) is not None: if (data := entity.get(ATTR_DATA)) is not None:
update(sending_payload, data) update(sending_payload, data)
tasks.append( tasks.append(
self.hass.services.async_call( asyncio.create_task(
DOMAIN, entity[ATTR_SERVICE], sending_payload self.hass.services.async_call(
DOMAIN, entity[ATTR_SERVICE], sending_payload
)
) )
) )