Explicitly pass in the config_entry in braviatv coordinator init (#137724)

explicitly pass in the config_entry in braviatv coordinator init
This commit is contained in:
Michael 2025-02-07 20:43:54 +01:00 committed by GitHub
parent 7007bd121f
commit b9a3cab4b4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 18 additions and 17 deletions

View File

@ -7,14 +7,11 @@ from typing import Final
from aiohttp import CookieJar from aiohttp import CookieJar
from pybravia import BraviaClient from pybravia import BraviaClient
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_HOST, CONF_MAC, Platform from homeassistant.const import CONF_HOST, CONF_MAC, Platform
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.aiohttp_client import async_create_clientsession from homeassistant.helpers.aiohttp_client import async_create_clientsession
from .coordinator import BraviaTVCoordinator from .coordinator import BraviaTVConfigEntry, BraviaTVCoordinator
BraviaTVConfigEntry = ConfigEntry[BraviaTVCoordinator]
PLATFORMS: Final[list[Platform]] = [ PLATFORMS: Final[list[Platform]] = [
Platform.BUTTON, Platform.BUTTON,
@ -36,8 +33,8 @@ async def async_setup_entry(
client = BraviaClient(host, mac, session=session) client = BraviaClient(host, mac, session=session)
coordinator = BraviaTVCoordinator( coordinator = BraviaTVCoordinator(
hass=hass, hass=hass,
config_entry=config_entry,
client=client, client=client,
config=config_entry.data,
) )
config_entry.async_on_unload(config_entry.add_update_listener(update_listener)) config_entry.async_on_unload(config_entry.add_update_listener(update_listener))

View File

@ -14,8 +14,7 @@ from homeassistant.const import EntityCategory
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import BraviaTVConfigEntry from .coordinator import BraviaTVConfigEntry, BraviaTVCoordinator
from .coordinator import BraviaTVCoordinator
from .entity import BraviaTVEntity from .entity import BraviaTVEntity

View File

@ -6,7 +6,6 @@ from collections.abc import Awaitable, Callable, Coroutine, Iterable
from datetime import datetime, timedelta from datetime import datetime, timedelta
from functools import wraps from functools import wraps
import logging import logging
from types import MappingProxyType
from typing import Any, Concatenate, Final from typing import Any, Concatenate, Final
from pybravia import ( from pybravia import (
@ -20,6 +19,7 @@ from pybravia import (
) )
from homeassistant.components.media_player import MediaType from homeassistant.components.media_player import MediaType
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_CLIENT_ID, CONF_PIN from homeassistant.const import CONF_CLIENT_ID, CONF_PIN
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ConfigEntryAuthFailed from homeassistant.exceptions import ConfigEntryAuthFailed
@ -39,6 +39,8 @@ _LOGGER = logging.getLogger(__name__)
SCAN_INTERVAL: Final = timedelta(seconds=10) SCAN_INTERVAL: Final = timedelta(seconds=10)
type BraviaTVConfigEntry = ConfigEntry["BraviaTVCoordinator"]
def catch_braviatv_errors[_BraviaTVCoordinatorT: BraviaTVCoordinator, **_P]( def catch_braviatv_errors[_BraviaTVCoordinatorT: BraviaTVCoordinator, **_P](
func: Callable[Concatenate[_BraviaTVCoordinatorT, _P], Awaitable[None]], func: Callable[Concatenate[_BraviaTVCoordinatorT, _P], Awaitable[None]],
@ -64,19 +66,21 @@ def catch_braviatv_errors[_BraviaTVCoordinatorT: BraviaTVCoordinator, **_P](
class BraviaTVCoordinator(DataUpdateCoordinator[None]): class BraviaTVCoordinator(DataUpdateCoordinator[None]):
"""Representation of a Bravia TV Coordinator.""" """Representation of a Bravia TV Coordinator."""
config_entry: BraviaTVConfigEntry
def __init__( def __init__(
self, self,
hass: HomeAssistant, hass: HomeAssistant,
config_entry: BraviaTVConfigEntry,
client: BraviaClient, client: BraviaClient,
config: MappingProxyType[str, Any],
) -> None: ) -> None:
"""Initialize Bravia TV Client.""" """Initialize Bravia TV Client."""
self.client = client self.client = client
self.pin = config[CONF_PIN] self.pin = config_entry.data[CONF_PIN]
self.use_psk = config.get(CONF_USE_PSK, False) self.use_psk = config_entry.data.get(CONF_USE_PSK, False)
self.client_id = config.get(CONF_CLIENT_ID, LEGACY_CLIENT_ID) self.client_id = config_entry.data.get(CONF_CLIENT_ID, LEGACY_CLIENT_ID)
self.nickname = config.get(CONF_NICKNAME, NICKNAME_PREFIX) self.nickname = config_entry.data.get(CONF_NICKNAME, NICKNAME_PREFIX)
self.source: str | None = None self.source: str | None = None
self.source_list: list[str] = [] self.source_list: list[str] = []
self.source_map: dict[str, dict] = {} self.source_map: dict[str, dict] = {}
@ -98,6 +102,7 @@ class BraviaTVCoordinator(DataUpdateCoordinator[None]):
super().__init__( super().__init__(
hass, hass,
_LOGGER, _LOGGER,
config_entry=config_entry,
name=DOMAIN, name=DOMAIN,
update_interval=SCAN_INTERVAL, update_interval=SCAN_INTERVAL,
request_refresh_debouncer=Debouncer( request_refresh_debouncer=Debouncer(

View File

@ -6,7 +6,7 @@ from homeassistant.components.diagnostics import async_redact_data
from homeassistant.const import CONF_MAC, CONF_PIN from homeassistant.const import CONF_MAC, CONF_PIN
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from . import BraviaTVConfigEntry from .coordinator import BraviaTVConfigEntry
TO_REDACT = {CONF_MAC, CONF_PIN, "macAddr"} TO_REDACT = {CONF_MAC, CONF_PIN, "macAddr"}

View File

@ -3,8 +3,8 @@
from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC, DeviceInfo from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC, DeviceInfo
from homeassistant.helpers.update_coordinator import CoordinatorEntity from homeassistant.helpers.update_coordinator import CoordinatorEntity
from . import BraviaTVCoordinator
from .const import ATTR_MANUFACTURER, DOMAIN from .const import ATTR_MANUFACTURER, DOMAIN
from .coordinator import BraviaTVCoordinator
class BraviaTVEntity(CoordinatorEntity[BraviaTVCoordinator]): class BraviaTVEntity(CoordinatorEntity[BraviaTVCoordinator]):

View File

@ -18,8 +18,8 @@ from homeassistant.components.media_player import (
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import BraviaTVConfigEntry
from .const import SourceType from .const import SourceType
from .coordinator import BraviaTVConfigEntry
from .entity import BraviaTVEntity from .entity import BraviaTVEntity

View File

@ -9,7 +9,7 @@ from homeassistant.components.remote import ATTR_NUM_REPEATS, RemoteEntity
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import BraviaTVConfigEntry from .coordinator import BraviaTVConfigEntry
from .entity import BraviaTVEntity from .entity import BraviaTVEntity