mirror of
https://github.com/home-assistant/core.git
synced 2025-04-24 17:27:52 +00:00
Improve DataUpdateCoordinator typing in integrations (9) (#85332)
This commit is contained in:
parent
a2ef0caa07
commit
2e989b16ad
@ -33,7 +33,7 @@ CONF_SHOW_INACTIVE = "show_inactive"
|
||||
class TileData:
|
||||
"""Define an object to be stored in `hass.data`."""
|
||||
|
||||
coordinators: dict[str, DataUpdateCoordinator]
|
||||
coordinators: dict[str, DataUpdateCoordinator[None]]
|
||||
tiles: dict[str, Tile]
|
||||
|
||||
|
||||
@ -94,7 +94,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
||||
except TileError as err:
|
||||
raise UpdateFailed(f"Error while retrieving data: {err}") from err
|
||||
|
||||
coordinators = {}
|
||||
coordinators: dict[str, DataUpdateCoordinator[None]] = {}
|
||||
coordinator_init_tasks = []
|
||||
|
||||
for tile_uuid, tile in tiles.items():
|
||||
|
@ -78,13 +78,13 @@ async def async_setup_scanner(
|
||||
return True
|
||||
|
||||
|
||||
class TileDeviceTracker(CoordinatorEntity, TrackerEntity):
|
||||
class TileDeviceTracker(CoordinatorEntity[DataUpdateCoordinator[None]], TrackerEntity):
|
||||
"""Representation of a network infrastructure device."""
|
||||
|
||||
_attr_icon = DEFAULT_ICON
|
||||
|
||||
def __init__(
|
||||
self, entry: ConfigEntry, coordinator: DataUpdateCoordinator, tile: Tile
|
||||
self, entry: ConfigEntry, coordinator: DataUpdateCoordinator[None], tile: Tile
|
||||
) -> None:
|
||||
"""Initialize."""
|
||||
super().__init__(coordinator)
|
||||
|
@ -1,7 +1,9 @@
|
||||
"""Support for Twente Milieu Calendar."""
|
||||
from __future__ import annotations
|
||||
|
||||
from datetime import datetime
|
||||
from datetime import date, datetime
|
||||
|
||||
from twentemilieu import WasteType
|
||||
|
||||
from homeassistant.components.calendar import CalendarEntity, CalendarEvent
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
@ -33,7 +35,7 @@ class TwenteMilieuCalendar(TwenteMilieuEntity, CalendarEntity):
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
coordinator: DataUpdateCoordinator,
|
||||
coordinator: DataUpdateCoordinator[dict[WasteType, list[date]]],
|
||||
entry: ConfigEntry,
|
||||
) -> None:
|
||||
"""Initialize the Twente Milieu entity."""
|
||||
|
@ -1,8 +1,11 @@
|
||||
"""Diagnostics support for TwenteMilieu."""
|
||||
from __future__ import annotations
|
||||
|
||||
from datetime import date
|
||||
from typing import Any
|
||||
|
||||
from twentemilieu import WasteType
|
||||
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import CONF_ID
|
||||
from homeassistant.core import HomeAssistant
|
||||
@ -15,8 +18,10 @@ async def async_get_config_entry_diagnostics(
|
||||
hass: HomeAssistant, entry: ConfigEntry
|
||||
) -> dict[str, Any]:
|
||||
"""Return diagnostics for a config entry."""
|
||||
coordinator: DataUpdateCoordinator = hass.data[DOMAIN][entry.data[CONF_ID]]
|
||||
coordinator: DataUpdateCoordinator[dict[WasteType, list[date]]] = hass.data[DOMAIN][
|
||||
entry.data[CONF_ID]
|
||||
]
|
||||
return {
|
||||
waste_type: [waste_date.isoformat() for waste_date in waste_dates]
|
||||
str(waste_type): [waste_date.isoformat() for waste_date in waste_dates]
|
||||
for waste_type, waste_dates in coordinator.data.items()
|
||||
}
|
||||
|
@ -93,7 +93,7 @@ class TwenteMilieuSensor(TwenteMilieuEntity, SensorEntity):
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
coordinator: DataUpdateCoordinator,
|
||||
coordinator: DataUpdateCoordinator[dict[WasteType, list[date]]],
|
||||
description: TwenteMilieuSensorDescription,
|
||||
entry: ConfigEntry,
|
||||
) -> None:
|
||||
|
@ -1,4 +1,6 @@
|
||||
"""WiZ integration models."""
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass
|
||||
|
||||
from pywizlight import wizlight
|
||||
@ -10,6 +12,6 @@ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
|
||||
class WizData:
|
||||
"""Data for the wiz integration."""
|
||||
|
||||
coordinator: DataUpdateCoordinator
|
||||
coordinator: DataUpdateCoordinator[float | None]
|
||||
bulb: wizlight
|
||||
scenes: list
|
||||
|
@ -4,6 +4,7 @@ from __future__ import annotations
|
||||
from dataclasses import dataclass
|
||||
from datetime import timedelta
|
||||
import logging
|
||||
from typing import Any
|
||||
|
||||
import async_timeout
|
||||
from miio import (
|
||||
@ -289,7 +290,7 @@ async def async_create_miio_device_and_coordinator(
|
||||
device: MiioDevice | None = None
|
||||
migrate = False
|
||||
update_method = _async_update_data_default
|
||||
coordinator_class: type[DataUpdateCoordinator] = DataUpdateCoordinator
|
||||
coordinator_class: type[DataUpdateCoordinator[Any]] = DataUpdateCoordinator
|
||||
|
||||
if (
|
||||
model not in MODELS_HUMIDIFIER
|
||||
|
@ -16,9 +16,9 @@ async def test_diagnostics(
|
||||
assert await get_diagnostics_for_config_entry(
|
||||
hass, hass_client, init_integration
|
||||
) == {
|
||||
"0": ["2021-11-01", "2021-12-01"],
|
||||
"1": ["2021-11-02"],
|
||||
"2": [],
|
||||
"6": ["2022-01-06"],
|
||||
"10": ["2021-11-03"],
|
||||
"WasteType.NON_RECYCLABLE": ["2021-11-01", "2021-12-01"],
|
||||
"WasteType.ORGANIC": ["2021-11-02"],
|
||||
"WasteType.PAPER": [],
|
||||
"WasteType.TREE": ["2022-01-06"],
|
||||
"WasteType.PACKAGES": ["2021-11-03"],
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user