From 694fa3d0140389ed8b0ec5c91906a6e69e3a4a53 Mon Sep 17 00:00:00 2001 From: Marc Mueller <30130371+cdce8p@users.noreply.github.com> Date: Tue, 27 Dec 2022 22:50:57 +0100 Subject: [PATCH] Improve DataUpdateCoordinator typing in integrations (4) (#84658) --- homeassistant/components/shelly/coordinator.py | 6 +++--- homeassistant/components/uptimerobot/__init__.py | 6 ++---- homeassistant/components/version/coordinator.py | 2 +- homeassistant/components/version/diagnostics.py | 3 ++- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/homeassistant/components/shelly/coordinator.py b/homeassistant/components/shelly/coordinator.py index 9ccbab66b0a..aeb3dcf7ccf 100644 --- a/homeassistant/components/shelly/coordinator.py +++ b/homeassistant/components/shelly/coordinator.py @@ -73,7 +73,7 @@ def get_entry_data(hass: HomeAssistant) -> dict[str, ShellyEntryData]: return cast(dict[str, ShellyEntryData], hass.data[DOMAIN][DATA_CONFIG_ENTRY]) -class ShellyBlockCoordinator(DataUpdateCoordinator): +class ShellyBlockCoordinator(DataUpdateCoordinator[None]): """Coordinator for a Shelly block based device.""" def __init__( @@ -318,7 +318,7 @@ class ShellyRestCoordinator(DataUpdateCoordinator): return cast(str, self.device.settings["device"]["mac"]) -class ShellyRpcCoordinator(DataUpdateCoordinator): +class ShellyRpcCoordinator(DataUpdateCoordinator[None]): """Coordinator for a Shelly RPC based device.""" def __init__( @@ -543,7 +543,7 @@ class ShellyRpcCoordinator(DataUpdateCoordinator): elif update_type is UpdateType.DISCONNECTED: self.hass.async_create_task(self._async_disconnected()) elif update_type is UpdateType.STATUS: - self.async_set_updated_data(self.device) + self.async_set_updated_data(None) elif update_type is UpdateType.EVENT and (event := self.device.event): self._async_device_event_handler(event) diff --git a/homeassistant/components/uptimerobot/__init__.py b/homeassistant/components/uptimerobot/__init__.py index 14221463c0e..00ee0889c3d 100644 --- a/homeassistant/components/uptimerobot/__init__.py +++ b/homeassistant/components/uptimerobot/__init__.py @@ -53,10 +53,9 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: return unload_ok -class UptimeRobotDataUpdateCoordinator(DataUpdateCoordinator): +class UptimeRobotDataUpdateCoordinator(DataUpdateCoordinator[list[UptimeRobotMonitor]]): """Data update coordinator for UptimeRobot.""" - data: list[UptimeRobotMonitor] config_entry: ConfigEntry def __init__( @@ -77,7 +76,7 @@ class UptimeRobotDataUpdateCoordinator(DataUpdateCoordinator): self._device_registry = dev_reg self.api = api - async def _async_update_data(self) -> list[UptimeRobotMonitor] | None: + async def _async_update_data(self) -> list[UptimeRobotMonitor]: """Update data.""" try: response = await self.api.async_get_monitors() @@ -111,6 +110,5 @@ class UptimeRobotDataUpdateCoordinator(DataUpdateCoordinator): self.hass.async_create_task( self.hass.config_entries.async_reload(self._config_entry_id) ) - return None return monitors diff --git a/homeassistant/components/version/coordinator.py b/homeassistant/components/version/coordinator.py index 24e44f9f56c..a41816c0824 100644 --- a/homeassistant/components/version/coordinator.py +++ b/homeassistant/components/version/coordinator.py @@ -14,7 +14,7 @@ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, Upda from .const import DOMAIN, LOGGER, UPDATE_COORDINATOR_UPDATE_INTERVAL -class VersionDataUpdateCoordinator(DataUpdateCoordinator): +class VersionDataUpdateCoordinator(DataUpdateCoordinator[None]): """Data update coordinator for Version entities.""" config_entry: ConfigEntry diff --git a/homeassistant/components/version/diagnostics.py b/homeassistant/components/version/diagnostics.py index 2ba31bc8870..20b84fabce7 100644 --- a/homeassistant/components/version/diagnostics.py +++ b/homeassistant/components/version/diagnostics.py @@ -10,6 +10,7 @@ from homeassistant.core import HomeAssistant from homeassistant.helpers import device_registry as dr, entity_registry as er from .const import DOMAIN +from .coordinator import VersionDataUpdateCoordinator async def async_get_config_entry_diagnostics( @@ -17,7 +18,7 @@ async def async_get_config_entry_diagnostics( config_entry: ConfigEntry, ) -> dict[str, Any]: """Return diagnostics for a config entry.""" - coordinator = hass.data[DOMAIN][config_entry.entry_id] + coordinator: VersionDataUpdateCoordinator = hass.data[DOMAIN][config_entry.entry_id] device_registry = dr.async_get(hass) entity_registry = er.async_get(hass)