diff --git a/homeassistant/components/here_travel_time/const.py b/homeassistant/components/here_travel_time/const.py index 300bbf617cf..a2a14a445d7 100644 --- a/homeassistant/components/here_travel_time/const.py +++ b/homeassistant/components/here_travel_time/const.py @@ -1,4 +1,6 @@ """Constants for the HERE Travel Time integration.""" +from typing import Final + DOMAIN = "here_travel_time" DEFAULT_SCAN_INTERVAL = 300 @@ -51,11 +53,11 @@ ICONS = { TRAVEL_MODE_TRUCK: ICON_TRUCK, } -ATTR_DURATION = "duration" -ATTR_DISTANCE = "distance" -ATTR_ORIGIN = "origin" -ATTR_DESTINATION = "destination" +ATTR_DURATION: Final = "duration" +ATTR_DISTANCE: Final = "distance" +ATTR_ORIGIN: Final = "origin" +ATTR_DESTINATION: Final = "destination" -ATTR_DURATION_IN_TRAFFIC = "duration_in_traffic" -ATTR_ORIGIN_NAME = "origin_name" -ATTR_DESTINATION_NAME = "destination_name" +ATTR_DURATION_IN_TRAFFIC: Final = "duration_in_traffic" +ATTR_ORIGIN_NAME: Final = "origin_name" +ATTR_DESTINATION_NAME: Final = "destination_name" diff --git a/homeassistant/components/here_travel_time/coordinator.py b/homeassistant/components/here_travel_time/coordinator.py index 56430d79a22..e8eee4054ec 100644 --- a/homeassistant/components/here_travel_time/coordinator.py +++ b/homeassistant/components/here_travel_time/coordinator.py @@ -3,7 +3,7 @@ from __future__ import annotations from datetime import datetime, time, timedelta import logging -from typing import Any +from typing import Any, Optional import here_routing from here_routing import ( @@ -40,7 +40,7 @@ BACKOFF_MULTIPLIER = 1.1 _LOGGER = logging.getLogger(__name__) -class HERERoutingDataUpdateCoordinator(DataUpdateCoordinator): +class HERERoutingDataUpdateCoordinator(DataUpdateCoordinator[HERETravelTimeData]): """here_routing DataUpdateCoordinator.""" def __init__( @@ -59,7 +59,7 @@ class HERERoutingDataUpdateCoordinator(DataUpdateCoordinator): self._api = HERERoutingApi(api_key) self.config = config - async def _async_update_data(self) -> HERETravelTimeData | None: + async def _async_update_data(self) -> HERETravelTimeData: """Get the latest data from the HERE Routing API.""" origin, destination, arrival, departure = prepare_parameters( self.hass, self.config @@ -144,7 +144,9 @@ class HERERoutingDataUpdateCoordinator(DataUpdateCoordinator): ) -class HERETransitDataUpdateCoordinator(DataUpdateCoordinator): +class HERETransitDataUpdateCoordinator( + DataUpdateCoordinator[Optional[HERETravelTimeData]] +): """HERETravelTime DataUpdateCoordinator.""" def __init__( diff --git a/homeassistant/components/here_travel_time/sensor.py b/homeassistant/components/here_travel_time/sensor.py index 445efb92dcf..ced0e9bea39 100644 --- a/homeassistant/components/here_travel_time/sensor.py +++ b/homeassistant/components/here_travel_time/sensor.py @@ -3,7 +3,7 @@ from __future__ import annotations from collections.abc import Mapping from datetime import timedelta -from typing import Any +from typing import Any, Union from homeassistant.components.sensor import ( RestoreSensor, @@ -102,7 +102,12 @@ async def async_setup_entry( async_add_entities(sensors) -class HERETravelTimeSensor(CoordinatorEntity, RestoreSensor): +class HERETravelTimeSensor( + CoordinatorEntity[ + Union[HERERoutingDataUpdateCoordinator, HERETransitDataUpdateCoordinator] + ], + RestoreSensor, +): """Representation of a HERE travel time sensor.""" def __init__( @@ -144,7 +149,7 @@ class HERETravelTimeSensor(CoordinatorEntity, RestoreSensor): def _handle_coordinator_update(self) -> None: """Handle updated data from the coordinator.""" if self.coordinator.data is not None: - self._attr_native_value = self.coordinator.data.get( + self._attr_native_value = self.coordinator.data.get( # type: ignore[assignment] self.entity_description.key ) self.async_write_ha_state()