Home Assistant Unofficial Reference 2024.12.1
diagnostics.py
Go to the documentation of this file.
1 """Diagnostics support for Launch Library."""
2 
3 from __future__ import annotations
4 
5 from typing import Any
6 
7 from pylaunches.types import Event, Launch
8 
9 from homeassistant.config_entries import ConfigEntry
10 from homeassistant.core import HomeAssistant
11 from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
12 
13 from . import LaunchLibraryData
14 from .const import DOMAIN
15 
16 
18  hass: HomeAssistant,
19  entry: ConfigEntry,
20 ) -> dict[str, Any]:
21  """Return diagnostics for a config entry."""
22 
23  coordinator: DataUpdateCoordinator[LaunchLibraryData] = hass.data[DOMAIN]
24  if coordinator.data is None:
25  return {}
26 
27  def _first_element(data: list[Launch | Event]) -> dict[str, Any] | None:
28  if not data:
29  return None
30  return data[0]
31 
32  return {
33  "next_launch": _first_element(coordinator.data["upcoming_launches"]),
34  "starship_launch": _first_element(
35  coordinator.data["starship_events"].upcoming.launches
36  ),
37  "starship_event": _first_element(
38  coordinator.data["starship_events"].upcoming.events
39  ),
40  }
dict[str, Any] async_get_config_entry_diagnostics(HomeAssistant hass, ConfigEntry entry)
Definition: diagnostics.py:20