From 4893087a7eb5ecdfd810cf8a23a05596f8b9396a Mon Sep 17 00:00:00 2001 From: Marc Mueller <30130371+cdce8p@users.noreply.github.com> Date: Fri, 8 Mar 2024 11:14:16 +0100 Subject: [PATCH] Add TypeVar defaults for DataUpdateCoordinator (#111949) --- .../components/bluetooth/passive_update_coordinator.py | 5 ++++- homeassistant/components/zha/update.py | 4 +++- homeassistant/helpers/update_coordinator.py | 9 ++++++--- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/homeassistant/components/bluetooth/passive_update_coordinator.py b/homeassistant/components/bluetooth/passive_update_coordinator.py index fcf6fcdf255..0de1fadce30 100644 --- a/homeassistant/components/bluetooth/passive_update_coordinator.py +++ b/homeassistant/components/bluetooth/passive_update_coordinator.py @@ -1,7 +1,9 @@ """Passive update coordinator for the Bluetooth integration.""" from __future__ import annotations -from typing import TYPE_CHECKING, Any, TypeVar +from typing import TYPE_CHECKING, Any + +from typing_extensions import TypeVar from homeassistant.core import CALLBACK_TYPE, HomeAssistant, callback from homeassistant.helpers.update_coordinator import ( @@ -20,6 +22,7 @@ if TYPE_CHECKING: _PassiveBluetoothDataUpdateCoordinatorT = TypeVar( "_PassiveBluetoothDataUpdateCoordinatorT", bound="PassiveBluetoothDataUpdateCoordinator", + default="PassiveBluetoothDataUpdateCoordinator", ) diff --git a/homeassistant/components/zha/update.py b/homeassistant/components/zha/update.py index 12d89972380..b7b721766b8 100644 --- a/homeassistant/components/zha/update.py +++ b/homeassistant/components/zha/update.py @@ -93,7 +93,9 @@ class ZHAFirmwareUpdateCoordinator(DataUpdateCoordinator[None]): # pylint: disa @CONFIG_DIAGNOSTIC_MATCH(cluster_handler_names=CLUSTER_HANDLER_OTA) -class ZHAFirmwareUpdateEntity(ZhaEntity, CoordinatorEntity, UpdateEntity): +class ZHAFirmwareUpdateEntity( + ZhaEntity, CoordinatorEntity[ZHAFirmwareUpdateCoordinator], UpdateEntity +): """Representation of a ZHA firmware update entity.""" _unique_id_suffix = "firmware_update" diff --git a/homeassistant/helpers/update_coordinator.py b/homeassistant/helpers/update_coordinator.py index 5fe2071e853..c3f2c60c8c3 100644 --- a/homeassistant/helpers/update_coordinator.py +++ b/homeassistant/helpers/update_coordinator.py @@ -8,11 +8,12 @@ from datetime import datetime, timedelta import logging from random import randint from time import monotonic -from typing import Any, Generic, Protocol, TypeVar +from typing import Any, Generic, Protocol import urllib.error import aiohttp import requests +from typing_extensions import TypeVar from homeassistant import config_entries from homeassistant.const import EVENT_HOMEASSISTANT_STOP @@ -37,12 +38,14 @@ from .debounce import Debouncer REQUEST_REFRESH_DEFAULT_COOLDOWN = 10 REQUEST_REFRESH_DEFAULT_IMMEDIATE = True -_DataT = TypeVar("_DataT") +_DataT = TypeVar("_DataT", default=dict[str, Any]) _BaseDataUpdateCoordinatorT = TypeVar( "_BaseDataUpdateCoordinatorT", bound="BaseDataUpdateCoordinatorProtocol" ) _DataUpdateCoordinatorT = TypeVar( - "_DataUpdateCoordinatorT", bound="DataUpdateCoordinator[Any]" + "_DataUpdateCoordinatorT", + bound="DataUpdateCoordinator[Any]", + default="DataUpdateCoordinator[dict[str, Any]]", ) -- GitLab