From aa6ffb3da56458975678a19e3f1e68cd807e5e0d Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Wed, 29 Jan 2025 11:39:40 +0100 Subject: [PATCH] Improve type hints in environment_canada camera and weather (#136819) --- homeassistant/components/environment_canada/camera.py | 7 ++++--- homeassistant/components/environment_canada/weather.py | 10 +++++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/homeassistant/components/environment_canada/camera.py b/homeassistant/components/environment_canada/camera.py index fd82ac97bea..3ba059e2206 100644 --- a/homeassistant/components/environment_canada/camera.py +++ b/homeassistant/components/environment_canada/camera.py @@ -2,6 +2,7 @@ from __future__ import annotations +from env_canada import ECRadar import voluptuous as vol from homeassistant.components.camera import Camera @@ -14,7 +15,7 @@ from homeassistant.helpers.typing import VolDictType from homeassistant.helpers.update_coordinator import CoordinatorEntity from .const import ATTR_OBSERVATION_TIME -from .coordinator import ECConfigEntry +from .coordinator import ECConfigEntry, ECDataUpdateCoordinator SERVICE_SET_RADAR_TYPE = "set_radar_type" SET_RADAR_TYPE_SCHEMA: VolDictType = { @@ -39,13 +40,13 @@ async def async_setup_entry( ) -class ECCameraEntity(CoordinatorEntity, Camera): +class ECCameraEntity(CoordinatorEntity[ECDataUpdateCoordinator[ECRadar]], Camera): """Implementation of an Environment Canada radar camera.""" _attr_has_entity_name = True _attr_translation_key = "radar" - def __init__(self, coordinator): + def __init__(self, coordinator: ECDataUpdateCoordinator[ECRadar]) -> None: """Initialize the camera.""" super().__init__(coordinator) Camera.__init__(self) diff --git a/homeassistant/components/environment_canada/weather.py b/homeassistant/components/environment_canada/weather.py index 5cfe32f18dd..156b9f4152b 100644 --- a/homeassistant/components/environment_canada/weather.py +++ b/homeassistant/components/environment_canada/weather.py @@ -4,6 +4,8 @@ from __future__ import annotations from typing import Any +from env_canada import ECWeather + from homeassistant.components.weather import ( ATTR_CONDITION_CLEAR_NIGHT, ATTR_CONDITION_CLOUDY, @@ -38,7 +40,7 @@ from homeassistant.helpers import entity_registry as er from homeassistant.helpers.entity_platform import AddEntitiesCallback from .const import DOMAIN -from .coordinator import ECConfigEntry +from .coordinator import ECConfigEntry, ECDataUpdateCoordinator # Icon codes from http://dd.weatheroffice.ec.gc.ca/citypage_weather/ # docs/current_conditions_icon_code_descriptions_e.csv @@ -82,7 +84,9 @@ def _calculate_unique_id(config_entry_unique_id: str | None, hourly: bool) -> st return f"{config_entry_unique_id}{'-hourly' if hourly else '-daily'}" -class ECWeatherEntity(SingleCoordinatorWeatherEntity): +class ECWeatherEntity( + SingleCoordinatorWeatherEntity[ECDataUpdateCoordinator[ECWeather]] +): """Representation of a weather condition.""" _attr_has_entity_name = True @@ -94,7 +98,7 @@ class ECWeatherEntity(SingleCoordinatorWeatherEntity): WeatherEntityFeature.FORECAST_DAILY | WeatherEntityFeature.FORECAST_HOURLY ) - def __init__(self, coordinator): + def __init__(self, coordinator: ECDataUpdateCoordinator[ECWeather]) -> None: """Initialize Environment Canada weather.""" super().__init__(coordinator) self.ec_data = coordinator.ec_data