Skip to content

Commit 73d0d87

Browse files
authored
Use PEP 695 TypeVar syntax for nextdns (home-assistant#147155)
1 parent b8dfb2c commit 73d0d87

File tree

3 files changed

+17
-12
lines changed

3 files changed

+17
-12
lines changed

homeassistant/components/nextdns/coordinator.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
from datetime import timedelta
66
import logging
7-
from typing import TYPE_CHECKING, TypeVar
7+
from typing import TYPE_CHECKING
88

99
from aiohttp.client_exceptions import ClientConnectorError
1010
from nextdns import (
@@ -33,10 +33,10 @@
3333

3434
_LOGGER = logging.getLogger(__name__)
3535

36-
CoordinatorDataT = TypeVar("CoordinatorDataT", bound=NextDnsData)
3736

38-
39-
class NextDnsUpdateCoordinator(DataUpdateCoordinator[CoordinatorDataT]):
37+
class NextDnsUpdateCoordinator[CoordinatorDataT: NextDnsData](
38+
DataUpdateCoordinator[CoordinatorDataT]
39+
):
4040
"""Class to manage fetching NextDNS data API."""
4141

4242
config_entry: NextDnsConfigEntry

homeassistant/components/nextdns/entity.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
11
"""Define NextDNS entities."""
22

3+
from nextdns.model import NextDnsData
4+
35
from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
46
from homeassistant.helpers.entity import EntityDescription
57
from homeassistant.helpers.update_coordinator import CoordinatorEntity
68

79
from .const import DOMAIN
8-
from .coordinator import CoordinatorDataT, NextDnsUpdateCoordinator
10+
from .coordinator import NextDnsUpdateCoordinator
911

1012

11-
class NextDnsEntity(CoordinatorEntity[NextDnsUpdateCoordinator[CoordinatorDataT]]):
13+
class NextDnsEntity[CoordinatorDataT: NextDnsData](
14+
CoordinatorEntity[NextDnsUpdateCoordinator[CoordinatorDataT]]
15+
):
1216
"""Define NextDNS entity."""
1317

1418
_attr_has_entity_name = True

homeassistant/components/nextdns/sensor.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
from collections.abc import Callable
66
from dataclasses import dataclass
7-
from typing import Generic
87

98
from nextdns import (
109
AnalyticsDnssec,
@@ -13,6 +12,7 @@
1312
AnalyticsProtocols,
1413
AnalyticsStatus,
1514
)
15+
from nextdns.model import NextDnsData
1616

1717
from homeassistant.components.sensor import (
1818
SensorEntity,
@@ -32,15 +32,14 @@
3232
ATTR_PROTOCOLS,
3333
ATTR_STATUS,
3434
)
35-
from .coordinator import CoordinatorDataT
3635
from .entity import NextDnsEntity
3736

3837
PARALLEL_UPDATES = 0
3938

4039

4140
@dataclass(frozen=True, kw_only=True)
42-
class NextDnsSensorEntityDescription(
43-
SensorEntityDescription, Generic[CoordinatorDataT]
41+
class NextDnsSensorEntityDescription[CoordinatorDataT: NextDnsData](
42+
SensorEntityDescription
4443
):
4544
"""NextDNS sensor entity description."""
4645

@@ -297,10 +296,12 @@ async def async_setup_entry(
297296
)
298297

299298

300-
class NextDnsSensor(NextDnsEntity, SensorEntity):
299+
class NextDnsSensor[CoordinatorDataT: NextDnsData](
300+
NextDnsEntity[CoordinatorDataT], SensorEntity
301+
):
301302
"""Define an NextDNS sensor."""
302303

303-
entity_description: NextDnsSensorEntityDescription
304+
entity_description: NextDnsSensorEntityDescription[CoordinatorDataT]
304305

305306
@property
306307
def native_value(self) -> StateType:

0 commit comments

Comments
 (0)