From 6d2f8b10766078599d023aa5b8efd0dcfb5307c2 Mon Sep 17 00:00:00 2001 From: Michael <35783820+mib1185@users.noreply.github.com> Date: Sun, 9 Feb 2025 20:30:53 +0100 Subject: [PATCH] Explicitly pass in the config_entry in jellyfin coordinator (#138129) explicitly pass in the config_entry in coordinator --- homeassistant/components/jellyfin/__init__.py | 9 ++++----- homeassistant/components/jellyfin/config_flow.py | 2 +- homeassistant/components/jellyfin/coordinator.py | 8 ++++++-- homeassistant/components/jellyfin/diagnostics.py | 2 +- homeassistant/components/jellyfin/media_player.py | 3 +-- homeassistant/components/jellyfin/media_source.py | 2 +- homeassistant/components/jellyfin/remote.py | 3 +-- homeassistant/components/jellyfin/sensor.py | 2 +- 8 files changed, 16 insertions(+), 15 deletions(-) diff --git a/homeassistant/components/jellyfin/__init__.py b/homeassistant/components/jellyfin/__init__.py index 4f0886dfa22..1cb6219ada0 100644 --- a/homeassistant/components/jellyfin/__init__.py +++ b/homeassistant/components/jellyfin/__init__.py @@ -2,16 +2,13 @@ from typing import Any -from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant from homeassistant.exceptions import ConfigEntryAuthFailed, ConfigEntryNotReady from homeassistant.helpers import device_registry as dr from .client_wrapper import CannotConnect, InvalidAuth, create_client, validate_input from .const import CONF_CLIENT_DEVICE_ID, DOMAIN, PLATFORMS -from .coordinator import JellyfinDataUpdateCoordinator - -type JellyfinConfigEntry = ConfigEntry[JellyfinDataUpdateCoordinator] +from .coordinator import JellyfinConfigEntry, JellyfinDataUpdateCoordinator async def async_setup_entry(hass: HomeAssistant, entry: JellyfinConfigEntry) -> bool: @@ -35,7 +32,9 @@ async def async_setup_entry(hass: HomeAssistant, entry: JellyfinConfigEntry) -> server_info: dict[str, Any] = connect_result["Servers"][0] - coordinator = JellyfinDataUpdateCoordinator(hass, client, server_info, user_id) + coordinator = JellyfinDataUpdateCoordinator( + hass, entry, client, server_info, user_id + ) await coordinator.async_config_entry_first_refresh() diff --git a/homeassistant/components/jellyfin/config_flow.py b/homeassistant/components/jellyfin/config_flow.py index 0c170d2485f..03c637a989f 100644 --- a/homeassistant/components/jellyfin/config_flow.py +++ b/homeassistant/components/jellyfin/config_flow.py @@ -13,9 +13,9 @@ from homeassistant.const import CONF_PASSWORD, CONF_URL, CONF_USERNAME from homeassistant.core import callback from homeassistant.util.uuid import random_uuid_hex -from . import JellyfinConfigEntry from .client_wrapper import CannotConnect, InvalidAuth, create_client, validate_input from .const import CONF_CLIENT_DEVICE_ID, DOMAIN, SUPPORTED_AUDIO_CODECS +from .coordinator import JellyfinConfigEntry _LOGGER = logging.getLogger(__name__) diff --git a/homeassistant/components/jellyfin/coordinator.py b/homeassistant/components/jellyfin/coordinator.py index 20428250254..cd22ad4ab39 100644 --- a/homeassistant/components/jellyfin/coordinator.py +++ b/homeassistant/components/jellyfin/coordinator.py @@ -13,15 +13,18 @@ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator from .const import CONF_CLIENT_DEVICE_ID, DOMAIN, LOGGER, USER_APP_NAME +type JellyfinConfigEntry = ConfigEntry[JellyfinDataUpdateCoordinator] + class JellyfinDataUpdateCoordinator(DataUpdateCoordinator[dict[str, dict[str, Any]]]): """Data update coordinator for the Jellyfin integration.""" - config_entry: ConfigEntry + config_entry: JellyfinConfigEntry def __init__( self, hass: HomeAssistant, + config_entry: JellyfinConfigEntry, api_client: JellyfinClient, system_info: dict[str, Any], user_id: str, @@ -30,6 +33,7 @@ class JellyfinDataUpdateCoordinator(DataUpdateCoordinator[dict[str, dict[str, An super().__init__( hass=hass, logger=LOGGER, + config_entry=config_entry, name=DOMAIN, update_interval=timedelta(seconds=10), ) @@ -37,7 +41,7 @@ class JellyfinDataUpdateCoordinator(DataUpdateCoordinator[dict[str, dict[str, An self.server_id: str = system_info["Id"] self.server_name: str = system_info["Name"] self.server_version: str | None = system_info.get("Version") - self.client_device_id: str = self.config_entry.data[CONF_CLIENT_DEVICE_ID] + self.client_device_id: str = config_entry.data[CONF_CLIENT_DEVICE_ID] self.user_id: str = user_id self.session_ids: set[str] = set() diff --git a/homeassistant/components/jellyfin/diagnostics.py b/homeassistant/components/jellyfin/diagnostics.py index 8042d588d1b..721e0ae654e 100644 --- a/homeassistant/components/jellyfin/diagnostics.py +++ b/homeassistant/components/jellyfin/diagnostics.py @@ -8,7 +8,7 @@ from homeassistant.components.diagnostics import async_redact_data from homeassistant.const import CONF_PASSWORD from homeassistant.core import HomeAssistant -from . import JellyfinConfigEntry +from .coordinator import JellyfinConfigEntry TO_REDACT = {CONF_PASSWORD} diff --git a/homeassistant/components/jellyfin/media_player.py b/homeassistant/components/jellyfin/media_player.py index bf6e95c0c96..bb0d914162d 100644 --- a/homeassistant/components/jellyfin/media_player.py +++ b/homeassistant/components/jellyfin/media_player.py @@ -15,11 +15,10 @@ from homeassistant.core import HomeAssistant, callback from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.util.dt import parse_datetime -from . import JellyfinConfigEntry from .browse_media import build_item_response, build_root_response from .client_wrapper import get_artwork_url from .const import CONTENT_TYPE_MAP, LOGGER -from .coordinator import JellyfinDataUpdateCoordinator +from .coordinator import JellyfinConfigEntry, JellyfinDataUpdateCoordinator from .entity import JellyfinClientEntity diff --git a/homeassistant/components/jellyfin/media_source.py b/homeassistant/components/jellyfin/media_source.py index a061118dd0a..a4d08d8d024 100644 --- a/homeassistant/components/jellyfin/media_source.py +++ b/homeassistant/components/jellyfin/media_source.py @@ -19,7 +19,6 @@ from homeassistant.components.media_source import ( ) from homeassistant.core import HomeAssistant -from . import JellyfinConfigEntry from .const import ( COLLECTION_TYPE_MOVIES, COLLECTION_TYPE_MUSIC, @@ -48,6 +47,7 @@ from .const import ( PLAYABLE_ITEM_TYPES, SUPPORTED_COLLECTION_TYPES, ) +from .coordinator import JellyfinConfigEntry _LOGGER = logging.getLogger(__name__) diff --git a/homeassistant/components/jellyfin/remote.py b/homeassistant/components/jellyfin/remote.py index ae33d58cc0c..7c543813a13 100644 --- a/homeassistant/components/jellyfin/remote.py +++ b/homeassistant/components/jellyfin/remote.py @@ -16,9 +16,8 @@ from homeassistant.components.remote import ( from homeassistant.core import HomeAssistant, callback from homeassistant.helpers.entity_platform import AddEntitiesCallback -from . import JellyfinConfigEntry from .const import LOGGER -from .coordinator import JellyfinDataUpdateCoordinator +from .coordinator import JellyfinConfigEntry, JellyfinDataUpdateCoordinator from .entity import JellyfinClientEntity diff --git a/homeassistant/components/jellyfin/sensor.py b/homeassistant/components/jellyfin/sensor.py index 5c519f661ee..934f2eb4e32 100644 --- a/homeassistant/components/jellyfin/sensor.py +++ b/homeassistant/components/jellyfin/sensor.py @@ -11,7 +11,7 @@ from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.typing import StateType -from . import JellyfinConfigEntry, JellyfinDataUpdateCoordinator +from .coordinator import JellyfinConfigEntry, JellyfinDataUpdateCoordinator from .entity import JellyfinServerEntity