Skip to content

Commit 37a154b

Browse files
authored
Migrate WAQI to runtime data (home-assistant#148977)
1 parent 3c87a3e commit 37a154b

3 files changed

Lines changed: 12 additions & 16 deletions

File tree

homeassistant/components/waqi/__init__.py

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,35 +4,30 @@
44

55
from aiowaqi import WAQIClient
66

7-
from homeassistant.config_entries import ConfigEntry
87
from homeassistant.const import CONF_API_KEY, Platform
98
from homeassistant.core import HomeAssistant
109
from homeassistant.helpers.aiohttp_client import async_get_clientsession
1110

12-
from .const import DOMAIN
13-
from .coordinator import WAQIDataUpdateCoordinator
11+
from .coordinator import WAQIConfigEntry, WAQIDataUpdateCoordinator
1412

1513
PLATFORMS: list[Platform] = [Platform.SENSOR]
1614

1715

18-
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
16+
async def async_setup_entry(hass: HomeAssistant, entry: WAQIConfigEntry) -> bool:
1917
"""Set up World Air Quality Index (WAQI) from a config entry."""
2018

2119
client = WAQIClient(session=async_get_clientsession(hass))
2220
client.authenticate(entry.data[CONF_API_KEY])
2321

2422
waqi_coordinator = WAQIDataUpdateCoordinator(hass, entry, client)
2523
await waqi_coordinator.async_config_entry_first_refresh()
26-
hass.data.setdefault(DOMAIN, {})[entry.entry_id] = waqi_coordinator
24+
entry.runtime_data = waqi_coordinator
2725

2826
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
2927

3028
return True
3129

3230

33-
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
31+
async def async_unload_entry(hass: HomeAssistant, entry: WAQIConfigEntry) -> bool:
3432
"""Unload a config entry."""
35-
if unload_ok := await hass.config_entries.async_unload_platforms(entry, PLATFORMS):
36-
hass.data[DOMAIN].pop(entry.entry_id)
37-
38-
return unload_ok
33+
return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)

homeassistant/components/waqi/coordinator.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,16 @@
1212

1313
from .const import CONF_STATION_NUMBER, DOMAIN, LOGGER
1414

15+
type WAQIConfigEntry = ConfigEntry[WAQIDataUpdateCoordinator]
16+
1517

1618
class WAQIDataUpdateCoordinator(DataUpdateCoordinator[WAQIAirQuality]):
1719
"""The WAQI Data Update Coordinator."""
1820

19-
config_entry: ConfigEntry
21+
config_entry: WAQIConfigEntry
2022

2123
def __init__(
22-
self, hass: HomeAssistant, config_entry: ConfigEntry, client: WAQIClient
24+
self, hass: HomeAssistant, config_entry: WAQIConfigEntry, client: WAQIClient
2325
) -> None:
2426
"""Initialize the WAQI data coordinator."""
2527
super().__init__(

homeassistant/components/waqi/sensor.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
SensorEntityDescription,
1515
SensorStateClass,
1616
)
17-
from homeassistant.config_entries import ConfigEntry
1817
from homeassistant.const import PERCENTAGE, UnitOfPressure, UnitOfTemperature
1918
from homeassistant.core import HomeAssistant
2019
from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
@@ -23,7 +22,7 @@
2322
from homeassistant.helpers.update_coordinator import CoordinatorEntity
2423

2524
from .const import DOMAIN
26-
from .coordinator import WAQIDataUpdateCoordinator
25+
from .coordinator import WAQIConfigEntry, WAQIDataUpdateCoordinator
2726

2827

2928
@dataclass(frozen=True, kw_only=True)
@@ -127,11 +126,11 @@ class WAQISensorEntityDescription(SensorEntityDescription):
127126

128127
async def async_setup_entry(
129128
hass: HomeAssistant,
130-
entry: ConfigEntry,
129+
entry: WAQIConfigEntry,
131130
async_add_entities: AddConfigEntryEntitiesCallback,
132131
) -> None:
133132
"""Set up the WAQI sensor."""
134-
coordinator: WAQIDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
133+
coordinator = entry.runtime_data
135134
async_add_entities(
136135
WaqiSensor(coordinator, sensor)
137136
for sensor in SENSORS

0 commit comments

Comments
 (0)