mirror of
https://github.com/home-assistant/core.git
synced 2025-07-14 16:57:10 +00:00
Improve typing in Yamaha (#123982)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
This commit is contained in:
parent
686d591f4f
commit
03968b44bd
@ -7,6 +7,7 @@ from typing import Any
|
||||
|
||||
import requests
|
||||
import rxv
|
||||
from rxv import RXV
|
||||
import voluptuous as vol
|
||||
|
||||
from homeassistant.components.media_player import (
|
||||
@ -112,7 +113,7 @@ class YamahaConfigInfo:
|
||||
self.from_discovery = True
|
||||
|
||||
|
||||
def _discovery(config_info):
|
||||
def _discovery(config_info: YamahaConfigInfo) -> list[RXV]:
|
||||
"""Discover list of zone controllers from configuration in the network."""
|
||||
if config_info.from_discovery:
|
||||
_LOGGER.debug("Discovery Zones")
|
||||
@ -163,6 +164,7 @@ async def async_setup_platform(
|
||||
_LOGGER.debug("Ignore receiver zone: %s %s", config_info.name, zctrl.zone)
|
||||
continue
|
||||
|
||||
assert config_info.name
|
||||
entity = YamahaDeviceZone(
|
||||
config_info.name,
|
||||
zctrl,
|
||||
@ -206,16 +208,24 @@ async def async_setup_platform(
|
||||
class YamahaDeviceZone(MediaPlayerEntity):
|
||||
"""Representation of a Yamaha device zone."""
|
||||
|
||||
def __init__(self, name, zctrl, source_ignore, source_names, zone_names):
|
||||
_reverse_mapping: dict[str, str]
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
name: str,
|
||||
zctrl: RXV,
|
||||
source_ignore: list[str] | None,
|
||||
source_names: dict[str, str] | None,
|
||||
zone_names: dict[str, str] | None,
|
||||
) -> None:
|
||||
"""Initialize the Yamaha Receiver."""
|
||||
self.zctrl = zctrl
|
||||
self._attr_is_volume_muted = False
|
||||
self._attr_volume_level = 0
|
||||
self._attr_state = MediaPlayerState.OFF
|
||||
self._source_ignore = source_ignore or []
|
||||
self._source_names = source_names or {}
|
||||
self._zone_names = zone_names or {}
|
||||
self._reverse_mapping = None
|
||||
self._source_ignore: list[str] = source_ignore or []
|
||||
self._source_names: dict[str, str] = source_names or {}
|
||||
self._zone_names: dict[str, str] = zone_names or {}
|
||||
self._playback_support = None
|
||||
self._is_playback_supported = False
|
||||
self._play_status = None
|
||||
@ -267,7 +277,7 @@ class YamahaDeviceZone(MediaPlayerEntity):
|
||||
self._attr_sound_mode = None
|
||||
self._attr_sound_mode_list = None
|
||||
|
||||
def build_source_list(self):
|
||||
def build_source_list(self) -> None:
|
||||
"""Build the source list."""
|
||||
self._reverse_mapping = {
|
||||
alias: source for source, alias in self._source_names.items()
|
||||
@ -280,7 +290,7 @@ class YamahaDeviceZone(MediaPlayerEntity):
|
||||
)
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
def name(self) -> str:
|
||||
"""Return the name of the device."""
|
||||
name = self._name
|
||||
zone_name = self._zone_names.get(self._zone, self._zone)
|
||||
@ -290,7 +300,7 @@ class YamahaDeviceZone(MediaPlayerEntity):
|
||||
return name
|
||||
|
||||
@property
|
||||
def zone_id(self):
|
||||
def zone_id(self) -> str:
|
||||
"""Return a zone_id to ensure 1 media player per zone."""
|
||||
return f"{self.zctrl.ctrl_url}:{self._zone}"
|
||||
|
||||
@ -387,15 +397,15 @@ class YamahaDeviceZone(MediaPlayerEntity):
|
||||
if media_type == "NET RADIO":
|
||||
self.zctrl.net_radio(media_id)
|
||||
|
||||
def enable_output(self, port, enabled):
|
||||
def enable_output(self, port: str, enabled: bool) -> None:
|
||||
"""Enable or disable an output port.."""
|
||||
self.zctrl.enable_output(port, enabled)
|
||||
|
||||
def menu_cursor(self, cursor):
|
||||
def menu_cursor(self, cursor: str) -> None:
|
||||
"""Press a menu cursor button."""
|
||||
getattr(self.zctrl, CURSOR_TYPE_MAP[cursor])()
|
||||
|
||||
def set_scene(self, scene):
|
||||
def set_scene(self, scene: str) -> None:
|
||||
"""Set the current scene."""
|
||||
try:
|
||||
self.zctrl.scene = scene
|
||||
|
Loading…
x
Reference in New Issue
Block a user