From 354fc4c1aed51b4f1a9d72257906b550471255d9 Mon Sep 17 00:00:00 2001 From: Marc Mueller <30130371+cdce8p@users.noreply.github.com> Date: Mon, 21 Mar 2022 14:13:16 +0100 Subject: [PATCH] Update coordinator typing (2) [e-f] (#68462) --- homeassistant/components/eight_sleep/__init__.py | 7 ++++++- homeassistant/components/elgato/light.py | 8 ++++---- homeassistant/components/elmax/common.py | 4 +--- .../components/evil_genius_labs/__init__.py | 16 +++++++--------- homeassistant/components/ezviz/binary_sensor.py | 2 -- homeassistant/components/ezviz/camera.py | 2 -- homeassistant/components/ezviz/entity.py | 2 +- homeassistant/components/ezviz/switch.py | 1 - homeassistant/components/fivem/__init__.py | 3 +-- homeassistant/components/flux_led/entity.py | 4 +--- homeassistant/components/flux_led/light.py | 4 +++- homeassistant/components/flux_led/number.py | 8 ++++++-- homeassistant/components/flux_led/switch.py | 4 +++- homeassistant/components/fritz/common.py | 2 +- homeassistant/components/fritzbox/__init__.py | 4 +--- homeassistant/components/fronius/sensor.py | 3 +-- 16 files changed, 36 insertions(+), 38 deletions(-) diff --git a/homeassistant/components/eight_sleep/__init__.py b/homeassistant/components/eight_sleep/__init__.py index 3c08a75448f..6d99ba59735 100644 --- a/homeassistant/components/eight_sleep/__init__.py +++ b/homeassistant/components/eight_sleep/__init__.py @@ -3,6 +3,7 @@ from __future__ import annotations from datetime import timedelta import logging +from typing import Union from pyeight.eight import EightSleep from pyeight.user import EightUser @@ -227,7 +228,11 @@ class EightSleepUserDataCoordinator(DataUpdateCoordinator): await self.api.update_user_data() -class EightSleepBaseEntity(CoordinatorEntity): +class EightSleepBaseEntity( + CoordinatorEntity[ + Union[EightSleepUserDataCoordinator, EightSleepHeatDataCoordinator] + ] +): """The base Eight Sleep entity class.""" def __init__( diff --git a/homeassistant/components/elgato/light.py b/homeassistant/components/elgato/light.py index cc3dd93d9c4..d9f73963870 100644 --- a/homeassistant/components/elgato/light.py +++ b/homeassistant/components/elgato/light.py @@ -61,14 +61,14 @@ async def async_setup_entry( ) -class ElgatoLight(ElgatoEntity, CoordinatorEntity, LightEntity): +class ElgatoLight( + ElgatoEntity, CoordinatorEntity[DataUpdateCoordinator[State]], LightEntity +): """Defines an Elgato Light.""" - coordinator: DataUpdateCoordinator[State] - def __init__( self, - coordinator: DataUpdateCoordinator, + coordinator: DataUpdateCoordinator[State], client: Elgato, info: Info, mac: str | None, diff --git a/homeassistant/components/elmax/common.py b/homeassistant/components/elmax/common.py index e9854cc5d7a..2d66ca9f72e 100644 --- a/homeassistant/components/elmax/common.py +++ b/homeassistant/components/elmax/common.py @@ -116,11 +116,9 @@ class ElmaxCoordinator(DataUpdateCoordinator[PanelStatus]): ) from err -class ElmaxEntity(CoordinatorEntity): +class ElmaxEntity(CoordinatorEntity[ElmaxCoordinator]): """Wrapper for Elmax entities.""" - coordinator: ElmaxCoordinator - def __init__( self, panel: PanelEntry, diff --git a/homeassistant/components/evil_genius_labs/__init__.py b/homeassistant/components/evil_genius_labs/__init__.py index 2fbd85938f0..ff858db566a 100644 --- a/homeassistant/components/evil_genius_labs/__init__.py +++ b/homeassistant/components/evil_genius_labs/__init__.py @@ -11,12 +11,12 @@ import pyevilgenius from homeassistant.config_entries import ConfigEntry from homeassistant.const import Platform from homeassistant.core import HomeAssistant -from homeassistant.helpers import ( - aiohttp_client, - device_registry as dr, - update_coordinator, -) +from homeassistant.helpers import aiohttp_client, device_registry as dr from homeassistant.helpers.entity import DeviceInfo +from homeassistant.helpers.update_coordinator import ( + CoordinatorEntity, + DataUpdateCoordinator, +) from .const import DOMAIN @@ -49,7 +49,7 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: return unload_ok -class EvilGeniusUpdateCoordinator(update_coordinator.DataUpdateCoordinator[dict]): +class EvilGeniusUpdateCoordinator(DataUpdateCoordinator[dict]): """Update coordinator for Evil Genius data.""" info: dict @@ -81,11 +81,9 @@ class EvilGeniusUpdateCoordinator(update_coordinator.DataUpdateCoordinator[dict] return cast(dict, await self.client.get_data()) -class EvilGeniusEntity(update_coordinator.CoordinatorEntity): +class EvilGeniusEntity(CoordinatorEntity[EvilGeniusUpdateCoordinator]): """Base entity for Evil Genius.""" - coordinator: EvilGeniusUpdateCoordinator - @property def device_info(self) -> DeviceInfo: """Return device info.""" diff --git a/homeassistant/components/ezviz/binary_sensor.py b/homeassistant/components/ezviz/binary_sensor.py index 942ceeecdb2..43ac914a50c 100644 --- a/homeassistant/components/ezviz/binary_sensor.py +++ b/homeassistant/components/ezviz/binary_sensor.py @@ -54,8 +54,6 @@ async def async_setup_entry( class EzvizBinarySensor(EzvizEntity, BinarySensorEntity): """Representation of a Ezviz sensor.""" - coordinator: EzvizDataUpdateCoordinator - def __init__( self, coordinator: EzvizDataUpdateCoordinator, diff --git a/homeassistant/components/ezviz/camera.py b/homeassistant/components/ezviz/camera.py index 6680466ecf0..58b45eeafd3 100644 --- a/homeassistant/components/ezviz/camera.py +++ b/homeassistant/components/ezviz/camera.py @@ -228,8 +228,6 @@ async def async_setup_entry( class EzvizCamera(EzvizEntity, Camera): """An implementation of a Ezviz security camera.""" - coordinator: EzvizDataUpdateCoordinator - def __init__( self, hass: HomeAssistant, diff --git a/homeassistant/components/ezviz/entity.py b/homeassistant/components/ezviz/entity.py index 288c4a5d9eb..2ab42a93286 100644 --- a/homeassistant/components/ezviz/entity.py +++ b/homeassistant/components/ezviz/entity.py @@ -10,7 +10,7 @@ from .const import DOMAIN, MANUFACTURER from .coordinator import EzvizDataUpdateCoordinator -class EzvizEntity(CoordinatorEntity, Entity): +class EzvizEntity(CoordinatorEntity[EzvizDataUpdateCoordinator], Entity): """Generic entity encapsulating common features of Ezviz device.""" def __init__( diff --git a/homeassistant/components/ezviz/switch.py b/homeassistant/components/ezviz/switch.py index ea8f1e83f70..c2e562f62da 100644 --- a/homeassistant/components/ezviz/switch.py +++ b/homeassistant/components/ezviz/switch.py @@ -39,7 +39,6 @@ async def async_setup_entry( class EzvizSwitch(EzvizEntity, SwitchEntity): """Representation of a Ezviz sensor.""" - coordinator: EzvizDataUpdateCoordinator _attr_device_class = SwitchDeviceClass.SWITCH def __init__( diff --git a/homeassistant/components/fivem/__init__.py b/homeassistant/components/fivem/__init__.py index 2004aacd165..1fe5ccf0b8f 100644 --- a/homeassistant/components/fivem/__init__.py +++ b/homeassistant/components/fivem/__init__.py @@ -128,10 +128,9 @@ class FiveMEntityDescription(EntityDescription): extra_attrs: list[str] | None = None -class FiveMEntity(CoordinatorEntity): +class FiveMEntity(CoordinatorEntity[FiveMDataUpdateCoordinator]): """Representation of a FiveM base entity.""" - coordinator: FiveMDataUpdateCoordinator entity_description: FiveMEntityDescription def __init__( diff --git a/homeassistant/components/flux_led/entity.py b/homeassistant/components/flux_led/entity.py index da92931d1e6..6a77dba948c 100644 --- a/homeassistant/components/flux_led/entity.py +++ b/homeassistant/components/flux_led/entity.py @@ -66,11 +66,9 @@ class FluxBaseEntity(Entity): self._attr_device_info = _async_device_info(self._device, entry) -class FluxEntity(CoordinatorEntity): +class FluxEntity(CoordinatorEntity[FluxLedUpdateCoordinator]): """Representation of a Flux entity with a coordinator.""" - coordinator: FluxLedUpdateCoordinator - def __init__( self, coordinator: FluxLedUpdateCoordinator, diff --git a/homeassistant/components/flux_led/light.py b/homeassistant/components/flux_led/light.py index 0d179cd2b77..2942a13c734 100644 --- a/homeassistant/components/flux_led/light.py +++ b/homeassistant/components/flux_led/light.py @@ -187,7 +187,9 @@ async def async_setup_entry( ) -class FluxLight(FluxOnOffEntity, CoordinatorEntity, LightEntity): +class FluxLight( + FluxOnOffEntity, CoordinatorEntity[FluxLedUpdateCoordinator], LightEntity +): """Representation of a Flux light.""" _attr_supported_features = SUPPORT_TRANSITION | SUPPORT_EFFECT diff --git a/homeassistant/components/flux_led/number.py b/homeassistant/components/flux_led/number.py index b4e6e87a829..06f706aee21 100644 --- a/homeassistant/components/flux_led/number.py +++ b/homeassistant/components/flux_led/number.py @@ -92,7 +92,9 @@ async def async_setup_entry( async_add_entities(entities) -class FluxSpeedNumber(FluxEntity, CoordinatorEntity, NumberEntity): +class FluxSpeedNumber( + FluxEntity, CoordinatorEntity[FluxLedUpdateCoordinator], NumberEntity +): """Defines a flux_led speed number.""" _attr_min_value = 1 @@ -122,7 +124,9 @@ class FluxSpeedNumber(FluxEntity, CoordinatorEntity, NumberEntity): await self.coordinator.async_request_refresh() -class FluxConfigNumber(FluxEntity, CoordinatorEntity, NumberEntity): +class FluxConfigNumber( + FluxEntity, CoordinatorEntity[FluxLedUpdateCoordinator], NumberEntity +): """Base class for flux config numbers.""" _attr_entity_category = EntityCategory.CONFIG diff --git a/homeassistant/components/flux_led/switch.py b/homeassistant/components/flux_led/switch.py index e8c34f12b11..18b079beff9 100644 --- a/homeassistant/components/flux_led/switch.py +++ b/homeassistant/components/flux_led/switch.py @@ -52,7 +52,9 @@ async def async_setup_entry( async_add_entities(entities) -class FluxSwitch(FluxOnOffEntity, CoordinatorEntity, SwitchEntity): +class FluxSwitch( + FluxOnOffEntity, CoordinatorEntity[FluxLedUpdateCoordinator], SwitchEntity +): """Representation of a Flux switch.""" async def _async_turn_on(self, **kwargs: Any) -> None: diff --git a/homeassistant/components/fritz/common.py b/homeassistant/components/fritz/common.py index 21039d45afa..514697a32f9 100644 --- a/homeassistant/components/fritz/common.py +++ b/homeassistant/components/fritz/common.py @@ -817,7 +817,7 @@ class FritzData: profile_switches: dict = field(default_factory=dict) -class FritzDeviceBase(update_coordinator.CoordinatorEntity): +class FritzDeviceBase(update_coordinator.CoordinatorEntity[AvmWrapper]): """Entity base class for a device connected to a FRITZ!Box device.""" def __init__(self, avm_wrapper: AvmWrapper, device: FritzDevice) -> None: diff --git a/homeassistant/components/fritzbox/__init__.py b/homeassistant/components/fritzbox/__init__.py index e5ef4536bc4..7bb71e52560 100644 --- a/homeassistant/components/fritzbox/__init__.py +++ b/homeassistant/components/fritzbox/__init__.py @@ -93,11 +93,9 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: return unload_ok -class FritzBoxEntity(CoordinatorEntity): +class FritzBoxEntity(CoordinatorEntity[FritzboxDataUpdateCoordinator]): """Basis FritzBox entity.""" - coordinator: FritzboxDataUpdateCoordinator - def __init__( self, coordinator: FritzboxDataUpdateCoordinator, diff --git a/homeassistant/components/fronius/sensor.py b/homeassistant/components/fronius/sensor.py index a266998a9b5..0e00bbd135e 100644 --- a/homeassistant/components/fronius/sensor.py +++ b/homeassistant/components/fronius/sensor.py @@ -691,10 +691,9 @@ STORAGE_ENTITY_DESCRIPTIONS: list[SensorEntityDescription] = [ ] -class _FroniusSensorEntity(CoordinatorEntity, SensorEntity): +class _FroniusSensorEntity(CoordinatorEntity["FroniusCoordinatorBase"], SensorEntity): """Defines a Fronius coordinator entity.""" - coordinator: FroniusCoordinatorBase entity_descriptions: list[SensorEntityDescription] _entity_id_prefix: str