From 711d42387785e65c9ee53da1262c86f25cbf25db Mon Sep 17 00:00:00 2001 From: Michael <35783820+mib1185@users.noreply.github.com> Date: Sun, 9 Feb 2025 16:30:55 +0100 Subject: [PATCH] Explicitly pass in the config_entry in nanoleaf coordinator (#138075) explicitly pass in the config_entry in coordinator --- homeassistant/components/nanoleaf/__init__.py | 8 ++------ homeassistant/components/nanoleaf/button.py | 3 +-- homeassistant/components/nanoleaf/coordinator.py | 15 +++++++++++++-- homeassistant/components/nanoleaf/diagnostics.py | 2 +- homeassistant/components/nanoleaf/entity.py | 2 +- homeassistant/components/nanoleaf/event.py | 2 +- homeassistant/components/nanoleaf/light.py | 3 +-- 7 files changed, 20 insertions(+), 15 deletions(-) diff --git a/homeassistant/components/nanoleaf/__init__.py b/homeassistant/components/nanoleaf/__init__.py index 4a34c2843aa..7ee1c14a9b1 100644 --- a/homeassistant/components/nanoleaf/__init__.py +++ b/homeassistant/components/nanoleaf/__init__.py @@ -8,7 +8,6 @@ import logging from aionanoleaf import EffectsEvent, Nanoleaf, StateEvent, TouchEvent -from homeassistant.config_entries import ConfigEntry from homeassistant.const import ( CONF_DEVICE_ID, CONF_HOST, @@ -22,23 +21,20 @@ from homeassistant.helpers.aiohttp_client import async_get_clientsession from homeassistant.helpers.dispatcher import async_dispatcher_send from .const import DOMAIN, NANOLEAF_EVENT, TOUCH_GESTURE_TRIGGER_MAP, TOUCH_MODELS -from .coordinator import NanoleafCoordinator +from .coordinator import NanoleafConfigEntry, NanoleafCoordinator _LOGGER = logging.getLogger(__name__) PLATFORMS = [Platform.BUTTON, Platform.EVENT, Platform.LIGHT] -type NanoleafConfigEntry = ConfigEntry[NanoleafCoordinator] - - async def async_setup_entry(hass: HomeAssistant, entry: NanoleafConfigEntry) -> bool: """Set up Nanoleaf from a config entry.""" nanoleaf = Nanoleaf( async_get_clientsession(hass), entry.data[CONF_HOST], entry.data[CONF_TOKEN] ) - coordinator = NanoleafCoordinator(hass, nanoleaf) + coordinator = NanoleafCoordinator(hass, entry, nanoleaf) await coordinator.async_config_entry_first_refresh() diff --git a/homeassistant/components/nanoleaf/button.py b/homeassistant/components/nanoleaf/button.py index 34d0f4f5076..eb997036b48 100644 --- a/homeassistant/components/nanoleaf/button.py +++ b/homeassistant/components/nanoleaf/button.py @@ -5,8 +5,7 @@ from homeassistant.const import EntityCategory from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback -from . import NanoleafConfigEntry -from .coordinator import NanoleafCoordinator +from .coordinator import NanoleafConfigEntry, NanoleafCoordinator from .entity import NanoleafEntity diff --git a/homeassistant/components/nanoleaf/coordinator.py b/homeassistant/components/nanoleaf/coordinator.py index e080afc492e..495a63b9164 100644 --- a/homeassistant/components/nanoleaf/coordinator.py +++ b/homeassistant/components/nanoleaf/coordinator.py @@ -5,20 +5,31 @@ import logging from aionanoleaf import InvalidToken, Nanoleaf, Unavailable +from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant from homeassistant.exceptions import ConfigEntryAuthFailed from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed _LOGGER = logging.getLogger(__name__) +type NanoleafConfigEntry = ConfigEntry[NanoleafCoordinator] + class NanoleafCoordinator(DataUpdateCoordinator[None]): """Class to manage fetching Nanoleaf data.""" - def __init__(self, hass: HomeAssistant, nanoleaf: Nanoleaf) -> None: + config_entry: NanoleafConfigEntry + + def __init__( + self, hass: HomeAssistant, config_entry: NanoleafConfigEntry, nanoleaf: Nanoleaf + ) -> None: """Initialize the Nanoleaf data coordinator.""" super().__init__( - hass, _LOGGER, name="Nanoleaf", update_interval=timedelta(minutes=1) + hass, + _LOGGER, + config_entry=config_entry, + name="Nanoleaf", + update_interval=timedelta(minutes=1), ) self.nanoleaf = nanoleaf diff --git a/homeassistant/components/nanoleaf/diagnostics.py b/homeassistant/components/nanoleaf/diagnostics.py index 6f8691905ef..ce2045acf7b 100644 --- a/homeassistant/components/nanoleaf/diagnostics.py +++ b/homeassistant/components/nanoleaf/diagnostics.py @@ -8,7 +8,7 @@ from homeassistant.components.diagnostics import async_redact_data from homeassistant.const import CONF_TOKEN from homeassistant.core import HomeAssistant -from . import NanoleafConfigEntry +from .coordinator import NanoleafConfigEntry async def async_get_config_entry_diagnostics( diff --git a/homeassistant/components/nanoleaf/entity.py b/homeassistant/components/nanoleaf/entity.py index ffe4a098022..dd0b455fa0f 100644 --- a/homeassistant/components/nanoleaf/entity.py +++ b/homeassistant/components/nanoleaf/entity.py @@ -3,8 +3,8 @@ from homeassistant.helpers.device_registry import DeviceInfo from homeassistant.helpers.update_coordinator import CoordinatorEntity -from . import NanoleafCoordinator from .const import DOMAIN +from .coordinator import NanoleafCoordinator class NanoleafEntity(CoordinatorEntity[NanoleafCoordinator]): diff --git a/homeassistant/components/nanoleaf/event.py b/homeassistant/components/nanoleaf/event.py index 5763c2aa595..e77ee03681a 100644 --- a/homeassistant/components/nanoleaf/event.py +++ b/homeassistant/components/nanoleaf/event.py @@ -5,8 +5,8 @@ from homeassistant.core import HomeAssistant, callback from homeassistant.helpers.dispatcher import async_dispatcher_connect from homeassistant.helpers.entity_platform import AddEntitiesCallback -from . import NanoleafConfigEntry, NanoleafCoordinator from .const import TOUCH_MODELS +from .coordinator import NanoleafConfigEntry, NanoleafCoordinator from .entity import NanoleafEntity diff --git a/homeassistant/components/nanoleaf/light.py b/homeassistant/components/nanoleaf/light.py index 681053fa573..4d73a012765 100644 --- a/homeassistant/components/nanoleaf/light.py +++ b/homeassistant/components/nanoleaf/light.py @@ -17,8 +17,7 @@ from homeassistant.components.light import ( from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback -from . import NanoleafConfigEntry -from .coordinator import NanoleafCoordinator +from .coordinator import NanoleafConfigEntry, NanoleafCoordinator from .entity import NanoleafEntity RESERVED_EFFECTS = ("*Solid*", "*Static*", "*Dynamic*")