Home Assistant Unofficial Reference 2024.12.1
models.py
Go to the documentation of this file.
1 """Common data structures and helpers for accessing them."""
2 
3 from __future__ import annotations
4 
5 from collections.abc import Sequence
6 from dataclasses import dataclass
7 from typing import TYPE_CHECKING, cast
8 
9 import pywemo
10 
11 from homeassistant.core import HomeAssistant, callback
12 
13 from .const import DOMAIN
14 
15 if TYPE_CHECKING: # Avoid circular dependencies.
16  from . import HostPortTuple, WemoDiscovery, WemoDispatcher
17  from .coordinator import DeviceCoordinator
18 
19 
20 @dataclass
22  """Config entry state data."""
23 
24  device_coordinators: dict[str, DeviceCoordinator]
25  discovery: WemoDiscovery
26  dispatcher: WemoDispatcher
27 
28 
29 @dataclass
30 class WemoData:
31  """Component state data."""
32 
33  discovery_enabled: bool
34  static_config: Sequence[HostPortTuple]
35  registry: pywemo.SubscriptionRegistry
36  # config_entry_data is set when the config entry is loaded and unset when it's
37  # unloaded. It's a programmer error if config_entry_data is accessed when the
38  # config entry is not loaded
39  config_entry_data: WemoConfigEntryData = None # type: ignore[assignment]
40 
41 
42 @callback
43 def async_wemo_data(hass: HomeAssistant) -> WemoData:
44  """Fetch WemoData with proper typing."""
45  return cast(WemoData, hass.data[DOMAIN])
WemoData async_wemo_data(HomeAssistant hass)
Definition: models.py:43