Improve type hints in environment_canada camera and weather (#136819)

This commit is contained in:
epenet 2025-01-29 11:39:40 +01:00 committed by GitHub
parent 3472e0e370
commit aa6ffb3da5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 11 additions and 6 deletions

View File

@ -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)

View File

@ -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