From 24a34b1739eddf866fa0cfdea3daeb10a750c1e8 Mon Sep 17 00:00:00 2001 From: Marc Mueller <30130371+cdce8p@users.noreply.github.com> Date: Tue, 27 Dec 2022 21:17:20 +0100 Subject: [PATCH] Improve `rainbird` generic typing (#84642) --- homeassistant/components/rainbird/binary_sensor.py | 13 +++++++------ homeassistant/components/rainbird/sensor.py | 13 +++++++------ homeassistant/components/rainbird/switch.py | 4 +++- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/homeassistant/components/rainbird/binary_sensor.py b/homeassistant/components/rainbird/binary_sensor.py index c10b6a43d3f..02ea8b21bb1 100644 --- a/homeassistant/components/rainbird/binary_sensor.py +++ b/homeassistant/components/rainbird/binary_sensor.py @@ -2,6 +2,7 @@ from __future__ import annotations import logging +from typing import Union from homeassistant.components.binary_sensor import ( BinarySensorEntity, @@ -10,12 +11,10 @@ from homeassistant.components.binary_sensor import ( from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType -from homeassistant.helpers.update_coordinator import ( - CoordinatorEntity, - DataUpdateCoordinator, -) +from homeassistant.helpers.update_coordinator import CoordinatorEntity from .const import SENSOR_TYPE_RAINDELAY, SENSOR_TYPE_RAINSENSOR +from .coordinator import RainbirdUpdateCoordinator _LOGGER = logging.getLogger(__name__) @@ -53,12 +52,14 @@ async def async_setup_platform( ) -class RainBirdSensor(CoordinatorEntity, BinarySensorEntity): +class RainBirdSensor( + CoordinatorEntity[RainbirdUpdateCoordinator[Union[int, bool]]], BinarySensorEntity +): """A sensor implementation for Rain Bird device.""" def __init__( self, - coordinator: DataUpdateCoordinator, + coordinator: RainbirdUpdateCoordinator[int | bool], description: BinarySensorEntityDescription, ) -> None: """Initialize the Rain Bird sensor.""" diff --git a/homeassistant/components/rainbird/sensor.py b/homeassistant/components/rainbird/sensor.py index 7be91b15ed4..e1dd56d1fb3 100644 --- a/homeassistant/components/rainbird/sensor.py +++ b/homeassistant/components/rainbird/sensor.py @@ -2,17 +2,16 @@ from __future__ import annotations import logging +from typing import Union from homeassistant.components.sensor import SensorEntity, SensorEntityDescription from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType, StateType -from homeassistant.helpers.update_coordinator import ( - CoordinatorEntity, - DataUpdateCoordinator, -) +from homeassistant.helpers.update_coordinator import CoordinatorEntity from .const import SENSOR_TYPE_RAINDELAY, SENSOR_TYPE_RAINSENSOR +from .coordinator import RainbirdUpdateCoordinator _LOGGER = logging.getLogger(__name__) @@ -51,12 +50,14 @@ async def async_setup_platform( ) -class RainBirdSensor(CoordinatorEntity, SensorEntity): +class RainBirdSensor( + CoordinatorEntity[RainbirdUpdateCoordinator[Union[int, bool]]], SensorEntity +): """A sensor implementation for Rain Bird device.""" def __init__( self, - coordinator: DataUpdateCoordinator, + coordinator: RainbirdUpdateCoordinator[int | bool], description: SensorEntityDescription, ) -> None: """Initialize the Rain Bird sensor.""" diff --git a/homeassistant/components/rainbird/switch.py b/homeassistant/components/rainbird/switch.py index 50177c9a28c..5a9edee2753 100644 --- a/homeassistant/components/rainbird/switch.py +++ b/homeassistant/components/rainbird/switch.py @@ -113,7 +113,9 @@ async def async_setup_platform( ) -class RainBirdSwitch(CoordinatorEntity, SwitchEntity): +class RainBirdSwitch( + CoordinatorEntity[RainbirdUpdateCoordinator[States]], SwitchEntity +): """Representation of a Rain Bird switch.""" def __init__(