diff --git a/homeassistant/components/nextdns/binary_sensor.py b/homeassistant/components/nextdns/binary_sensor.py index 1bb79cf4fce..c4ab58537cd 100644 --- a/homeassistant/components/nextdns/binary_sensor.py +++ b/homeassistant/components/nextdns/binary_sensor.py @@ -25,20 +25,14 @@ from .coordinator import CoordinatorDataT, NextDnsConnectionUpdateCoordinator PARALLEL_UPDATES = 1 -@dataclass(frozen=True) -class NextDnsBinarySensorRequiredKeysMixin(Generic[CoordinatorDataT]): - """Mixin for required keys.""" - - state: Callable[[CoordinatorDataT, str], bool] - - -@dataclass(frozen=True) +@dataclass(frozen=True, kw_only=True) class NextDnsBinarySensorEntityDescription( - BinarySensorEntityDescription, - NextDnsBinarySensorRequiredKeysMixin[CoordinatorDataT], + BinarySensorEntityDescription, Generic[CoordinatorDataT] ): """NextDNS binary sensor entity description.""" + state: Callable[[CoordinatorDataT, str], bool] + SENSORS = ( NextDnsBinarySensorEntityDescription[ConnectionStatus]( diff --git a/homeassistant/components/nextdns/sensor.py b/homeassistant/components/nextdns/sensor.py index 3ac2179ed31..a034901aa41 100644 --- a/homeassistant/components/nextdns/sensor.py +++ b/homeassistant/components/nextdns/sensor.py @@ -39,22 +39,16 @@ from .coordinator import CoordinatorDataT, NextDnsUpdateCoordinator PARALLEL_UPDATES = 1 -@dataclass(frozen=True) -class NextDnsSensorRequiredKeysMixin(Generic[CoordinatorDataT]): - """Class for NextDNS entity required keys.""" +@dataclass(frozen=True, kw_only=True) +class NextDnsSensorEntityDescription( + SensorEntityDescription, Generic[CoordinatorDataT] +): + """NextDNS sensor entity description.""" coordinator_type: str value: Callable[[CoordinatorDataT], StateType] -@dataclass(frozen=True) -class NextDnsSensorEntityDescription( - SensorEntityDescription, - NextDnsSensorRequiredKeysMixin[CoordinatorDataT], -): - """NextDNS sensor entity description.""" - - SENSORS: tuple[NextDnsSensorEntityDescription, ...] = ( NextDnsSensorEntityDescription[AnalyticsStatus]( key="all_queries", diff --git a/homeassistant/components/nextdns/switch.py b/homeassistant/components/nextdns/switch.py index dfb796efd8c..a6bbead131e 100644 --- a/homeassistant/components/nextdns/switch.py +++ b/homeassistant/components/nextdns/switch.py @@ -24,19 +24,14 @@ from .coordinator import CoordinatorDataT, NextDnsSettingsUpdateCoordinator PARALLEL_UPDATES = 1 -@dataclass(frozen=True) -class NextDnsSwitchRequiredKeysMixin(Generic[CoordinatorDataT]): - """Class for NextDNS entity required keys.""" - - state: Callable[[CoordinatorDataT], bool] - - -@dataclass(frozen=True) +@dataclass(frozen=True, kw_only=True) class NextDnsSwitchEntityDescription( - SwitchEntityDescription, NextDnsSwitchRequiredKeysMixin[CoordinatorDataT] + SwitchEntityDescription, Generic[CoordinatorDataT] ): """NextDNS switch entity description.""" + state: Callable[[CoordinatorDataT], bool] + SWITCHES = ( NextDnsSwitchEntityDescription[Settings](