Adjust type hints for MediaPlayerEntityFeature (#82258)

This commit is contained in:
epenet 2022-11-17 13:58:34 +01:00 committed by GitHub
parent 569e52c9ac
commit 18e30e7c06
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
26 changed files with 36 additions and 30 deletions

View file

@ -775,7 +775,7 @@ class BluesoundPlayer(MediaPlayerEntity):
return None
@property
def supported_features(self):
def supported_features(self) -> MediaPlayerEntityFeature | int:
"""Flag of media commands that are supported."""
if self._status is None:
return 0

View file

@ -899,7 +899,7 @@ class CastMediaPlayerEntity(CastDevice, MediaPlayerEntity):
return self._chromecast.app_display_name if self._chromecast else None
@property
def supported_features(self):
def supported_features(self) -> MediaPlayerEntityFeature:
"""Flag media player features that are supported."""
support = (
MediaPlayerEntityFeature.PLAY_MEDIA

View file

@ -245,7 +245,7 @@ class DenonDevice(MediaPlayerEntity):
return self._mediainfo
@property
def supported_features(self):
def supported_features(self) -> MediaPlayerEntityFeature:
"""Flag media player features that are supported."""
if self._mediasource in MEDIA_MODES.values():
return SUPPORT_DENON | SUPPORT_MEDIA_MODES

View file

@ -277,7 +277,7 @@ class DenonDevice(MediaPlayerEntity):
return self._receiver.sound_mode
@property
def supported_features(self):
def supported_features(self) -> MediaPlayerEntityFeature:
"""Flag media player features that are supported."""
if self._receiver.input_func in self._receiver.netaudio_func_list:
return self._supported_features_base | SUPPORT_MEDIA_MODES

View file

@ -237,7 +237,7 @@ class DIRECTVMediaPlayer(DIRECTVEntity, MediaPlayerEntity):
return self._program.channel
@property
def supported_features(self):
def supported_features(self) -> MediaPlayerEntityFeature:
"""Flag media player features that are supported."""
return SUPPORT_DTV_CLIENT if self._is_client else SUPPORT_DTV

View file

@ -478,7 +478,7 @@ class DlnaDmrEntity(MediaPlayerEntity):
return MediaPlayerState.IDLE
@property
def supported_features(self) -> int:
def supported_features(self) -> MediaPlayerEntityFeature | int:
"""Flag media player features that are supported at this moment.
Supported features may change as the device enters different states.

View file

@ -19,7 +19,7 @@ from .const import ATTR_MANUFACTURER, DEFAULT_NAME, DOMAIN
CONF_SOURCES: Final = "sources"
DUNEHD_PLAYER_SUPPORT: Final[int] = (
DUNEHD_PLAYER_SUPPORT: Final[MediaPlayerEntityFeature] = (
MediaPlayerEntityFeature.PAUSE
| MediaPlayerEntityFeature.TURN_ON
| MediaPlayerEntityFeature.TURN_OFF
@ -105,7 +105,7 @@ class DuneHDPlayerEntity(MediaPlayerEntity):
return int(self._state.get("playback_mute", 0)) == 1
@property
def supported_features(self) -> int:
def supported_features(self) -> MediaPlayerEntityFeature:
"""Flag media player features that are supported."""
return DUNEHD_PLAYER_SUPPORT

View file

@ -284,7 +284,7 @@ class EmbyDevice(MediaPlayerEntity):
return self.device.media_album_artist
@property
def supported_features(self):
def supported_features(self) -> MediaPlayerEntityFeature | int:
"""Flag media player features that are supported."""
if self.supports_remote_control:
return SUPPORT_EMBY

View file

@ -83,7 +83,7 @@ class EsphomeMediaPlayer(
return self._state.volume
@property
def supported_features(self) -> int:
def supported_features(self) -> MediaPlayerEntityFeature:
"""Flag supported features."""
flags = (
MediaPlayerEntityFeature.PLAY_MEDIA

View file

@ -17,6 +17,7 @@ from homeassistant.components.media_player import (
BrowseMedia,
MediaPlayerEnqueue,
MediaPlayerEntity,
MediaPlayerEntityFeature,
MediaPlayerState,
MediaType,
async_process_play_media_url,
@ -236,7 +237,7 @@ class ForkedDaapdZone(MediaPlayerEntity):
await self._api.set_volume(volume=volume * 100, output_id=self._output_id)
@property
def supported_features(self):
def supported_features(self) -> MediaPlayerEntityFeature:
"""Flag media player features that are supported."""
return SUPPORTED_FEATURES_ZONE
@ -558,7 +559,7 @@ class ForkedDaapdMaster(MediaPlayerEntity):
return self._player["shuffle"]
@property
def supported_features(self):
def supported_features(self) -> MediaPlayerEntityFeature:
"""Flag media player features that are supported."""
return SUPPORTED_FEATURES

View file

@ -163,7 +163,7 @@ class CecPlayerEntity(CecEntity, MediaPlayerEntity):
_LOGGER.warning("Unknown state: %s", device.status)
@property
def supported_features(self):
def supported_features(self) -> MediaPlayerEntityFeature:
"""Flag media player features that are supported."""
if self.type_id == TYPE_RECORDER or self.type == TYPE_PLAYBACK:
return (

View file

@ -80,7 +80,7 @@ class HomeKitTelevision(HomeKitEntity, MediaPlayerEntity):
]
@property
def supported_features(self) -> int:
def supported_features(self) -> MediaPlayerEntityFeature | int:
"""Flag media player features that are supported."""
features = 0

View file

@ -198,7 +198,7 @@ class JellyfinMediaPlayer(JellyfinEntity, MediaPlayerEntity):
return get_artwork_url(self.coordinator.api_client, self.now_playing, 150)
@property
def supported_features(self) -> int:
def supported_features(self) -> MediaPlayerEntityFeature | int:
"""Flag media player features that are supported."""
commands: list[str] = self.capabilities.get("SupportedCommands", [])
controllable = self.capabilities.get("SupportsMediaControl", False)

View file

@ -197,7 +197,7 @@ class LgTVDevice(MediaPlayerEntity):
return self._program_name
@property
def supported_features(self):
def supported_features(self) -> MediaPlayerEntityFeature:
"""Flag media player features that are supported."""
if self._on_action_script:
return SUPPORT_LGTV | MediaPlayerEntityFeature.TURN_ON

View file

@ -82,7 +82,6 @@ class LookinMedia(LookinPowerPushRemoteEntity, MediaPlayerEntity):
) -> None:
"""Init the lookin media player."""
self._attr_device_class = device_class
self._attr_supported_features: int = 0
super().__init__(coordinator, uuid, device, lookin_data)
for function_name, feature in _FUNCTION_NAME_TO_FEATURE.items():
if function_name in self._function_names:

View file

@ -492,7 +492,7 @@ class MediaPlayerEntity(Entity):
_attr_source_list: list[str] | None = None
_attr_source: str | None = None
_attr_state: MediaPlayerState | str | None = None
_attr_supported_features: int = 0
_attr_supported_features: MediaPlayerEntityFeature | int = 0
_attr_volume_level: float | None = None
# Implement these for your media player
@ -692,7 +692,7 @@ class MediaPlayerEntity(Entity):
return self._attr_group_members
@property
def supported_features(self) -> int:
def supported_features(self) -> MediaPlayerEntityFeature | int:
"""Flag media player features that are supported."""
return self._attr_supported_features

View file

@ -338,7 +338,7 @@ class MpdDevice(MediaPlayerEntity):
return None
@property
def supported_features(self):
def supported_features(self) -> MediaPlayerEntityFeature | int:
"""Flag media player features that are supported."""
if self._status is None:
return 0

View file

@ -553,7 +553,7 @@ class OnkyoDeviceZone(OnkyoDevice):
)
@property
def supported_features(self):
def supported_features(self) -> MediaPlayerEntityFeature:
"""Return media player features that are supported."""
if self._supports_volume:
return SUPPORT_ONKYO

View file

@ -104,7 +104,7 @@ class PhilipsTVMediaPlayer(
await self.coordinator.async_request_refresh()
@property
def supported_features(self):
def supported_features(self) -> MediaPlayerEntityFeature:
"""Flag media player features that are supported."""
supports = self._supports
if self.coordinator.turn_on or (

View file

@ -389,7 +389,7 @@ class PlexMediaPlayer(MediaPlayerEntity):
return self.session.media_episode
@property
def supported_features(self):
def supported_features(self) -> MediaPlayerEntityFeature:
"""Flag media player features that are supported."""
if self.device and "playback" in self._device_protocol_capabilities:
return (

View file

@ -453,9 +453,11 @@ class UniversalMediaPlayer(MediaPlayerEntity):
return self._override_or_child_attr(ATTR_MEDIA_SHUFFLE)
@property
def supported_features(self):
def supported_features(self) -> MediaPlayerEntityFeature | int:
"""Flag media player features that are supported."""
flags = self._child_attr(ATTR_SUPPORTED_FEATURES) or 0
flags: MediaPlayerEntityFeature | int = (
self._child_attr(ATTR_SUPPORTED_FEATURES) or 0
)
if SERVICE_TURN_ON in self._cmds:
flags |= MediaPlayerEntityFeature.TURN_ON

View file

@ -137,7 +137,7 @@ class LgWebOSMediaPlayerEntity(RestoreEntity, MediaPlayerEntity):
self._current_source = None
self._source_list: dict = {}
self._supported_features: int = 0
self._supported_features: MediaPlayerEntityFeature | int = 0
self._update_states()
async def async_added_to_hass(self) -> None:
@ -314,7 +314,7 @@ class LgWebOSMediaPlayerEntity(RestoreEntity, MediaPlayerEntity):
await self._client.connect()
@property
def supported_features(self) -> int:
def supported_features(self) -> MediaPlayerEntityFeature | int:
"""Flag media player features that are supported."""
if self._wrapper.turn_on:
return self._supported_features | MediaPlayerEntityFeature.TURN_ON

View file

@ -107,7 +107,7 @@ class XboxMediaPlayer(CoordinatorEntity[XboxUpdateCoordinator], MediaPlayerEntit
return XBOX_STATE_MAP[status.power_state]
@property
def supported_features(self):
def supported_features(self) -> MediaPlayerEntityFeature:
"""Flag media player features that are supported."""
if self.state not in [MediaPlayerState.PLAYING, MediaPlayerState.PAUSED]:
return (

View file

@ -311,7 +311,7 @@ class YamahaDevice(MediaPlayerEntity):
return f"{self.receiver.ctrl_url}:{self._zone}"
@property
def supported_features(self):
def supported_features(self) -> MediaPlayerEntityFeature:
"""Flag media player features that are supported."""
supported_features = SUPPORT_YAMAHA

View file

@ -424,7 +424,7 @@ class MusicCastMediaPlayer(MusicCastDeviceEntity, MediaPlayerEntity):
)
@property
def supported_features(self):
def supported_features(self) -> MediaPlayerEntityFeature:
"""Flag media player features that are supported."""
supported_features = MUSIC_PLAYER_BASE_SUPPORT
zone = self.coordinator.data.zones[self._zone_id]

View file

@ -1788,6 +1788,10 @@ _INHERITANCE_MATCH: dict[str, list[ClassTypeHintMatch]] = {
function_name="group_members",
return_type=["list[str]", None],
),
TypeHintMatch(
function_name="supported_features",
return_type=["MediaPlayerEntityFeature", "int"],
),
TypeHintMatch(
function_name="turn_on",
return_type=None,