diff --git a/homeassistant/components/nextdns/coordinator.py b/homeassistant/components/nextdns/coordinator.py index 3bc5dfe60d1..9b82e82ffe0 100644 --- a/homeassistant/components/nextdns/coordinator.py +++ b/homeassistant/components/nextdns/coordinator.py @@ -4,7 +4,7 @@ from __future__ import annotations from datetime import timedelta import logging -from typing import TYPE_CHECKING, TypeVar +from typing import TYPE_CHECKING from aiohttp.client_exceptions import ClientConnectorError from nextdns import ( @@ -33,10 +33,10 @@ from .const import DOMAIN _LOGGER = logging.getLogger(__name__) -CoordinatorDataT = TypeVar("CoordinatorDataT", bound=NextDnsData) - -class NextDnsUpdateCoordinator(DataUpdateCoordinator[CoordinatorDataT]): +class NextDnsUpdateCoordinator[CoordinatorDataT: NextDnsData]( + DataUpdateCoordinator[CoordinatorDataT] +): """Class to manage fetching NextDNS data API.""" config_entry: NextDnsConfigEntry diff --git a/homeassistant/components/nextdns/entity.py b/homeassistant/components/nextdns/entity.py index 26e0a5dd9ef..7e86d1d246c 100644 --- a/homeassistant/components/nextdns/entity.py +++ b/homeassistant/components/nextdns/entity.py @@ -1,14 +1,18 @@ """Define NextDNS entities.""" +from nextdns.model import NextDnsData + from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo from homeassistant.helpers.entity import EntityDescription from homeassistant.helpers.update_coordinator import CoordinatorEntity from .const import DOMAIN -from .coordinator import CoordinatorDataT, NextDnsUpdateCoordinator +from .coordinator import NextDnsUpdateCoordinator -class NextDnsEntity(CoordinatorEntity[NextDnsUpdateCoordinator[CoordinatorDataT]]): +class NextDnsEntity[CoordinatorDataT: NextDnsData]( + CoordinatorEntity[NextDnsUpdateCoordinator[CoordinatorDataT]] +): """Define NextDNS entity.""" _attr_has_entity_name = True diff --git a/homeassistant/components/nextdns/sensor.py b/homeassistant/components/nextdns/sensor.py index b03f262cbeb..1b43f7c9c25 100644 --- a/homeassistant/components/nextdns/sensor.py +++ b/homeassistant/components/nextdns/sensor.py @@ -4,7 +4,6 @@ from __future__ import annotations from collections.abc import Callable from dataclasses import dataclass -from typing import Generic from nextdns import ( AnalyticsDnssec, @@ -13,6 +12,7 @@ from nextdns import ( AnalyticsProtocols, AnalyticsStatus, ) +from nextdns.model import NextDnsData from homeassistant.components.sensor import ( SensorEntity, @@ -32,15 +32,14 @@ from .const import ( ATTR_PROTOCOLS, ATTR_STATUS, ) -from .coordinator import CoordinatorDataT from .entity import NextDnsEntity PARALLEL_UPDATES = 0 @dataclass(frozen=True, kw_only=True) -class NextDnsSensorEntityDescription( - SensorEntityDescription, Generic[CoordinatorDataT] +class NextDnsSensorEntityDescription[CoordinatorDataT: NextDnsData]( + SensorEntityDescription ): """NextDNS sensor entity description.""" @@ -297,10 +296,12 @@ async def async_setup_entry( ) -class NextDnsSensor(NextDnsEntity, SensorEntity): +class NextDnsSensor[CoordinatorDataT: NextDnsData]( + NextDnsEntity[CoordinatorDataT], SensorEntity +): """Define an NextDNS sensor.""" - entity_description: NextDnsSensorEntityDescription + entity_description: NextDnsSensorEntityDescription[CoordinatorDataT] @property def native_value(self) -> StateType: