From f2ce510484011732c144762365c984fb4a46af9f Mon Sep 17 00:00:00 2001 From: Rami Mosleh Date: Thu, 13 Jun 2024 17:54:40 +0300 Subject: [PATCH] Store islamic prayer times coordinator in runtime_data (#119612) --- .../islamic_prayer_times/__init__.py | 24 +++++++++++-------- .../components/islamic_prayer_times/sensor.py | 11 ++++----- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/homeassistant/components/islamic_prayer_times/__init__.py b/homeassistant/components/islamic_prayer_times/__init__.py index 15e165d2f48..089afc88564 100644 --- a/homeassistant/components/islamic_prayer_times/__init__.py +++ b/homeassistant/components/islamic_prayer_times/__init__.py @@ -18,8 +18,12 @@ CONFIG_SCHEMA = cv.removed(DOMAIN, raise_if_present=False) _LOGGER = logging.getLogger(__name__) +type IslamicPrayerTimesConfigEntry = ConfigEntry[IslamicPrayerDataUpdateCoordinator] -async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: + +async def async_setup_entry( + hass: HomeAssistant, config_entry: IslamicPrayerTimesConfigEntry +) -> bool: """Set up the Islamic Prayer Component.""" @callback @@ -37,7 +41,7 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> b coordinator = IslamicPrayerDataUpdateCoordinator(hass) await coordinator.async_config_entry_first_refresh() - hass.data.setdefault(DOMAIN, {})[config_entry.entry_id] = coordinator + config_entry.runtime_data = coordinator config_entry.async_on_unload( config_entry.add_update_listener(async_options_updated) ) @@ -72,24 +76,24 @@ async def async_migrate_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> return True -async def async_unload_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: +async def async_unload_entry( + hass: HomeAssistant, config_entry: IslamicPrayerTimesConfigEntry +) -> bool: """Unload Islamic Prayer entry from config_entry.""" if unload_ok := await hass.config_entries.async_unload_platforms( config_entry, PLATFORMS ): - coordinator: IslamicPrayerDataUpdateCoordinator = hass.data[DOMAIN].pop( - config_entry.entry_id - ) + coordinator = config_entry.runtime_data if coordinator.event_unsub: coordinator.event_unsub() - if not hass.data[DOMAIN]: - del hass.data[DOMAIN] return unload_ok -async def async_options_updated(hass: HomeAssistant, entry: ConfigEntry) -> None: +async def async_options_updated( + hass: HomeAssistant, entry: IslamicPrayerTimesConfigEntry +) -> None: """Triggered by config entry options updates.""" - coordinator: IslamicPrayerDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id] + coordinator = entry.runtime_data if coordinator.event_unsub: coordinator.event_unsub() await coordinator.async_request_refresh() diff --git a/homeassistant/components/islamic_prayer_times/sensor.py b/homeassistant/components/islamic_prayer_times/sensor.py index eb042d83c49..c46b629d2d8 100644 --- a/homeassistant/components/islamic_prayer_times/sensor.py +++ b/homeassistant/components/islamic_prayer_times/sensor.py @@ -7,14 +7,14 @@ from homeassistant.components.sensor import ( SensorEntity, SensorEntityDescription, ) -from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.update_coordinator import CoordinatorEntity -from . import IslamicPrayerDataUpdateCoordinator +from . import IslamicPrayerTimesConfigEntry from .const import DOMAIN, NAME +from .coordinator import IslamicPrayerDataUpdateCoordinator SENSOR_TYPES: tuple[SensorEntityDescription, ...] = ( SensorEntityDescription( @@ -50,15 +50,12 @@ SENSOR_TYPES: tuple[SensorEntityDescription, ...] = ( async def async_setup_entry( hass: HomeAssistant, - config_entry: ConfigEntry, + config_entry: IslamicPrayerTimesConfigEntry, async_add_entities: AddEntitiesCallback, ) -> None: """Set up the Islamic prayer times sensor platform.""" - coordinator: IslamicPrayerDataUpdateCoordinator = hass.data[DOMAIN][ - config_entry.entry_id - ] - + coordinator = config_entry.runtime_data async_add_entities( IslamicPrayerTimeSensor(coordinator, description) for description in SENSOR_TYPES