1 """Constants for AccuWeather integration."""
3 from __future__
import annotations
5 from datetime
import timedelta
6 from typing
import Final
9 ATTR_CONDITION_CLEAR_NIGHT,
10 ATTR_CONDITION_CLOUDY,
11 ATTR_CONDITION_EXCEPTIONAL,
14 ATTR_CONDITION_LIGHTNING,
15 ATTR_CONDITION_LIGHTNING_RAINY,
16 ATTR_CONDITION_PARTLYCLOUDY,
17 ATTR_CONDITION_POURING,
20 ATTR_CONDITION_SNOWY_RAINY,
25 API_METRIC: Final =
"Metric"
26 ATTRIBUTION: Final =
"Data provided by AccuWeather"
27 ATTR_CATEGORY: Final =
"Category"
28 ATTR_DIRECTION: Final =
"Direction"
29 ATTR_ENGLISH: Final =
"English"
30 ATTR_LEVEL: Final =
"level"
31 ATTR_SPEED: Final =
"Speed"
32 ATTR_VALUE: Final =
"Value"
33 DOMAIN: Final =
"accuweather"
34 MANUFACTURER: Final =
"AccuWeather, Inc."
35 MAX_FORECAST_DAYS: Final = 4
37 CONDITION_CLASSES: Final[dict[str, list[int]]] = {
38 ATTR_CONDITION_CLEAR_NIGHT: [33, 34, 37],
39 ATTR_CONDITION_CLOUDY: [7, 8, 38],
40 ATTR_CONDITION_EXCEPTIONAL: [24, 30, 31],
41 ATTR_CONDITION_FOG: [11],
42 ATTR_CONDITION_HAIL: [25],
43 ATTR_CONDITION_LIGHTNING: [15],
44 ATTR_CONDITION_LIGHTNING_RAINY: [16, 17, 41, 42],
45 ATTR_CONDITION_PARTLYCLOUDY: [3, 4, 6, 35, 36],
46 ATTR_CONDITION_POURING: [18],
47 ATTR_CONDITION_RAINY: [12, 13, 14, 26, 39, 40],
48 ATTR_CONDITION_SNOWY: [19, 20, 21, 22, 23, 43, 44],
49 ATTR_CONDITION_SNOWY_RAINY: [29],
50 ATTR_CONDITION_SUNNY: [1, 2, 5],
51 ATTR_CONDITION_WINDY: [32],
55 for cond_ha, cond_codes
in CONDITION_CLASSES.items()
56 for cond_code
in cond_codes