music-assistant-server

1.2 KBPY
__init__.py
1.2 KB37 lines • python
1"""
2Home Assistant PlayerProvider for Music Assistant.
3
4Allows using media_player entities in HA to be used as players in MA.
5Requires the Home Assistant Plugin.
6"""
7
8from __future__ import annotations
9
10from typing import TYPE_CHECKING, cast
11
12from music_assistant_models.errors import SetupFailedError
13
14from music_assistant.providers.hass import DOMAIN as HASS_DOMAIN
15
16from .provider import HomeAssistantPlayerProvider
17
18if TYPE_CHECKING:
19    from music_assistant_models.config_entries import ProviderConfig
20    from music_assistant_models.provider import ProviderManifest
21
22    from music_assistant import MusicAssistant
23    from music_assistant.models import ProviderInstanceType
24    from music_assistant.providers.hass import HomeAssistantProvider
25
26
27async def setup(
28    mass: MusicAssistant, manifest: ProviderManifest, config: ProviderConfig
29) -> ProviderInstanceType:
30    """Initialize provider(instance) with given configuration."""
31    hass_prov = mass.get_provider(HASS_DOMAIN)
32    if not hass_prov:
33        msg = "The Home Assistant Plugin needs to be set-up first"
34        raise SetupFailedError(msg)
35    hass_prov = cast("HomeAssistantProvider", hass_prov)
36    return HomeAssistantPlayerProvider(mass, manifest, config, hass_prov)
37