From a08b74c550fc2e615a234b2b7add1f915ae6ea2f Mon Sep 17 00:00:00 2001 From: Jan-Philipp Benecke Date: Thu, 21 Sep 2023 15:20:58 +0200 Subject: [PATCH] Move coolmaster coordinator to its own file (#100425) --- .coveragerc | 1 + .../components/coolmaster/__init__.py | 29 +---------------- .../components/coolmaster/coordinator.py | 31 +++++++++++++++++++ 3 files changed, 33 insertions(+), 28 deletions(-) create mode 100644 homeassistant/components/coolmaster/coordinator.py diff --git a/.coveragerc b/.coveragerc index 5cdb7ec1a14..66f7185ee55 100644 --- a/.coveragerc +++ b/.coveragerc @@ -182,6 +182,7 @@ omit = homeassistant/components/control4/__init__.py homeassistant/components/control4/director_utils.py homeassistant/components/control4/light.py + homeassistant/components/coolmaster/coordinator.py homeassistant/components/cppm_tracker/device_tracker.py homeassistant/components/crownstone/__init__.py homeassistant/components/crownstone/devices.py diff --git a/homeassistant/components/coolmaster/__init__.py b/homeassistant/components/coolmaster/__init__.py index 289e70e8067..eaca8949b14 100644 --- a/homeassistant/components/coolmaster/__init__.py +++ b/homeassistant/components/coolmaster/__init__.py @@ -1,18 +1,13 @@ """The Coolmaster integration.""" -import logging - from pycoolmasternet_async import CoolMasterNet -from homeassistant.components.climate import SCAN_INTERVAL from homeassistant.config_entries import ConfigEntry from homeassistant.const import CONF_HOST, CONF_PORT, Platform from homeassistant.core import HomeAssistant from homeassistant.exceptions import ConfigEntryNotReady -from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed from .const import CONF_SWING_SUPPORT, DATA_COORDINATOR, DATA_INFO, DOMAIN - -_LOGGER = logging.getLogger(__name__) +from .coordinator import CoolmasterDataUpdateCoordinator PLATFORMS = [Platform.CLIMATE, Platform.BINARY_SENSOR, Platform.BUTTON, Platform.SENSOR] @@ -60,25 +55,3 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: if unload_ok: hass.data[DOMAIN].pop(entry.entry_id) return unload_ok - - -class CoolmasterDataUpdateCoordinator(DataUpdateCoordinator): - """Class to manage fetching Coolmaster data.""" - - def __init__(self, hass, coolmaster): - """Initialize global Coolmaster data updater.""" - self._coolmaster = coolmaster - - super().__init__( - hass, - _LOGGER, - name=DOMAIN, - update_interval=SCAN_INTERVAL, - ) - - async def _async_update_data(self): - """Fetch data from Coolmaster.""" - try: - return await self._coolmaster.status() - except OSError as error: - raise UpdateFailed from error diff --git a/homeassistant/components/coolmaster/coordinator.py b/homeassistant/components/coolmaster/coordinator.py new file mode 100644 index 00000000000..241f287e297 --- /dev/null +++ b/homeassistant/components/coolmaster/coordinator.py @@ -0,0 +1,31 @@ +"""DataUpdateCoordinator for coolmaster integration.""" +import logging + +from homeassistant.components.climate import SCAN_INTERVAL +from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed + +from .const import DOMAIN + +_LOGGER = logging.getLogger(__name__) + + +class CoolmasterDataUpdateCoordinator(DataUpdateCoordinator): + """Class to manage fetching Coolmaster data.""" + + def __init__(self, hass, coolmaster): + """Initialize global Coolmaster data updater.""" + self._coolmaster = coolmaster + + super().__init__( + hass, + _LOGGER, + name=DOMAIN, + update_interval=SCAN_INTERVAL, + ) + + async def _async_update_data(self): + """Fetch data from Coolmaster.""" + try: + return await self._coolmaster.status() + except OSError as error: + raise UpdateFailed from error