From 6bd3648c7736fc01704ea4cb7a10b9c751c6f599 Mon Sep 17 00:00:00 2001
From: epenet <6771947+epenet@users.noreply.github.com>
Date: Wed, 15 May 2024 12:13:05 +0200
Subject: [PATCH] Move melnor coordinator to separate module (#117486)

---
 homeassistant/components/melnor/__init__.py   |  2 +-
 .../components/melnor/coordinator.py          | 33 ++++++++++++++++++
 homeassistant/components/melnor/models.py     | 34 ++-----------------
 homeassistant/components/melnor/number.py     |  7 ++--
 homeassistant/components/melnor/sensor.py     |  8 ++---
 homeassistant/components/melnor/switch.py     |  7 ++--
 homeassistant/components/melnor/time.py       |  7 ++--
 7 files changed, 45 insertions(+), 53 deletions(-)
 create mode 100644 homeassistant/components/melnor/coordinator.py

diff --git a/homeassistant/components/melnor/__init__.py b/homeassistant/components/melnor/__init__.py
index 9a15e81dc22..afaf8eb95f8 100644
--- a/homeassistant/components/melnor/__init__.py
+++ b/homeassistant/components/melnor/__init__.py
@@ -12,7 +12,7 @@ from homeassistant.core import HomeAssistant, callback
 from homeassistant.exceptions import ConfigEntryNotReady
 
 from .const import DOMAIN
-from .models import MelnorDataUpdateCoordinator
+from .coordinator import MelnorDataUpdateCoordinator
 
 PLATFORMS: list[Platform] = [
     Platform.NUMBER,
diff --git a/homeassistant/components/melnor/coordinator.py b/homeassistant/components/melnor/coordinator.py
new file mode 100644
index 00000000000..669fe916082
--- /dev/null
+++ b/homeassistant/components/melnor/coordinator.py
@@ -0,0 +1,33 @@
+"""Coordinator for the Melnor integration."""
+
+from datetime import timedelta
+import logging
+
+from melnor_bluetooth.device import Device
+
+from homeassistant.core import HomeAssistant
+from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
+
+_LOGGER = logging.getLogger(__name__)
+
+
+class MelnorDataUpdateCoordinator(DataUpdateCoordinator[Device]):
+    """Melnor data update coordinator."""
+
+    _device: Device
+
+    def __init__(self, hass: HomeAssistant, device: Device) -> None:
+        """Initialize my coordinator."""
+        super().__init__(
+            hass,
+            _LOGGER,
+            name="Melnor Bluetooth",
+            update_interval=timedelta(seconds=5),
+        )
+        self._device = device
+
+    async def _async_update_data(self):
+        """Update the device state."""
+
+        await self._device.fetch_state()
+        return self._device
diff --git a/homeassistant/components/melnor/models.py b/homeassistant/components/melnor/models.py
index f30edbe3177..933b2972d6a 100644
--- a/homeassistant/components/melnor/models.py
+++ b/homeassistant/components/melnor/models.py
@@ -1,45 +1,17 @@
 """Melnor integration models."""
 
 from collections.abc import Callable
-from datetime import timedelta
-import logging
 from typing import TypeVar
 
 from melnor_bluetooth.device import Device, Valve
 
 from homeassistant.components.number import EntityDescription
-from homeassistant.core import HomeAssistant, callback
+from homeassistant.core import callback
 from homeassistant.helpers.device_registry import DeviceInfo
-from homeassistant.helpers.update_coordinator import (
-    CoordinatorEntity,
-    DataUpdateCoordinator,
-)
+from homeassistant.helpers.update_coordinator import CoordinatorEntity
 
 from .const import DOMAIN
-
-_LOGGER = logging.getLogger(__name__)
-
-
-class MelnorDataUpdateCoordinator(DataUpdateCoordinator[Device]):  # pylint: disable=hass-enforce-coordinator-module
-    """Melnor data update coordinator."""
-
-    _device: Device
-
-    def __init__(self, hass: HomeAssistant, device: Device) -> None:
-        """Initialize my coordinator."""
-        super().__init__(
-            hass,
-            _LOGGER,
-            name="Melnor Bluetooth",
-            update_interval=timedelta(seconds=5),
-        )
-        self._device = device
-
-    async def _async_update_data(self):
-        """Update the device state."""
-
-        await self._device.fetch_state()
-        return self._device
+from .coordinator import MelnorDataUpdateCoordinator
 
 
 class MelnorBluetoothEntity(CoordinatorEntity[MelnorDataUpdateCoordinator]):
diff --git a/homeassistant/components/melnor/number.py b/homeassistant/components/melnor/number.py
index 33d9fa443b1..beaa0fd913b 100644
--- a/homeassistant/components/melnor/number.py
+++ b/homeassistant/components/melnor/number.py
@@ -19,11 +19,8 @@ from homeassistant.core import HomeAssistant
 from homeassistant.helpers.entity_platform import AddEntitiesCallback
 
 from .const import DOMAIN
-from .models import (
-    MelnorDataUpdateCoordinator,
-    MelnorZoneEntity,
-    get_entities_for_valves,
-)
+from .coordinator import MelnorDataUpdateCoordinator
+from .models import MelnorZoneEntity, get_entities_for_valves
 
 
 @dataclass(frozen=True, kw_only=True)
diff --git a/homeassistant/components/melnor/sensor.py b/homeassistant/components/melnor/sensor.py
index 6528773d9d8..233dada8ab2 100644
--- a/homeassistant/components/melnor/sensor.py
+++ b/homeassistant/components/melnor/sensor.py
@@ -27,12 +27,8 @@ from homeassistant.helpers.typing import StateType
 from homeassistant.util import dt as dt_util
 
 from .const import DOMAIN
-from .models import (
-    MelnorBluetoothEntity,
-    MelnorDataUpdateCoordinator,
-    MelnorZoneEntity,
-    get_entities_for_valves,
-)
+from .coordinator import MelnorDataUpdateCoordinator
+from .models import MelnorBluetoothEntity, MelnorZoneEntity, get_entities_for_valves
 
 
 def watering_seconds_left(valve: Valve) -> datetime | None:
diff --git a/homeassistant/components/melnor/switch.py b/homeassistant/components/melnor/switch.py
index f912db1e981..efa779f04b0 100644
--- a/homeassistant/components/melnor/switch.py
+++ b/homeassistant/components/melnor/switch.py
@@ -18,11 +18,8 @@ from homeassistant.core import HomeAssistant
 from homeassistant.helpers.entity_platform import AddEntitiesCallback
 
 from .const import DOMAIN
-from .models import (
-    MelnorDataUpdateCoordinator,
-    MelnorZoneEntity,
-    get_entities_for_valves,
-)
+from .coordinator import MelnorDataUpdateCoordinator
+from .models import MelnorZoneEntity, get_entities_for_valves
 
 
 @dataclass(frozen=True, kw_only=True)
diff --git a/homeassistant/components/melnor/time.py b/homeassistant/components/melnor/time.py
index d2d05f6517f..373a22c8ff4 100644
--- a/homeassistant/components/melnor/time.py
+++ b/homeassistant/components/melnor/time.py
@@ -16,11 +16,8 @@ from homeassistant.core import HomeAssistant
 from homeassistant.helpers.entity_platform import AddEntitiesCallback
 
 from .const import DOMAIN
-from .models import (
-    MelnorDataUpdateCoordinator,
-    MelnorZoneEntity,
-    get_entities_for_valves,
-)
+from .coordinator import MelnorDataUpdateCoordinator
+from .models import MelnorZoneEntity, get_entities_for_valves
 
 
 @dataclass(frozen=True, kw_only=True)
-- 
GitLab