Adjust type hints for MediaPlayerEntityFeature (#82258)
This commit is contained in:
parent
569e52c9ac
commit
18e30e7c06
26 changed files with 36 additions and 30 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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 (
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 (
|
||||
|
|
|
@ -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 (
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 (
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Add table
Reference in a new issue