From 54ba09ec1c068bbea5dc81ff28a9480036eabfb5 Mon Sep 17 00:00:00 2001 From: Marc Mueller <30130371+cdce8p@users.noreply.github.com> Date: Tue, 27 Dec 2022 21:17:35 +0100 Subject: [PATCH] Improve `ovo_energy` generic typing (#84641) --- homeassistant/components/ovo_energy/__init__.py | 6 +++--- homeassistant/components/ovo_energy/sensor.py | 17 +++++++---------- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/homeassistant/components/ovo_energy/__init__.py b/homeassistant/components/ovo_energy/__init__.py index cc19b0454b1..92d9aa118f0 100644 --- a/homeassistant/components/ovo_energy/__init__.py +++ b/homeassistant/components/ovo_energy/__init__.py @@ -61,7 +61,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: raise ConfigEntryAuthFailed("Not authenticated with OVO Energy") return await client.get_daily_usage(datetime.utcnow().strftime("%Y-%m")) - coordinator = DataUpdateCoordinator( + coordinator = DataUpdateCoordinator[OVODailyUsage]( hass, _LOGGER, # Name of the data. For logging purposes. @@ -96,12 +96,12 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: return unload_ok -class OVOEnergyEntity(CoordinatorEntity): +class OVOEnergyEntity(CoordinatorEntity[DataUpdateCoordinator[OVODailyUsage]]): """Defines a base OVO Energy entity.""" def __init__( self, - coordinator: DataUpdateCoordinator, + coordinator: DataUpdateCoordinator[OVODailyUsage], client: OVOEnergy, ) -> None: """Initialize the OVO Energy entity.""" diff --git a/homeassistant/components/ovo_energy/sensor.py b/homeassistant/components/ovo_energy/sensor.py index 6f3d463a1f4..2a4005e748f 100644 --- a/homeassistant/components/ovo_energy/sensor.py +++ b/homeassistant/components/ovo_energy/sensor.py @@ -115,9 +115,9 @@ async def async_setup_entry( hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback ) -> None: """Set up OVO Energy sensor based on a config entry.""" - coordinator: DataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id][ - DATA_COORDINATOR - ] + coordinator: DataUpdateCoordinator[OVODailyUsage] = hass.data[DOMAIN][ + entry.entry_id + ][DATA_COORDINATOR] client: OVOEnergy = hass.data[DOMAIN][entry.entry_id][DATA_CLIENT] entities = [] @@ -152,25 +152,22 @@ async def async_setup_entry( class OVOEnergySensor(OVOEnergyDeviceEntity, SensorEntity): """Define a OVO Energy sensor.""" - coordinator: DataUpdateCoordinator + coordinator: DataUpdateCoordinator[DataUpdateCoordinator[OVODailyUsage]] entity_description: OVOEnergySensorEntityDescription def __init__( self, - coordinator: DataUpdateCoordinator, + coordinator: DataUpdateCoordinator[OVODailyUsage], description: OVOEnergySensorEntityDescription, client: OVOEnergy, ) -> None: """Initialize.""" - super().__init__( - coordinator, - client, - ) + super().__init__(coordinator, client) self._attr_unique_id = f"{DOMAIN}_{client.account_id}_{description.key}" self.entity_description = description @property def native_value(self) -> StateType | datetime: """Return the state.""" - usage: OVODailyUsage = self.coordinator.data + usage = self.coordinator.data return self.entity_description.value(usage)