mirror of
https://github.com/home-assistant/core.git
synced 2025-07-27 07:07:28 +00:00
Explicitly pass in the config_entry in lidarr coordinator (#138111)
explicitly pass in the config_entry in coordinator
This commit is contained in:
parent
e1ed46f593
commit
9be5976807
@ -2,12 +2,11 @@
|
|||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from dataclasses import dataclass, fields
|
from dataclasses import fields
|
||||||
|
|
||||||
from aiopyarr.lidarr_client import LidarrClient
|
from aiopyarr.lidarr_client import LidarrClient
|
||||||
from aiopyarr.models.host_configuration import PyArrHostConfiguration
|
from aiopyarr.models.host_configuration import PyArrHostConfiguration
|
||||||
|
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.const import CONF_API_KEY, CONF_URL, CONF_VERIFY_SSL, Platform
|
from homeassistant.const import CONF_API_KEY, CONF_URL, CONF_VERIFY_SSL, Platform
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers import device_registry as dr
|
from homeassistant.helpers import device_registry as dr
|
||||||
@ -18,27 +17,16 @@ from .const import DEFAULT_NAME, DOMAIN
|
|||||||
from .coordinator import (
|
from .coordinator import (
|
||||||
AlbumsDataUpdateCoordinator,
|
AlbumsDataUpdateCoordinator,
|
||||||
DiskSpaceDataUpdateCoordinator,
|
DiskSpaceDataUpdateCoordinator,
|
||||||
|
LidarrConfigEntry,
|
||||||
|
LidarrData,
|
||||||
QueueDataUpdateCoordinator,
|
QueueDataUpdateCoordinator,
|
||||||
StatusDataUpdateCoordinator,
|
StatusDataUpdateCoordinator,
|
||||||
WantedDataUpdateCoordinator,
|
WantedDataUpdateCoordinator,
|
||||||
)
|
)
|
||||||
|
|
||||||
type LidarrConfigEntry = ConfigEntry[LidarrData]
|
|
||||||
|
|
||||||
PLATFORMS = [Platform.SENSOR]
|
PLATFORMS = [Platform.SENSOR]
|
||||||
|
|
||||||
|
|
||||||
@dataclass(kw_only=True, slots=True)
|
|
||||||
class LidarrData:
|
|
||||||
"""Lidarr data type."""
|
|
||||||
|
|
||||||
disk_space: DiskSpaceDataUpdateCoordinator
|
|
||||||
queue: QueueDataUpdateCoordinator
|
|
||||||
status: StatusDataUpdateCoordinator
|
|
||||||
wanted: WantedDataUpdateCoordinator
|
|
||||||
albums: AlbumsDataUpdateCoordinator
|
|
||||||
|
|
||||||
|
|
||||||
async def async_setup_entry(hass: HomeAssistant, entry: LidarrConfigEntry) -> bool:
|
async def async_setup_entry(hass: HomeAssistant, entry: LidarrConfigEntry) -> bool:
|
||||||
"""Set up Lidarr from a config entry."""
|
"""Set up Lidarr from a config entry."""
|
||||||
host_configuration = PyArrHostConfiguration(
|
host_configuration = PyArrHostConfiguration(
|
||||||
@ -52,11 +40,13 @@ async def async_setup_entry(hass: HomeAssistant, entry: LidarrConfigEntry) -> bo
|
|||||||
request_timeout=60,
|
request_timeout=60,
|
||||||
)
|
)
|
||||||
data = LidarrData(
|
data = LidarrData(
|
||||||
disk_space=DiskSpaceDataUpdateCoordinator(hass, host_configuration, lidarr),
|
disk_space=DiskSpaceDataUpdateCoordinator(
|
||||||
queue=QueueDataUpdateCoordinator(hass, host_configuration, lidarr),
|
hass, entry, host_configuration, lidarr
|
||||||
status=StatusDataUpdateCoordinator(hass, host_configuration, lidarr),
|
),
|
||||||
wanted=WantedDataUpdateCoordinator(hass, host_configuration, lidarr),
|
queue=QueueDataUpdateCoordinator(hass, entry, host_configuration, lidarr),
|
||||||
albums=AlbumsDataUpdateCoordinator(hass, host_configuration, lidarr),
|
status=StatusDataUpdateCoordinator(hass, entry, host_configuration, lidarr),
|
||||||
|
wanted=WantedDataUpdateCoordinator(hass, entry, host_configuration, lidarr),
|
||||||
|
albums=AlbumsDataUpdateCoordinator(hass, entry, host_configuration, lidarr),
|
||||||
)
|
)
|
||||||
for field in fields(data):
|
for field in fields(data):
|
||||||
coordinator = getattr(data, field.name)
|
coordinator = getattr(data, field.name)
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from abc import ABC, abstractmethod
|
from abc import ABC, abstractmethod
|
||||||
|
from dataclasses import dataclass
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
from typing import Generic, TypeVar, cast
|
from typing import Generic, TypeVar, cast
|
||||||
|
|
||||||
@ -17,17 +18,32 @@ from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, Upda
|
|||||||
|
|
||||||
from .const import DEFAULT_MAX_RECORDS, DOMAIN, LOGGER
|
from .const import DEFAULT_MAX_RECORDS, DOMAIN, LOGGER
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass(kw_only=True, slots=True)
|
||||||
|
class LidarrData:
|
||||||
|
"""Lidarr data type."""
|
||||||
|
|
||||||
|
disk_space: DiskSpaceDataUpdateCoordinator
|
||||||
|
queue: QueueDataUpdateCoordinator
|
||||||
|
status: StatusDataUpdateCoordinator
|
||||||
|
wanted: WantedDataUpdateCoordinator
|
||||||
|
albums: AlbumsDataUpdateCoordinator
|
||||||
|
|
||||||
|
|
||||||
T = TypeVar("T", bound=list[LidarrRootFolder] | LidarrQueue | str | LidarrAlbum | int)
|
T = TypeVar("T", bound=list[LidarrRootFolder] | LidarrQueue | str | LidarrAlbum | int)
|
||||||
|
|
||||||
|
type LidarrConfigEntry = ConfigEntry[LidarrData]
|
||||||
|
|
||||||
|
|
||||||
class LidarrDataUpdateCoordinator(DataUpdateCoordinator[T], Generic[T], ABC):
|
class LidarrDataUpdateCoordinator(DataUpdateCoordinator[T], Generic[T], ABC):
|
||||||
"""Data update coordinator for the Lidarr integration."""
|
"""Data update coordinator for the Lidarr integration."""
|
||||||
|
|
||||||
config_entry: ConfigEntry
|
config_entry: LidarrConfigEntry
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
|
config_entry: LidarrConfigEntry,
|
||||||
host_configuration: PyArrHostConfiguration,
|
host_configuration: PyArrHostConfiguration,
|
||||||
api_client: LidarrClient,
|
api_client: LidarrClient,
|
||||||
) -> None:
|
) -> None:
|
||||||
@ -35,6 +51,7 @@ class LidarrDataUpdateCoordinator(DataUpdateCoordinator[T], Generic[T], ABC):
|
|||||||
super().__init__(
|
super().__init__(
|
||||||
hass=hass,
|
hass=hass,
|
||||||
logger=LOGGER,
|
logger=LOGGER,
|
||||||
|
config_entry=config_entry,
|
||||||
name=DOMAIN,
|
name=DOMAIN,
|
||||||
update_interval=timedelta(seconds=30),
|
update_interval=timedelta(seconds=30),
|
||||||
)
|
)
|
||||||
|
@ -18,9 +18,8 @@ from homeassistant.const import UnitOfInformation
|
|||||||
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 LidarrConfigEntry
|
|
||||||
from .const import BYTE_SIZES
|
from .const import BYTE_SIZES
|
||||||
from .coordinator import LidarrDataUpdateCoordinator, T
|
from .coordinator import LidarrConfigEntry, LidarrDataUpdateCoordinator, T
|
||||||
from .entity import LidarrEntity
|
from .entity import LidarrEntity
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user