1 """Constants for National Weather Service Integration."""
3 from __future__
import annotations
5 from datetime
import timedelta
6 from typing
import Final
10 ATTR_CONDITION_EXCEPTIONAL,
13 ATTR_CONDITION_LIGHTNING,
14 ATTR_CONDITION_LIGHTNING_RAINY,
15 ATTR_CONDITION_PARTLYCLOUDY,
16 ATTR_CONDITION_POURING,
19 ATTR_CONDITION_SNOWY_RAINY,
21 ATTR_CONDITION_WINDY_VARIANT,
26 CONF_STATION =
"station"
28 ATTRIBUTION =
"Data from National Weather Service/NOAA"
30 ATTR_FORECAST_SHORT_DESCRIPTION: Final =
"short_description"
31 ATTR_FORECAST_DETAILED_DESCRIPTION: Final =
"detailed_description"
33 CONDITION_CLASSES: dict[str, list[str]] = {
34 ATTR_CONDITION_EXCEPTIONAL: [
36 "Hurricane conditions",
37 "Tropical storm conditions",
44 ATTR_CONDITION_SNOWY: [
"Snow",
"Sleet",
"Snow/sleet",
"Blizzard"],
45 ATTR_CONDITION_SNOWY_RAINY: [
52 ATTR_CONDITION_HAIL: [],
53 ATTR_CONDITION_LIGHTNING_RAINY: [
54 "Thunderstorm (high cloud cover)",
55 "Thunderstorm (medium cloud cover)",
56 "Thunderstorm (low cloud cover)",
58 ATTR_CONDITION_LIGHTNING: [],
59 ATTR_CONDITION_POURING: [],
60 ATTR_CONDITION_RAINY: [
62 "Rain showers (high cloud cover)",
63 "Rain showers (low cloud cover)",
65 ATTR_CONDITION_WINDY_VARIANT: [
"Mostly cloudy and windy",
"Overcast and windy"],
66 ATTR_CONDITION_WINDY: [
67 "Fair/clear and windy",
68 "A few clouds and windy",
69 "Partly cloudy and windy",
71 ATTR_CONDITION_FOG: [
"Fog/mist"],
72 "clear": [
"Fair/clear"],
73 ATTR_CONDITION_CLOUDY: [
"Mostly cloudy",
"Overcast"],
74 ATTR_CONDITION_PARTLYCLOUDY: [
"A few clouds",
"Partly cloudy"],
85 DEBOUNCE_TIME = 10 * 60