Home Assistant Unofficial Reference 2024.12.1
const.py
Go to the documentation of this file.
1 """Constants for AccuWeather integration."""
2 
3 from __future__ import annotations
4 
5 from datetime import timedelta
6 from typing import Final
7 
9  ATTR_CONDITION_CLEAR_NIGHT,
10  ATTR_CONDITION_CLOUDY,
11  ATTR_CONDITION_EXCEPTIONAL,
12  ATTR_CONDITION_FOG,
13  ATTR_CONDITION_HAIL,
14  ATTR_CONDITION_LIGHTNING,
15  ATTR_CONDITION_LIGHTNING_RAINY,
16  ATTR_CONDITION_PARTLYCLOUDY,
17  ATTR_CONDITION_POURING,
18  ATTR_CONDITION_RAINY,
19  ATTR_CONDITION_SNOWY,
20  ATTR_CONDITION_SNOWY_RAINY,
21  ATTR_CONDITION_SUNNY,
22  ATTR_CONDITION_WINDY,
23 )
24 
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
36 
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],
52 }
53 CONDITION_MAP = {
54  cond_code: cond_ha
55  for cond_ha, cond_codes in CONDITION_CLASSES.items()
56  for cond_code in cond_codes
57 }
58 UPDATE_INTERVAL_OBSERVATION = timedelta(minutes=40)
59 UPDATE_INTERVAL_DAILY_FORECAST = timedelta(hours=6)