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
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

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
)
) )
) )