mirror of
https://github.com/home-assistant/core.git
synced 2025-07-21 04:07:08 +00:00
Explicitly pass in the config_entry in radarr coordinator (#137984)
explicitly pass in the config_entry in coordinator
This commit is contained in:
parent
a90d471be0
commit
106c5c661e
@ -2,12 +2,11 @@
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass, fields
|
||||
from dataclasses import fields
|
||||
|
||||
from aiopyarr.models.host_configuration import PyArrHostConfiguration
|
||||
from aiopyarr.radarr_client import RadarrClient
|
||||
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import CONF_API_KEY, CONF_URL, CONF_VERIFY_SSL, Platform
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
||||
@ -18,24 +17,13 @@ from .coordinator import (
|
||||
HealthDataUpdateCoordinator,
|
||||
MoviesDataUpdateCoordinator,
|
||||
QueueDataUpdateCoordinator,
|
||||
RadarrConfigEntry,
|
||||
RadarrData,
|
||||
RadarrDataUpdateCoordinator,
|
||||
StatusDataUpdateCoordinator,
|
||||
)
|
||||
|
||||
PLATFORMS = [Platform.BINARY_SENSOR, Platform.CALENDAR, Platform.SENSOR]
|
||||
type RadarrConfigEntry = ConfigEntry[RadarrData]
|
||||
|
||||
|
||||
@dataclass(kw_only=True, slots=True)
|
||||
class RadarrData:
|
||||
"""Radarr data type."""
|
||||
|
||||
calendar: CalendarUpdateCoordinator
|
||||
disk_space: DiskSpaceDataUpdateCoordinator
|
||||
health: HealthDataUpdateCoordinator
|
||||
movie: MoviesDataUpdateCoordinator
|
||||
queue: QueueDataUpdateCoordinator
|
||||
status: StatusDataUpdateCoordinator
|
||||
|
||||
|
||||
async def async_setup_entry(hass: HomeAssistant, entry: RadarrConfigEntry) -> bool:
|
||||
@ -50,12 +38,14 @@ async def async_setup_entry(hass: HomeAssistant, entry: RadarrConfigEntry) -> bo
|
||||
session=async_get_clientsession(hass, entry.data[CONF_VERIFY_SSL]),
|
||||
)
|
||||
data = RadarrData(
|
||||
calendar=CalendarUpdateCoordinator(hass, host_configuration, radarr),
|
||||
disk_space=DiskSpaceDataUpdateCoordinator(hass, host_configuration, radarr),
|
||||
health=HealthDataUpdateCoordinator(hass, host_configuration, radarr),
|
||||
movie=MoviesDataUpdateCoordinator(hass, host_configuration, radarr),
|
||||
queue=QueueDataUpdateCoordinator(hass, host_configuration, radarr),
|
||||
status=StatusDataUpdateCoordinator(hass, host_configuration, radarr),
|
||||
calendar=CalendarUpdateCoordinator(hass, entry, host_configuration, radarr),
|
||||
disk_space=DiskSpaceDataUpdateCoordinator(
|
||||
hass, entry, host_configuration, radarr
|
||||
),
|
||||
health=HealthDataUpdateCoordinator(hass, entry, host_configuration, radarr),
|
||||
movie=MoviesDataUpdateCoordinator(hass, entry, host_configuration, radarr),
|
||||
queue=QueueDataUpdateCoordinator(hass, entry, host_configuration, radarr),
|
||||
status=StatusDataUpdateCoordinator(hass, entry, host_configuration, radarr),
|
||||
)
|
||||
for field in fields(data):
|
||||
coordinator: RadarrDataUpdateCoordinator = getattr(data, field.name)
|
||||
|
@ -13,8 +13,8 @@ from homeassistant.const import EntityCategory
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||
|
||||
from . import RadarrConfigEntry
|
||||
from .const import HEALTH_ISSUES
|
||||
from .coordinator import RadarrConfigEntry
|
||||
from .entity import RadarrEntity
|
||||
|
||||
BINARY_SENSOR_TYPE = BinarySensorEntityDescription(
|
||||
|
@ -9,8 +9,7 @@ from homeassistant.core import HomeAssistant, callback
|
||||
from homeassistant.helpers.entity import EntityDescription
|
||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||
|
||||
from . import RadarrConfigEntry
|
||||
from .coordinator import CalendarUpdateCoordinator, RadarrEvent
|
||||
from .coordinator import CalendarUpdateCoordinator, RadarrConfigEntry, RadarrEvent
|
||||
from .entity import RadarrEntity
|
||||
|
||||
CALENDAR_TYPE = EntityDescription(
|
||||
|
@ -6,7 +6,7 @@ from abc import ABC, abstractmethod
|
||||
import asyncio
|
||||
from dataclasses import dataclass
|
||||
from datetime import date, datetime, timedelta
|
||||
from typing import TYPE_CHECKING, Generic, TypeVar, cast
|
||||
from typing import Generic, TypeVar, cast
|
||||
|
||||
from aiopyarr import (
|
||||
Health,
|
||||
@ -20,14 +20,27 @@ from aiopyarr.models.host_configuration import PyArrHostConfiguration
|
||||
from aiopyarr.radarr_client import RadarrClient
|
||||
|
||||
from homeassistant.components.calendar import CalendarEvent
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.exceptions import ConfigEntryAuthFailed
|
||||
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
|
||||
|
||||
from .const import DEFAULT_MAX_RECORDS, DOMAIN, LOGGER
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from . import RadarrConfigEntry
|
||||
|
||||
@dataclass(kw_only=True, slots=True)
|
||||
class RadarrData:
|
||||
"""Radarr data type."""
|
||||
|
||||
calendar: CalendarUpdateCoordinator
|
||||
disk_space: DiskSpaceDataUpdateCoordinator
|
||||
health: HealthDataUpdateCoordinator
|
||||
movie: MoviesDataUpdateCoordinator
|
||||
queue: QueueDataUpdateCoordinator
|
||||
status: StatusDataUpdateCoordinator
|
||||
|
||||
|
||||
type RadarrConfigEntry = ConfigEntry[RadarrData]
|
||||
|
||||
T = TypeVar("T", bound=SystemStatus | list[RootFolder] | list[Health] | int | None)
|
||||
|
||||
@ -53,6 +66,7 @@ class RadarrDataUpdateCoordinator(DataUpdateCoordinator[T], Generic[T], ABC):
|
||||
def __init__(
|
||||
self,
|
||||
hass: HomeAssistant,
|
||||
config_entry: RadarrConfigEntry,
|
||||
host_configuration: PyArrHostConfiguration,
|
||||
api_client: RadarrClient,
|
||||
) -> None:
|
||||
@ -60,6 +74,7 @@ class RadarrDataUpdateCoordinator(DataUpdateCoordinator[T], Generic[T], ABC):
|
||||
super().__init__(
|
||||
hass=hass,
|
||||
logger=LOGGER,
|
||||
config_entry=config_entry,
|
||||
name=DOMAIN,
|
||||
update_interval=self._update_interval,
|
||||
)
|
||||
@ -140,11 +155,12 @@ class CalendarUpdateCoordinator(RadarrDataUpdateCoordinator[None]):
|
||||
def __init__(
|
||||
self,
|
||||
hass: HomeAssistant,
|
||||
config_entry: RadarrConfigEntry,
|
||||
host_configuration: PyArrHostConfiguration,
|
||||
api_client: RadarrClient,
|
||||
) -> None:
|
||||
"""Initialize."""
|
||||
super().__init__(hass, host_configuration, api_client)
|
||||
super().__init__(hass, config_entry, host_configuration, api_client)
|
||||
self.event: RadarrEvent | None = None
|
||||
self._events: list[RadarrEvent] = []
|
||||
|
||||
|
@ -19,8 +19,7 @@ from homeassistant.const import EntityCategory, UnitOfInformation
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||
|
||||
from . import RadarrConfigEntry
|
||||
from .coordinator import RadarrDataUpdateCoordinator, T
|
||||
from .coordinator import RadarrConfigEntry, RadarrDataUpdateCoordinator, T
|
||||
from .entity import RadarrEntity
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user