perf: wmo_to_russian использует модульную константу _WMO_MAPPING вместо создания dict при каждом вызове

This commit is contained in:
deadzilla 2026-07-11 23:56:54 +05:00
parent b22b02d65e
commit 49cb1a430b

View File

@ -90,39 +90,41 @@ async def fetch_open_meteo(
return None
_WMO_MAPPING: dict[int, str] = {
0: "Ясно",
1: "Ясно",
2: "Переменная облачность",
3: "Пасмурно",
45: "Туман",
48: "Туман",
51: "Лёгкая морось",
53: "Морось",
55: "Сильная морось",
56: "Ледяная морось",
57: "Сильная ледяная морось",
61: "Небольшой дождь",
63: "Дождь",
65: "Сильный дождь",
66: "Ледяной дождь",
67: "Сильный ледяной дождь",
71: "Небольшой снег",
73: "Снег",
75: "Сильный снег",
77: "Снежная крупа",
80: "Небольшой ливень",
81: "Ливень",
82: "Сильный ливень",
85: "Снежный ливень",
86: "Сильный снежный ливень",
95: "Гроза",
96: "Гроза с градом",
99: "Сильная гроза с градом",
}
def wmo_to_russian(code: Optional[int]) -> str:
"""Перевод WMO weather code в русский."""
mapping = {
0: "Ясно",
1: "Ясно",
2: "Переменная облачность",
3: "Пасмурно",
45: "Туман",
48: "Туман",
51: "Лёгкая морось",
53: "Морось",
55: "Сильная морось",
56: "Ледяная морось",
57: "Сильная ледяная морось",
61: "Небольшой дождь",
63: "Дождь",
65: "Сильный дождь",
66: "Ледяной дождь",
67: "Сильный ледяной дождь",
71: "Небольшой снег",
73: "Снег",
75: "Сильный снег",
77: "Снежная крупа",
80: "Небольшой ливень",
81: "Ливень",
82: "Сильный ливень",
85: "Снежный ливень",
86: "Сильный снежный ливень",
95: "Гроза",
96: "Гроза с градом",
99: "Сильная гроза с градом",
}
return mapping.get(code, "Неизвестно")
return _WMO_MAPPING.get(code, "Неизвестно")
_WEATHER_MAPPING = [