Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit f44d65e

Browse files
authored
Migrate tolo to entry.runtime_data (home-assistant#153744)
1 parent a270bd7 commit f44d65e

File tree

12 files changed

+49
-71
lines changed

12 files changed

+49
-71
lines changed

‎homeassistant/components/tolo/__init__.py‎

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,10 @@
22

33
from __future__ import annotations
44

5-
from homeassistant.config_entries import ConfigEntry
65
from homeassistant.const import Platform
76
from homeassistant.core import HomeAssistant
87

9-
from .const import DOMAIN
10-
from .coordinator import ToloSaunaUpdateCoordinator
8+
from .coordinator import ToloConfigEntry, ToloSaunaUpdateCoordinator
119

1210
PLATFORMS = [
1311
Platform.BINARY_SENSOR,
@@ -22,21 +20,17 @@
2220
]
2321

2422

25-
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
23+
async def async_setup_entry(hass: HomeAssistant, entry: ToloConfigEntry) -> bool:
2624
"""Set up tolo from a config entry."""
2725
coordinator = ToloSaunaUpdateCoordinator(hass, entry)
2826
await coordinator.async_config_entry_first_refresh()
2927

30-
hass.data.setdefault(DOMAIN, {})[entry.entry_id] = coordinator
28+
entry.runtime_data = coordinator
3129
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
3230

3331
return True
3432

3533

36-
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
34+
async def async_unload_entry(hass: HomeAssistant, entry: ToloConfigEntry) -> bool:
3735
"""Unload a config entry."""
38-
unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
39-
if unload_ok:
40-
hass.data[DOMAIN].pop(entry.entry_id)
41-
42-
return unload_ok
36+
return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)

‎homeassistant/components/tolo/binary_sensor.py‎

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,21 @@
44
BinarySensorDeviceClass,
55
BinarySensorEntity,
66
)
7-
from homeassistant.config_entries import ConfigEntry
87
from homeassistant.const import EntityCategory
98
from homeassistant.core import HomeAssistant
109
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
1110

12-
from .const import DOMAIN
13-
from .coordinator import ToloSaunaUpdateCoordinator
11+
from .coordinator import ToloConfigEntry, ToloSaunaUpdateCoordinator
1412
from .entity import ToloSaunaCoordinatorEntity
1513

1614

1715
async def async_setup_entry(
1816
hass: HomeAssistant,
19-
entry: ConfigEntry,
17+
entry: ToloConfigEntry,
2018
async_add_entities: AddConfigEntryEntitiesCallback,
2119
) -> None:
2220
"""Set up binary sensors for TOLO Sauna."""
23-
coordinator = hass.data[DOMAIN][entry.entry_id]
21+
coordinator = entry.runtime_data
2422
async_add_entities(
2523
[
2624
ToloFlowInBinarySensor(coordinator, entry),
@@ -37,7 +35,7 @@ class ToloFlowInBinarySensor(ToloSaunaCoordinatorEntity, BinarySensorEntity):
3735
_attr_device_class = BinarySensorDeviceClass.OPENING
3836

3937
def __init__(
40-
self, coordinator: ToloSaunaUpdateCoordinator, entry: ConfigEntry
38+
self, coordinator: ToloSaunaUpdateCoordinator, entry: ToloConfigEntry
4139
) -> None:
4240
"""Initialize TOLO Water In Valve entity."""
4341
super().__init__(coordinator, entry)
@@ -58,7 +56,7 @@ class ToloFlowOutBinarySensor(ToloSaunaCoordinatorEntity, BinarySensorEntity):
5856
_attr_device_class = BinarySensorDeviceClass.OPENING
5957

6058
def __init__(
61-
self, coordinator: ToloSaunaUpdateCoordinator, entry: ConfigEntry
59+
self, coordinator: ToloSaunaUpdateCoordinator, entry: ToloConfigEntry
6260
) -> None:
6361
"""Initialize TOLO Water Out Valve entity."""
6462
super().__init__(coordinator, entry)

‎homeassistant/components/tolo/button.py‎

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,21 @@
33
from tololib import LampMode
44

55
from homeassistant.components.button import ButtonEntity
6-
from homeassistant.config_entries import ConfigEntry
76
from homeassistant.const import EntityCategory
87
from homeassistant.core import HomeAssistant
98
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
109

11-
from .const import DOMAIN
12-
from .coordinator import ToloSaunaUpdateCoordinator
10+
from .coordinator import ToloConfigEntry, ToloSaunaUpdateCoordinator
1311
from .entity import ToloSaunaCoordinatorEntity
1412

1513

1614
async def async_setup_entry(
1715
hass: HomeAssistant,
18-
entry: ConfigEntry,
16+
entry: ToloConfigEntry,
1917
async_add_entities: AddConfigEntryEntitiesCallback,
2018
) -> None:
2119
"""Set up buttons for TOLO Sauna."""
22-
coordinator = hass.data[DOMAIN][entry.entry_id]
20+
coordinator = entry.runtime_data
2321
async_add_entities(
2422
[
2523
ToloLampNextColorButton(coordinator, entry),
@@ -34,7 +32,7 @@ class ToloLampNextColorButton(ToloSaunaCoordinatorEntity, ButtonEntity):
3432
_attr_translation_key = "next_color"
3533

3634
def __init__(
37-
self, coordinator: ToloSaunaUpdateCoordinator, entry: ConfigEntry
35+
self, coordinator: ToloSaunaUpdateCoordinator, entry: ToloConfigEntry
3836
) -> None:
3937
"""Initialize lamp next color button entity."""
4038
super().__init__(coordinator, entry)

‎homeassistant/components/tolo/climate.py‎

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,23 +20,21 @@
2020
HVACAction,
2121
HVACMode,
2222
)
23-
from homeassistant.config_entries import ConfigEntry
2423
from homeassistant.const import ATTR_TEMPERATURE, PRECISION_WHOLE, UnitOfTemperature
2524
from homeassistant.core import HomeAssistant
2625
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
2726

28-
from .const import DOMAIN
29-
from .coordinator import ToloSaunaUpdateCoordinator
27+
from .coordinator import ToloConfigEntry, ToloSaunaUpdateCoordinator
3028
from .entity import ToloSaunaCoordinatorEntity
3129

3230

3331
async def async_setup_entry(
3432
hass: HomeAssistant,
35-
entry: ConfigEntry,
33+
entry: ToloConfigEntry,
3634
async_add_entities: AddConfigEntryEntitiesCallback,
3735
) -> None:
3836
"""Set up climate controls for TOLO Sauna."""
39-
coordinator = hass.data[DOMAIN][entry.entry_id]
37+
coordinator = entry.runtime_data
4038
async_add_entities([SaunaClimate(coordinator, entry)])
4139

4240

@@ -62,7 +60,7 @@ class SaunaClimate(ToloSaunaCoordinatorEntity, ClimateEntity):
6260
_attr_temperature_unit = UnitOfTemperature.CELSIUS
6361

6462
def __init__(
65-
self, coordinator: ToloSaunaUpdateCoordinator, entry: ConfigEntry
63+
self, coordinator: ToloSaunaUpdateCoordinator, entry: ToloConfigEntry
6664
) -> None:
6765
"""Initialize TOLO Sauna Climate entity."""
6866
super().__init__(coordinator, entry)

‎homeassistant/components/tolo/coordinator.py‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717

1818
_LOGGER = logging.getLogger(__name__)
1919

20+
type ToloConfigEntry = ConfigEntry[ToloSaunaUpdateCoordinator]
21+
2022

2123
class ToloSaunaData(NamedTuple):
2224
"""Compound class for reflecting full state (status and info) of a TOLO Sauna."""
@@ -28,9 +30,9 @@ class ToloSaunaData(NamedTuple):
2830
class ToloSaunaUpdateCoordinator(DataUpdateCoordinator[ToloSaunaData]):
2931
"""DataUpdateCoordinator for TOLO Sauna."""
3032

31-
config_entry: ConfigEntry
33+
config_entry: ToloConfigEntry
3234

33-
def __init__(self, hass: HomeAssistant, entry: ConfigEntry) -> None:
35+
def __init__(self, hass: HomeAssistant, entry: ToloConfigEntry) -> None:
3436
"""Initialize ToloSaunaUpdateCoordinator."""
3537
self.client = ToloClient(
3638
address=entry.data[CONF_HOST],

‎homeassistant/components/tolo/entity.py‎

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@
22

33
from __future__ import annotations
44

5-
from homeassistant.config_entries import ConfigEntry
65
from homeassistant.helpers.device_registry import DeviceInfo
76
from homeassistant.helpers.update_coordinator import CoordinatorEntity
87

98
from .const import DOMAIN
10-
from .coordinator import ToloSaunaUpdateCoordinator
9+
from .coordinator import ToloConfigEntry, ToloSaunaUpdateCoordinator
1110

1211

1312
class ToloSaunaCoordinatorEntity(CoordinatorEntity[ToloSaunaUpdateCoordinator]):
@@ -16,7 +15,7 @@ class ToloSaunaCoordinatorEntity(CoordinatorEntity[ToloSaunaUpdateCoordinator]):
1615
_attr_has_entity_name = True
1716

1817
def __init__(
19-
self, coordinator: ToloSaunaUpdateCoordinator, entry: ConfigEntry
18+
self, coordinator: ToloSaunaUpdateCoordinator, entry: ToloConfigEntry
2019
) -> None:
2120
"""Initialize ToloSaunaCoordinatorEntity."""
2221
super().__init__(coordinator)

‎homeassistant/components/tolo/fan.py‎

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,20 @@
55
from typing import Any
66

77
from homeassistant.components.fan import FanEntity, FanEntityFeature
8-
from homeassistant.config_entries import ConfigEntry
98
from homeassistant.core import HomeAssistant
109
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
1110

12-
from .const import DOMAIN
13-
from .coordinator import ToloSaunaUpdateCoordinator
11+
from .coordinator import ToloConfigEntry, ToloSaunaUpdateCoordinator
1412
from .entity import ToloSaunaCoordinatorEntity
1513

1614

1715
async def async_setup_entry(
1816
hass: HomeAssistant,
19-
entry: ConfigEntry,
17+
entry: ToloConfigEntry,
2018
async_add_entities: AddConfigEntryEntitiesCallback,
2119
) -> None:
2220
"""Set up fan controls for TOLO Sauna."""
23-
coordinator = hass.data[DOMAIN][entry.entry_id]
21+
coordinator = entry.runtime_data
2422
async_add_entities([ToloFan(coordinator, entry)])
2523

2624

@@ -31,7 +29,7 @@ class ToloFan(ToloSaunaCoordinatorEntity, FanEntity):
3129
_attr_supported_features = FanEntityFeature.TURN_OFF | FanEntityFeature.TURN_ON
3230

3331
def __init__(
34-
self, coordinator: ToloSaunaUpdateCoordinator, entry: ConfigEntry
32+
self, coordinator: ToloSaunaUpdateCoordinator, entry: ToloConfigEntry
3533
) -> None:
3634
"""Initialize TOLO fan entity."""
3735
super().__init__(coordinator, entry)

‎homeassistant/components/tolo/light.py‎

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,20 @@
55
from typing import Any
66

77
from homeassistant.components.light import ColorMode, LightEntity
8-
from homeassistant.config_entries import ConfigEntry
98
from homeassistant.core import HomeAssistant
109
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
1110

12-
from .const import DOMAIN
13-
from .coordinator import ToloSaunaUpdateCoordinator
11+
from .coordinator import ToloConfigEntry, ToloSaunaUpdateCoordinator
1412
from .entity import ToloSaunaCoordinatorEntity
1513

1614

1715
async def async_setup_entry(
1816
hass: HomeAssistant,
19-
entry: ConfigEntry,
17+
entry: ToloConfigEntry,
2018
async_add_entities: AddConfigEntryEntitiesCallback,
2119
) -> None:
2220
"""Set up light controls for TOLO Sauna."""
23-
coordinator = hass.data[DOMAIN][entry.entry_id]
21+
coordinator = entry.runtime_data
2422
async_add_entities([ToloLight(coordinator, entry)])
2523

2624

@@ -32,7 +30,7 @@ class ToloLight(ToloSaunaCoordinatorEntity, LightEntity):
3230
_attr_supported_color_modes = {ColorMode.ONOFF}
3331

3432
def __init__(
35-
self, coordinator: ToloSaunaUpdateCoordinator, entry: ConfigEntry
33+
self, coordinator: ToloSaunaUpdateCoordinator, entry: ToloConfigEntry
3634
) -> None:
3735
"""Initialize TOLO Sauna Light entity."""
3836
super().__init__(coordinator, entry)

‎homeassistant/components/tolo/number.py‎

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,11 @@
1515
)
1616

1717
from homeassistant.components.number import NumberEntity, NumberEntityDescription
18-
from homeassistant.config_entries import ConfigEntry
1918
from homeassistant.const import EntityCategory, UnitOfTime
2019
from homeassistant.core import HomeAssistant
2120
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
2221

23-
from .const import DOMAIN
24-
from .coordinator import ToloSaunaUpdateCoordinator
22+
from .coordinator import ToloConfigEntry, ToloSaunaUpdateCoordinator
2523
from .entity import ToloSaunaCoordinatorEntity
2624

2725

@@ -67,11 +65,11 @@ class ToloNumberEntityDescription(NumberEntityDescription):
6765

6866
async def async_setup_entry(
6967
hass: HomeAssistant,
70-
entry: ConfigEntry,
68+
entry: ToloConfigEntry,
7169
async_add_entities: AddConfigEntryEntitiesCallback,
7270
) -> None:
7371
"""Set up number controls for TOLO Sauna."""
74-
coordinator = hass.data[DOMAIN][entry.entry_id]
72+
coordinator = entry.runtime_data
7573
async_add_entities(
7674
ToloNumberEntity(coordinator, entry, description) for description in NUMBERS
7775
)
@@ -85,7 +83,7 @@ class ToloNumberEntity(ToloSaunaCoordinatorEntity, NumberEntity):
8583
def __init__(
8684
self,
8785
coordinator: ToloSaunaUpdateCoordinator,
88-
entry: ConfigEntry,
86+
entry: ToloConfigEntry,
8987
entity_description: ToloNumberEntityDescription,
9088
) -> None:
9189
"""Initialize TOLO Number entity."""

‎homeassistant/components/tolo/select.py‎

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,12 @@
88
from tololib import ToloClient, ToloSettings
99

1010
from homeassistant.components.select import SelectEntity, SelectEntityDescription
11-
from homeassistant.config_entries import ConfigEntry
1211
from homeassistant.const import EntityCategory
1312
from homeassistant.core import HomeAssistant
1413
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
1514

16-
from .const import DOMAIN, AromaTherapySlot, LampMode
17-
from .coordinator import ToloSaunaUpdateCoordinator
15+
from .const import AromaTherapySlot, LampMode
16+
from .coordinator import ToloConfigEntry, ToloSaunaUpdateCoordinator
1817
from .entity import ToloSaunaCoordinatorEntity
1918

2019

@@ -53,11 +52,11 @@ class ToloSelectEntityDescription(SelectEntityDescription):
5352

5453
async def async_setup_entry(
5554
hass: HomeAssistant,
56-
entry: ConfigEntry,
55+
entry: ToloConfigEntry,
5756
async_add_entities: AddConfigEntryEntitiesCallback,
5857
) -> None:
5958
"""Set up select entities for TOLO Sauna."""
60-
coordinator = hass.data[DOMAIN][entry.entry_id]
59+
coordinator = entry.runtime_data
6160
async_add_entities(
6261
ToloSelectEntity(coordinator, entry, description) for description in SELECTS
6362
)
@@ -73,7 +72,7 @@ class ToloSelectEntity(ToloSaunaCoordinatorEntity, SelectEntity):
7372
def __init__(
7473
self,
7574
coordinator: ToloSaunaUpdateCoordinator,
76-
entry: ConfigEntry,
75+
entry: ToloConfigEntry,
7776
entity_description: ToloSelectEntityDescription,
7877
) -> None:
7978
"""Initialize TOLO select entity."""

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /