mirror of https://github.com/home-assistant/core
32 lines
885 B
Python
32 lines
885 B
Python
"""Helper class for the Ambient Weather Network integration."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from typing import Any
|
|
|
|
from .const import (
|
|
API_LAST_DATA,
|
|
API_STATION_COORDS,
|
|
API_STATION_INFO,
|
|
API_STATION_LOCATION,
|
|
API_STATION_NAME,
|
|
API_STATION_TYPE,
|
|
)
|
|
|
|
|
|
def get_station_name(station: dict[str, Any]) -> str:
|
|
"""Pick a station name.
|
|
|
|
Station names can be empty, in which case we construct the name from
|
|
the location and device type.
|
|
"""
|
|
if name := station.get(API_STATION_INFO, {}).get(API_STATION_NAME):
|
|
return str(name)
|
|
location = (
|
|
station.get(API_STATION_INFO, {})
|
|
.get(API_STATION_COORDS, {})
|
|
.get(API_STATION_LOCATION)
|
|
)
|
|
station_type = station.get(API_LAST_DATA, {}).get(API_STATION_TYPE)
|
|
return f"{location}{'' if location is None or station_type is None else ' '}{station_type}"
|