From a8de073076d911c2e385196dc897f0ede4e5e296 Mon Sep 17 00:00:00 2001 From: Michael <35783820+mib1185@users.noreply.github.com> Date: Fri, 7 Feb 2025 19:46:21 +0100 Subject: [PATCH] Explicitly pass in the config_entry in airly coordinator init (#137698) explicitly pass in the config_entry in airly coordinator init --- homeassistant/components/airly/__init__.py | 14 +++++++++----- homeassistant/components/airly/coordinator.py | 14 +++++++++++++- homeassistant/components/airly/diagnostics.py | 2 +- homeassistant/components/airly/sensor.py | 2 +- homeassistant/components/airly/system_health.py | 2 +- 5 files changed, 25 insertions(+), 9 deletions(-) diff --git a/homeassistant/components/airly/__init__.py b/homeassistant/components/airly/__init__.py index ad3ee5fca4d..18ad1c8c402 100644 --- a/homeassistant/components/airly/__init__.py +++ b/homeassistant/components/airly/__init__.py @@ -6,21 +6,18 @@ from datetime import timedelta import logging from homeassistant.components.air_quality import DOMAIN as AIR_QUALITY_PLATFORM -from homeassistant.config_entries import ConfigEntry from homeassistant.const import CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE, Platform from homeassistant.core import HomeAssistant from homeassistant.helpers import device_registry as dr, entity_registry as er from homeassistant.helpers.aiohttp_client import async_get_clientsession from .const import CONF_USE_NEAREST, DOMAIN, MIN_UPDATE_INTERVAL -from .coordinator import AirlyDataUpdateCoordinator +from .coordinator import AirlyConfigEntry, AirlyDataUpdateCoordinator PLATFORMS = [Platform.SENSOR] _LOGGER = logging.getLogger(__name__) -type AirlyConfigEntry = ConfigEntry[AirlyDataUpdateCoordinator] - async def async_setup_entry(hass: HomeAssistant, entry: AirlyConfigEntry) -> bool: """Set up Airly as config entry.""" @@ -60,7 +57,14 @@ async def async_setup_entry(hass: HomeAssistant, entry: AirlyConfigEntry) -> boo update_interval = timedelta(minutes=MIN_UPDATE_INTERVAL) coordinator = AirlyDataUpdateCoordinator( - hass, websession, api_key, latitude, longitude, update_interval, use_nearest + hass, + entry, + websession, + api_key, + latitude, + longitude, + update_interval, + use_nearest, ) await coordinator.async_config_entry_first_refresh() diff --git a/homeassistant/components/airly/coordinator.py b/homeassistant/components/airly/coordinator.py index fa826ba6efc..b255c5f078f 100644 --- a/homeassistant/components/airly/coordinator.py +++ b/homeassistant/components/airly/coordinator.py @@ -10,6 +10,7 @@ from aiohttp.client_exceptions import ClientConnectorError from airly import Airly from airly.exceptions import AirlyError +from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed from homeassistant.util import dt as dt_util @@ -27,6 +28,8 @@ from .const import ( _LOGGER = logging.getLogger(__name__) +type AirlyConfigEntry = ConfigEntry[AirlyDataUpdateCoordinator] + def set_update_interval(instances_count: int, requests_remaining: int) -> timedelta: """Return data update interval. @@ -58,9 +61,12 @@ def set_update_interval(instances_count: int, requests_remaining: int) -> timede class AirlyDataUpdateCoordinator(DataUpdateCoordinator[dict[str, str | float | int]]): """Define an object to hold Airly data.""" + config_entry: AirlyConfigEntry + def __init__( self, hass: HomeAssistant, + config_entry: AirlyConfigEntry, session: ClientSession, api_key: str, latitude: float, @@ -76,7 +82,13 @@ class AirlyDataUpdateCoordinator(DataUpdateCoordinator[dict[str, str | float | i self.airly = Airly(api_key, session, language=language) self.use_nearest = use_nearest - super().__init__(hass, _LOGGER, name=DOMAIN, update_interval=update_interval) + super().__init__( + hass, + _LOGGER, + config_entry=config_entry, + name=DOMAIN, + update_interval=update_interval, + ) async def _async_update_data(self) -> dict[str, str | float | int]: """Update data via library.""" diff --git a/homeassistant/components/airly/diagnostics.py b/homeassistant/components/airly/diagnostics.py index 8bf75baf1d1..6e9e55a4311 100644 --- a/homeassistant/components/airly/diagnostics.py +++ b/homeassistant/components/airly/diagnostics.py @@ -13,7 +13,7 @@ from homeassistant.const import ( ) from homeassistant.core import HomeAssistant -from . import AirlyConfigEntry +from .coordinator import AirlyConfigEntry TO_REDACT = {CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE, CONF_UNIQUE_ID} diff --git a/homeassistant/components/airly/sensor.py b/homeassistant/components/airly/sensor.py index 2126b838269..fbf73ed753e 100644 --- a/homeassistant/components/airly/sensor.py +++ b/homeassistant/components/airly/sensor.py @@ -24,7 +24,6 @@ from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.update_coordinator import CoordinatorEntity -from . import AirlyConfigEntry, AirlyDataUpdateCoordinator from .const import ( ATTR_ADVICE, ATTR_API_ADVICE, @@ -52,6 +51,7 @@ from .const import ( SUFFIX_PERCENT, URL, ) +from .coordinator import AirlyConfigEntry, AirlyDataUpdateCoordinator PARALLEL_UPDATES = 1 diff --git a/homeassistant/components/airly/system_health.py b/homeassistant/components/airly/system_health.py index 688b6d06189..629cb255122 100644 --- a/homeassistant/components/airly/system_health.py +++ b/homeassistant/components/airly/system_health.py @@ -9,8 +9,8 @@ from airly import Airly from homeassistant.components import system_health from homeassistant.core import HomeAssistant, callback -from . import AirlyConfigEntry from .const import DOMAIN +from .coordinator import AirlyConfigEntry @callback