Use shorthanded attrs for yamaha_musiccast select (#100273)

This commit is contained in:
Jan Bouwhuis 2023-09-13 13:13:27 +02:00 committed by GitHub
parent 7fe78fe9e4
commit 705ee3032b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -24,37 +24,39 @@ async def async_setup_entry(
for capability in coordinator.data.capabilities:
if isinstance(capability, OptionSetter):
select_entities.append(SelectableCapapility(coordinator, capability))
select_entities.append(SelectableCapability(coordinator, capability))
for zone, data in coordinator.data.zones.items():
for capability in data.capabilities:
if isinstance(capability, OptionSetter):
select_entities.append(
SelectableCapapility(coordinator, capability, zone)
SelectableCapability(coordinator, capability, zone)
)
async_add_entities(select_entities)
class SelectableCapapility(MusicCastCapabilityEntity, SelectEntity):
class SelectableCapability(MusicCastCapabilityEntity, SelectEntity):
"""Representation of a MusicCast Select entity."""
capability: OptionSetter
def __init__(
self,
coordinator: MusicCastDataUpdateCoordinator,
capability: OptionSetter,
zone_id: str | None = None,
) -> None:
"""Initialize the MusicCast Select entity."""
MusicCastCapabilityEntity.__init__(self, coordinator, capability, zone_id)
self._attr_options = list(capability.options.values())
self._attr_translation_key = TRANSLATION_KEY_MAPPING.get(capability.id)
async def async_select_option(self, option: str) -> None:
"""Select the given option."""
value = {val: key for key, val in self.capability.options.items()}[option]
await self.capability.set(value)
@property
def translation_key(self) -> str | None:
"""Return the translation key to translate the entity's states."""
return TRANSLATION_KEY_MAPPING.get(self.capability.id)
@property
def options(self) -> list[str]:
"""Return the list possible options."""
return list(self.capability.options.values())
self._attr_translation_key = TRANSLATION_KEY_MAPPING.get(self.capability.id)
@property
def current_option(self) -> str | None: