Improve DataUpdateCoordinator typing in integrations (4) (#84658)

This commit is contained in:
Marc Mueller 2022-12-27 22:50:57 +01:00 committed by GitHub
parent e170681016
commit 694fa3d014
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 8 additions and 9 deletions

View file

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

View file

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

View file

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

View file

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