From 1897be146751e077307d119a47503958738c297b Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Wed, 16 Aug 2023 22:12:22 +0200 Subject: [PATCH] Map demo and kitchen_sink weather condition codes once (#98510) Map demo and kitchen_sink condition codes once --- homeassistant/components/demo/weather.py | 9 ++++++--- homeassistant/components/kitchen_sink/weather.py | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/homeassistant/components/demo/weather.py b/homeassistant/components/demo/weather.py index 887a9212335..758b5075041 100644 --- a/homeassistant/components/demo/weather.py +++ b/homeassistant/components/demo/weather.py @@ -46,6 +46,11 @@ CONDITION_CLASSES: dict[str, list[str]] = { ATTR_CONDITION_WINDY_VARIANT: [], ATTR_CONDITION_EXCEPTIONAL: [], } +CONDITION_MAP = { + cond_code: cond_ha + for cond_ha, cond_codes in CONDITION_CLASSES.items() + for cond_code in cond_codes +} WEATHER_UPDATE_INTERVAL = timedelta(minutes=30) @@ -237,9 +242,7 @@ class DemoWeather(WeatherEntity): @property def condition(self) -> str: """Return the weather condition.""" - return [ - k for k, v in CONDITION_CLASSES.items() if self._condition.lower() in v - ][0] + return CONDITION_MAP[self._condition.lower()] async def async_forecast_daily(self) -> list[Forecast]: """Return the daily forecast.""" diff --git a/homeassistant/components/kitchen_sink/weather.py b/homeassistant/components/kitchen_sink/weather.py index aba30013746..8449b68b460 100644 --- a/homeassistant/components/kitchen_sink/weather.py +++ b/homeassistant/components/kitchen_sink/weather.py @@ -45,6 +45,11 @@ CONDITION_CLASSES: dict[str, list[str]] = { ATTR_CONDITION_WINDY_VARIANT: [], ATTR_CONDITION_EXCEPTIONAL: [], } +CONDITION_MAP = { + cond_code: cond_ha + for cond_ha, cond_codes in CONDITION_CLASSES.items() + for cond_code in cond_codes +} async def async_setup_entry( @@ -352,9 +357,7 @@ class DemoWeather(WeatherEntity): @property def condition(self) -> str: """Return the weather condition.""" - return [ - k for k, v in CONDITION_CLASSES.items() if self._condition.lower() in v - ][0] + return CONDITION_MAP[self._condition.lower()] @property def forecast(self) -> list[Forecast]: