From 42adc5c1e0757a6753663826d80cdc8b507f6537 Mon Sep 17 00:00:00 2001 From: Michael <35783820+mib1185@users.noreply.github.com> Date: Sun, 9 Feb 2025 15:41:52 +0100 Subject: [PATCH] Explicitly pass in the config_entry in schlage coordinator (#137959) explicitly pass in the config_entry in coordinator --- homeassistant/components/schlage/__init__.py | 9 ++++----- .../components/schlage/binary_sensor.py | 3 +-- .../components/schlage/coordinator.py | 19 ++++++++++++++++--- .../components/schlage/diagnostics.py | 2 +- homeassistant/components/schlage/lock.py | 3 +-- homeassistant/components/schlage/select.py | 3 +-- homeassistant/components/schlage/sensor.py | 5 ++--- homeassistant/components/schlage/switch.py | 5 ++--- 8 files changed, 28 insertions(+), 21 deletions(-) diff --git a/homeassistant/components/schlage/__init__.py b/homeassistant/components/schlage/__init__.py index 6eae69d9542..509a335aafe 100644 --- a/homeassistant/components/schlage/__init__.py +++ b/homeassistant/components/schlage/__init__.py @@ -5,12 +5,11 @@ from __future__ import annotations from pycognito.exceptions import WarrantException import pyschlage -from homeassistant.config_entries import ConfigEntry from homeassistant.const import CONF_PASSWORD, CONF_USERNAME, Platform from homeassistant.core import HomeAssistant from homeassistant.exceptions import ConfigEntryAuthFailed -from .coordinator import SchlageDataUpdateCoordinator +from .coordinator import SchlageConfigEntry, SchlageDataUpdateCoordinator PLATFORMS: list[Platform] = [ Platform.BINARY_SENSOR, @@ -20,8 +19,6 @@ PLATFORMS: list[Platform] = [ Platform.SWITCH, ] -type SchlageConfigEntry = ConfigEntry[SchlageDataUpdateCoordinator] - async def async_setup_entry(hass: HomeAssistant, entry: SchlageConfigEntry) -> bool: """Set up Schlage from a config entry.""" @@ -32,7 +29,9 @@ async def async_setup_entry(hass: HomeAssistant, entry: SchlageConfigEntry) -> b except WarrantException as ex: raise ConfigEntryAuthFailed from ex - coordinator = SchlageDataUpdateCoordinator(hass, username, pyschlage.Schlage(auth)) + coordinator = SchlageDataUpdateCoordinator( + hass, entry, username, pyschlage.Schlage(auth) + ) entry.runtime_data = coordinator await coordinator.async_config_entry_first_refresh() await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS) diff --git a/homeassistant/components/schlage/binary_sensor.py b/homeassistant/components/schlage/binary_sensor.py index f928d42b3ee..280853237d4 100644 --- a/homeassistant/components/schlage/binary_sensor.py +++ b/homeassistant/components/schlage/binary_sensor.py @@ -14,8 +14,7 @@ from homeassistant.const import EntityCategory from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback -from . import SchlageConfigEntry -from .coordinator import LockData, SchlageDataUpdateCoordinator +from .coordinator import LockData, SchlageConfigEntry, SchlageDataUpdateCoordinator from .entity import SchlageEntity diff --git a/homeassistant/components/schlage/coordinator.py b/homeassistant/components/schlage/coordinator.py index 936ef9ee91e..eec143c574f 100644 --- a/homeassistant/components/schlage/coordinator.py +++ b/homeassistant/components/schlage/coordinator.py @@ -34,15 +34,28 @@ class SchlageData: locks: dict[str, LockData] +type SchlageConfigEntry = ConfigEntry[SchlageDataUpdateCoordinator] + + class SchlageDataUpdateCoordinator(DataUpdateCoordinator[SchlageData]): """The Schlage data update coordinator.""" - config_entry: ConfigEntry + config_entry: SchlageConfigEntry - def __init__(self, hass: HomeAssistant, username: str, api: Schlage) -> None: + def __init__( + self, + hass: HomeAssistant, + config_entry: SchlageConfigEntry, + username: str, + api: Schlage, + ) -> None: """Initialize the class.""" super().__init__( - hass, LOGGER, name=f"{DOMAIN} ({username})", update_interval=UPDATE_INTERVAL + hass, + LOGGER, + config_entry=config_entry, + name=f"{DOMAIN} ({username})", + update_interval=UPDATE_INTERVAL, ) self.data = SchlageData(locks={}) self.api = api diff --git a/homeassistant/components/schlage/diagnostics.py b/homeassistant/components/schlage/diagnostics.py index ec4d9c489e3..357f04f00db 100644 --- a/homeassistant/components/schlage/diagnostics.py +++ b/homeassistant/components/schlage/diagnostics.py @@ -6,7 +6,7 @@ from typing import Any from homeassistant.core import HomeAssistant -from . import SchlageConfigEntry +from .coordinator import SchlageConfigEntry async def async_get_config_entry_diagnostics( diff --git a/homeassistant/components/schlage/lock.py b/homeassistant/components/schlage/lock.py index d203913191d..697c2e8399f 100644 --- a/homeassistant/components/schlage/lock.py +++ b/homeassistant/components/schlage/lock.py @@ -8,8 +8,7 @@ from homeassistant.components.lock import LockEntity from homeassistant.core import HomeAssistant, callback from homeassistant.helpers.entity_platform import AddEntitiesCallback -from . import SchlageConfigEntry -from .coordinator import LockData, SchlageDataUpdateCoordinator +from .coordinator import LockData, SchlageConfigEntry, SchlageDataUpdateCoordinator from .entity import SchlageEntity diff --git a/homeassistant/components/schlage/select.py b/homeassistant/components/schlage/select.py index 6cf0853835f..f93eee78d34 100644 --- a/homeassistant/components/schlage/select.py +++ b/homeassistant/components/schlage/select.py @@ -7,8 +7,7 @@ from homeassistant.const import EntityCategory from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback -from . import SchlageConfigEntry -from .coordinator import LockData, SchlageDataUpdateCoordinator +from .coordinator import LockData, SchlageConfigEntry, SchlageDataUpdateCoordinator from .entity import SchlageEntity _DESCRIPTIONS = ( diff --git a/homeassistant/components/schlage/sensor.py b/homeassistant/components/schlage/sensor.py index a15d1740b91..f7fb7c63b22 100644 --- a/homeassistant/components/schlage/sensor.py +++ b/homeassistant/components/schlage/sensor.py @@ -8,12 +8,11 @@ from homeassistant.components.sensor import ( SensorEntityDescription, SensorStateClass, ) -from homeassistant.config_entries import ConfigEntry from homeassistant.const import PERCENTAGE, EntityCategory from homeassistant.core import HomeAssistant, callback from homeassistant.helpers.entity_platform import AddEntitiesCallback -from .coordinator import LockData, SchlageDataUpdateCoordinator +from .coordinator import LockData, SchlageConfigEntry, SchlageDataUpdateCoordinator from .entity import SchlageEntity _SENSOR_DESCRIPTIONS: list[SensorEntityDescription] = [ @@ -29,7 +28,7 @@ _SENSOR_DESCRIPTIONS: list[SensorEntityDescription] = [ async def async_setup_entry( hass: HomeAssistant, - config_entry: ConfigEntry, + config_entry: SchlageConfigEntry, async_add_entities: AddEntitiesCallback, ) -> None: """Set up sensors based on a config entry.""" diff --git a/homeassistant/components/schlage/switch.py b/homeassistant/components/schlage/switch.py index 39fe6dbbc99..56ff0ebe360 100644 --- a/homeassistant/components/schlage/switch.py +++ b/homeassistant/components/schlage/switch.py @@ -14,12 +14,11 @@ from homeassistant.components.switch import ( SwitchEntity, SwitchEntityDescription, ) -from homeassistant.config_entries import ConfigEntry from homeassistant.const import EntityCategory from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback -from .coordinator import LockData, SchlageDataUpdateCoordinator +from .coordinator import LockData, SchlageConfigEntry, SchlageDataUpdateCoordinator from .entity import SchlageEntity @@ -56,7 +55,7 @@ SWITCHES: tuple[SchlageSwitchEntityDescription, ...] = ( async def async_setup_entry( hass: HomeAssistant, - config_entry: ConfigEntry, + config_entry: SchlageConfigEntry, async_add_entities: AddEntitiesCallback, ) -> None: """Set up switches based on a config entry."""