Remove entity description mixin in Roku (#112931)

This commit is contained in:
Joost Lekkerkerker 2024-03-10 17:46:40 +01:00 committed by GitHub
parent 85bc72f9f1
commit b59bba8951
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 12 additions and 33 deletions

View file

@ -19,15 +19,6 @@ from .entity import RokuEntity
from .helpers import format_channel_name, roku_exception_handler
@dataclass(frozen=True)
class RokuSelectEntityDescriptionMixin:
"""Mixin for required keys."""
options_fn: Callable[[RokuDevice], list[str]]
value_fn: Callable[[RokuDevice], str | None]
set_fn: Callable[[RokuDevice, Roku, str], Awaitable[None]]
def _get_application_name(device: RokuDevice) -> str | None:
if device.app is None or device.app.name is None:
return None
@ -86,12 +77,14 @@ async def _tune_channel(device: RokuDevice, roku: Roku, value: str) -> None:
await roku.tune(_channel.number)
@dataclass(frozen=True)
class RokuSelectEntityDescription(
SelectEntityDescription, RokuSelectEntityDescriptionMixin
):
@dataclass(frozen=True, kw_only=True)
class RokuSelectEntityDescription(SelectEntityDescription):
"""Describes Roku select entity."""
options_fn: Callable[[RokuDevice], list[str]]
value_fn: Callable[[RokuDevice], str | None]
set_fn: Callable[[RokuDevice, Roku, str], Awaitable[None]]
ENTITIES: tuple[RokuSelectEntityDescription, ...] = (
RokuSelectEntityDescription(