diff --git a/homeassistant/components/denonavr/media_player.py b/homeassistant/components/denonavr/media_player.py index b0454784ca1..125fec7caaa 100644 --- a/homeassistant/components/denonavr/media_player.py +++ b/homeassistant/components/denonavr/media_player.py @@ -276,7 +276,7 @@ class DenonDevice(MediaPlayerEntity): self._telnet_was_healthy: bool | None = None - async def _telnet_callback(self, zone, event, parameter) -> None: + async def _telnet_callback(self, zone: str, event: str, parameter: str) -> None: """Process a telnet command callback.""" # There are multiple checks implemented which reduce unnecessary updates of the ha state machine if zone not in (self._receiver.zone, ALL_ZONES): @@ -287,7 +287,7 @@ class DenonDevice(MediaPlayerEntity): # We skip every event except the last one if event == "NSE" and not parameter.startswith("4"): return - if event == "TA" and not parameter.startwith("ANNAME"): + if event == "TA" and not parameter.startswith("ANNAME"): return if event == "HD" and not parameter.startswith("ALBUM"): return @@ -333,17 +333,17 @@ class DenonDevice(MediaPlayerEntity): return DENON_STATE_MAPPING.get(self._receiver.state) @property - def source_list(self): + def source_list(self) -> list[str]: """Return a list of available input sources.""" return self._receiver.input_func_list @property - def is_volume_muted(self): + def is_volume_muted(self) -> bool: """Return boolean if volume is currently muted.""" return self._receiver.muted @property - def volume_level(self): + def volume_level(self) -> float | None: """Volume level of the media player (0..1).""" # Volume is sent in a format like -50.0. Minimum is -80.0, # maximum is 18.0 @@ -352,12 +352,12 @@ class DenonDevice(MediaPlayerEntity): return (float(self._receiver.volume) + 80) / 100 @property - def source(self): + def source(self) -> str | None: """Return the current input source.""" return self._receiver.input_func @property - def sound_mode(self): + def sound_mode(self) -> str | None: """Return the current matched sound mode.""" return self._receiver.sound_mode @@ -376,14 +376,14 @@ class DenonDevice(MediaPlayerEntity): return MediaType.CHANNEL @property - def media_image_url(self): + def media_image_url(self) -> str | None: """Image url of current playing media.""" if self._receiver.input_func in self._receiver.playing_func_list: return self._receiver.image_url return None @property - def media_title(self): + def media_title(self) -> str | None: """Title of current playing media.""" if self._receiver.input_func not in self._receiver.playing_func_list: return self._receiver.input_func @@ -392,26 +392,26 @@ class DenonDevice(MediaPlayerEntity): return self._receiver.frequency @property - def media_artist(self): + def media_artist(self) -> str | None: """Artist of current playing media, music track only.""" if self._receiver.artist is not None: return self._receiver.artist return self._receiver.band @property - def media_album_name(self): + def media_album_name(self) -> str | None: """Album name of current playing media, music track only.""" if self._receiver.album is not None: return self._receiver.album return self._receiver.station @property - def extra_state_attributes(self): + def extra_state_attributes(self) -> dict[str, Any]: """Return device specific state attributes.""" receiver = self._receiver if receiver.power != POWER_ON: return {} - state_attributes = {} + state_attributes: dict[str, Any] = {} if ( sound_mode_raw := receiver.sound_mode_raw ) is not None and receiver.support_sound_mode: @@ -421,7 +421,7 @@ class DenonDevice(MediaPlayerEntity): return state_attributes @property - def dynamic_eq(self): + def dynamic_eq(self) -> bool | None: """Status of DynamicEQ.""" return self._receiver.dynamic_eq @@ -499,17 +499,17 @@ class DenonDevice(MediaPlayerEntity): await self._receiver.async_mute(mute) @async_log_errors - async def async_get_command(self, command: str, **kwargs): + async def async_get_command(self, command: str, **kwargs: Any) -> str: """Send generic command.""" return await self._receiver.async_get_command(command) @async_log_errors - async def async_update_audyssey(self): + async def async_update_audyssey(self) -> None: """Get the latest audyssey information from device.""" await self._receiver.async_update_audyssey() @async_log_errors - async def async_set_dynamic_eq(self, dynamic_eq: bool): + async def async_set_dynamic_eq(self, dynamic_eq: bool) -> None: """Turn DynamicEQ on or off.""" if dynamic_eq: await self._receiver.async_dynamic_eq_on() diff --git a/homeassistant/components/denonavr/receiver.py b/homeassistant/components/denonavr/receiver.py index 71fa77718e6..c400ed0bcce 100644 --- a/homeassistant/components/denonavr/receiver.py +++ b/homeassistant/components/denonavr/receiver.py @@ -5,6 +5,7 @@ from collections.abc import Callable import logging from denonavr import DenonAVR +import httpx _LOGGER = logging.getLogger(__name__) @@ -21,7 +22,7 @@ class ConnectDenonAVR: zone3: bool, use_telnet: bool, update_audyssey: bool, - async_client_getter: Callable, + async_client_getter: Callable[[], httpx.AsyncClient], ) -> None: """Initialize the class.""" self._async_client_getter = async_client_getter