diff --git a/homeassistant/components/deluge/coordinator.py b/homeassistant/components/deluge/coordinator.py index 89f9afc31ad..9b0d5907b1a 100644 --- a/homeassistant/components/deluge/coordinator.py +++ b/homeassistant/components/deluge/coordinator.py @@ -4,6 +4,7 @@ from __future__ import annotations from datetime import timedelta import socket from ssl import SSLError +from typing import Any from deluge_client.client import DelugeRPCClient, FailedToReconnectException @@ -16,7 +17,9 @@ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, Upda from .const import DATA_KEYS, LOGGER -class DelugeDataUpdateCoordinator(DataUpdateCoordinator): +class DelugeDataUpdateCoordinator( + DataUpdateCoordinator[dict[Platform, dict[str, Any]]] +): """Data update coordinator for the Deluge integration.""" config_entry: ConfigEntry @@ -34,7 +37,7 @@ class DelugeDataUpdateCoordinator(DataUpdateCoordinator): self.api = api self.config_entry = entry - async def _async_update_data(self) -> dict[Platform, dict[str, int | str]]: + async def _async_update_data(self) -> dict[Platform, dict[str, Any]]: """Get the latest data from Deluge and updates the state.""" data = {} try: diff --git a/homeassistant/components/deluge/switch.py b/homeassistant/components/deluge/switch.py index c25c1752ee4..5b3989384cd 100644 --- a/homeassistant/components/deluge/switch.py +++ b/homeassistant/components/deluge/switch.py @@ -45,7 +45,7 @@ class DelugeSwitch(DelugeEntity, SwitchEntity): def is_on(self) -> bool: """Return state of the switch.""" if self.coordinator.data: - data: dict = self.coordinator.data[Platform.SWITCH] + data = self.coordinator.data[Platform.SWITCH] for torrent in data.values(): item = torrent.popitem() if not item[1]: diff --git a/homeassistant/components/goalzero/coordinator.py b/homeassistant/components/goalzero/coordinator.py index 416b420f29d..61c3a8dba29 100644 --- a/homeassistant/components/goalzero/coordinator.py +++ b/homeassistant/components/goalzero/coordinator.py @@ -11,7 +11,7 @@ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, Upda from .const import DOMAIN, LOGGER -class GoalZeroDataUpdateCoordinator(DataUpdateCoordinator): +class GoalZeroDataUpdateCoordinator(DataUpdateCoordinator[None]): """Data update coordinator for the Goal zero integration.""" config_entry: ConfigEntry diff --git a/homeassistant/components/goalzero/switch.py b/homeassistant/components/goalzero/switch.py index 25fdeb52114..ac4872bba32 100644 --- a/homeassistant/components/goalzero/switch.py +++ b/homeassistant/components/goalzero/switch.py @@ -52,10 +52,10 @@ class GoalZeroSwitch(GoalZeroEntity, SwitchEntity): """Turn off the switch.""" payload = {self.entity_description.key: 0} await self._api.post_state(payload=payload) - self.coordinator.async_set_updated_data(data=payload) + self.coordinator.async_set_updated_data(None) async def async_turn_on(self, **kwargs: Any) -> None: """Turn on the switch.""" payload = {self.entity_description.key: 1} await self._api.post_state(payload=payload) - self.coordinator.async_set_updated_data(data=payload) + self.coordinator.async_set_updated_data(None) diff --git a/homeassistant/components/lifx/coordinator.py b/homeassistant/components/lifx/coordinator.py index 952a4574d2d..038f93c1e88 100644 --- a/homeassistant/components/lifx/coordinator.py +++ b/homeassistant/components/lifx/coordinator.py @@ -358,7 +358,7 @@ class LIFXUpdateCoordinator(DataUpdateCoordinator[None]): return self.active_effect.value -class LIFXSensorUpdateCoordinator(DataUpdateCoordinator): +class LIFXSensorUpdateCoordinator(DataUpdateCoordinator[None]): """DataUpdateCoordinator to gather data for a specific lifx device.""" def __init__( diff --git a/homeassistant/components/nuki/__init__.py b/homeassistant/components/nuki/__init__.py index dcb359f32d2..99cb033031c 100644 --- a/homeassistant/components/nuki/__init__.py +++ b/homeassistant/components/nuki/__init__.py @@ -101,7 +101,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: except RequestException as err: raise exceptions.ConfigEntryNotReady from err - async def async_update_data(): + async def async_update_data() -> None: """Fetch data from Nuki bridge.""" try: # Note: asyncio.TimeoutError and aiohttp.ClientError are already @@ -161,7 +161,7 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: return unload_ok -class NukiEntity(CoordinatorEntity): +class NukiEntity(CoordinatorEntity[DataUpdateCoordinator[None]]): """An entity using CoordinatorEntity. The CoordinatorEntity class provides: diff --git a/homeassistant/components/nuki/binary_sensor.py b/homeassistant/components/nuki/binary_sensor.py index 69c48133533..6c03cef3664 100644 --- a/homeassistant/components/nuki/binary_sensor.py +++ b/homeassistant/components/nuki/binary_sensor.py @@ -9,6 +9,7 @@ from homeassistant.components.binary_sensor import ( from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.update_coordinator import DataUpdateCoordinator from . import NukiEntity from .const import ATTR_NUKI_ID, DATA_COORDINATOR, DATA_LOCKS, DOMAIN as NUKI_DOMAIN @@ -19,7 +20,7 @@ async def async_setup_entry( ) -> None: """Set up the Nuki lock binary sensor.""" data = hass.data[NUKI_DOMAIN][entry.entry_id] - coordinator = data[DATA_COORDINATOR] + coordinator: DataUpdateCoordinator[None] = data[DATA_COORDINATOR] entities = [] diff --git a/homeassistant/components/nuki/lock.py b/homeassistant/components/nuki/lock.py index 4b89b0d3535..4a8643e77aa 100644 --- a/homeassistant/components/nuki/lock.py +++ b/homeassistant/components/nuki/lock.py @@ -14,6 +14,7 @@ from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant from homeassistant.helpers import config_validation as cv, entity_platform from homeassistant.helpers.entity_platform import AddEntitiesCallback +from homeassistant.helpers.update_coordinator import DataUpdateCoordinator from . import NukiEntity from .const import ( @@ -35,7 +36,7 @@ async def async_setup_entry( ) -> None: """Set up the Nuki lock platform.""" data = hass.data[NUKI_DOMAIN][entry.entry_id] - coordinator = data[DATA_COORDINATOR] + coordinator: DataUpdateCoordinator[None] = data[DATA_COORDINATOR] entities: list[NukiDeviceEntity] = [ NukiLockEntity(coordinator, lock) for lock in data[DATA_LOCKS] diff --git a/homeassistant/components/tomorrowio/__init__.py b/homeassistant/components/tomorrowio/__init__.py index e2aaba6cdff..7b9d95d80f6 100644 --- a/homeassistant/components/tomorrowio/__init__.py +++ b/homeassistant/components/tomorrowio/__init__.py @@ -162,7 +162,7 @@ async def async_unload_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> return unload_ok -class TomorrowioDataUpdateCoordinator(DataUpdateCoordinator): +class TomorrowioDataUpdateCoordinator(DataUpdateCoordinator[dict[str, Any]]): """Define an object to hold Tomorrow.io data.""" def __init__(self, hass: HomeAssistant, api: TomorrowioV4) -> None: @@ -235,7 +235,7 @@ class TomorrowioDataUpdateCoordinator(DataUpdateCoordinator): async def _async_update_data(self) -> dict[str, Any]: """Update data via library.""" - data = {} + data: dict[str, Any] = {} # If we are refreshing because of a new config entry that's not already in our # data, we do a partial refresh to avoid wasted API calls. if self.data and any(