Improve DataUpdateCoordinator typing in integrations (6) (#84741)

pull/84761/head
Marc Mueller 2022-12-29 09:07:23 +01:00 committed by GitHub
parent 9c2c57831b
commit fa7018bbec
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 22 additions and 10 deletions

View File

@ -4,6 +4,8 @@ from __future__ import annotations
import dataclasses import dataclasses
from typing import Any from typing import Any
from aiorecollect.client import PickupEvent
from homeassistant.components.diagnostics import async_redact_data from homeassistant.components.diagnostics import async_redact_data
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_UNIQUE_ID from homeassistant.const import CONF_UNIQUE_ID
@ -28,7 +30,9 @@ async def async_get_config_entry_diagnostics(
hass: HomeAssistant, entry: ConfigEntry hass: HomeAssistant, entry: ConfigEntry
) -> dict[str, Any]: ) -> dict[str, Any]:
"""Return diagnostics for a config entry.""" """Return diagnostics for a config entry."""
coordinator: DataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id] coordinator: DataUpdateCoordinator[list[PickupEvent]] = hass.data[DOMAIN][
entry.entry_id
]
return async_redact_data( return async_redact_data(
{ {

View File

@ -1,7 +1,7 @@
"""Support for ReCollect Waste sensors.""" """Support for ReCollect Waste sensors."""
from __future__ import annotations from __future__ import annotations
from aiorecollect.client import PickupType from aiorecollect.client import PickupEvent, PickupType
from homeassistant.components.sensor import ( from homeassistant.components.sensor import (
SensorDeviceClass, SensorDeviceClass,
@ -54,7 +54,9 @@ async def async_setup_entry(
hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
) -> None: ) -> None:
"""Set up ReCollect Waste sensors based on a config entry.""" """Set up ReCollect Waste sensors based on a config entry."""
coordinator = hass.data[DOMAIN][entry.entry_id] coordinator: DataUpdateCoordinator[list[PickupEvent]] = hass.data[DOMAIN][
entry.entry_id
]
async_add_entities( async_add_entities(
[ [
@ -64,7 +66,9 @@ async def async_setup_entry(
) )
class ReCollectWasteSensor(CoordinatorEntity, SensorEntity): class ReCollectWasteSensor(
CoordinatorEntity[DataUpdateCoordinator[list[PickupEvent]]], SensorEntity
):
"""ReCollect Waste Sensor.""" """ReCollect Waste Sensor."""
_attr_device_class = SensorDeviceClass.DATE _attr_device_class = SensorDeviceClass.DATE
@ -72,7 +76,7 @@ class ReCollectWasteSensor(CoordinatorEntity, SensorEntity):
def __init__( def __init__(
self, self,
coordinator: DataUpdateCoordinator, coordinator: DataUpdateCoordinator[list[PickupEvent]],
entry: ConfigEntry, entry: ConfigEntry,
description: SensorEntityDescription, description: SensorEntityDescription,
) -> None: ) -> None:

View File

@ -49,7 +49,7 @@ class HomeAssistantSpotifyData:
client: Spotify client: Spotify
current_user: dict[str, Any] current_user: dict[str, Any]
devices: DataUpdateCoordinator devices: DataUpdateCoordinator[list[dict[str, Any]]]
session: OAuth2Session session: OAuth2Session

View File

@ -4,7 +4,7 @@ from __future__ import annotations
from collections.abc import Callable from collections.abc import Callable
from dataclasses import dataclass from dataclasses import dataclass
from datetime import datetime, timezone from datetime import datetime, timezone
from typing import cast from typing import Optional, cast
from whois import Domain from whois import Domain
@ -139,7 +139,9 @@ async def async_setup_entry(
async_add_entities: AddEntitiesCallback, async_add_entities: AddEntitiesCallback,
) -> None: ) -> None:
"""Set up the platform from config_entry.""" """Set up the platform from config_entry."""
coordinator = hass.data[DOMAIN][entry.entry_id] coordinator: DataUpdateCoordinator[Domain | None] = hass.data[DOMAIN][
entry.entry_id
]
async_add_entities( async_add_entities(
[ [
WhoisSensorEntity( WhoisSensorEntity(
@ -152,7 +154,9 @@ async def async_setup_entry(
) )
class WhoisSensorEntity(CoordinatorEntity, SensorEntity): class WhoisSensorEntity(
CoordinatorEntity[DataUpdateCoordinator[Optional[Domain]]], SensorEntity
):
"""Implementation of a WHOIS sensor.""" """Implementation of a WHOIS sensor."""
entity_description: WhoisSensorEntityDescription entity_description: WhoisSensorEntityDescription
@ -160,7 +164,7 @@ class WhoisSensorEntity(CoordinatorEntity, SensorEntity):
def __init__( def __init__(
self, self,
coordinator: DataUpdateCoordinator, coordinator: DataUpdateCoordinator[Domain | None],
description: WhoisSensorEntityDescription, description: WhoisSensorEntityDescription,
domain: str, domain: str,
) -> None: ) -> None: