From 5a52e4c71d801b34198c4fa972ffc4a747664412 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Mon, 23 Sep 2024 08:59:23 +0200 Subject: [PATCH] Move evil_genius_labs base entity to separate module (#126480) --- .../components/evil_genius_labs/__init__.py | 24 +-------------- .../components/evil_genius_labs/entity.py | 30 +++++++++++++++++++ .../components/evil_genius_labs/light.py | 2 +- .../components/evil_genius_labs/util.py | 2 +- 4 files changed, 33 insertions(+), 25 deletions(-) create mode 100644 homeassistant/components/evil_genius_labs/entity.py diff --git a/homeassistant/components/evil_genius_labs/__init__.py b/homeassistant/components/evil_genius_labs/__init__.py index afc6fecd9a4..d5bc3a564a2 100644 --- a/homeassistant/components/evil_genius_labs/__init__.py +++ b/homeassistant/components/evil_genius_labs/__init__.py @@ -7,9 +7,7 @@ import pyevilgenius from homeassistant.config_entries import ConfigEntry from homeassistant.const import Platform from homeassistant.core import HomeAssistant -from homeassistant.helpers import aiohttp_client, device_registry as dr -from homeassistant.helpers.device_registry import DeviceInfo -from homeassistant.helpers.update_coordinator import CoordinatorEntity +from homeassistant.helpers import aiohttp_client from .const import DOMAIN from .coordinator import EvilGeniusUpdateCoordinator @@ -41,23 +39,3 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: hass.data[DOMAIN].pop(entry.entry_id) return unload_ok - - -class EvilGeniusEntity(CoordinatorEntity[EvilGeniusUpdateCoordinator]): - """Base entity for Evil Genius.""" - - _attr_has_entity_name = True - - @property - def device_info(self) -> DeviceInfo: - """Return device info.""" - info = self.coordinator.info - return DeviceInfo( - identifiers={(DOMAIN, info["wiFiChipId"])}, - connections={(dr.CONNECTION_NETWORK_MAC, info["macAddress"])}, - name=self.coordinator.device_name, - model=self.coordinator.product_name, - manufacturer="Evil Genius Labs", - sw_version=info["coreVersion"].replace("_", "."), - configuration_url=self.coordinator.client.url, - ) diff --git a/homeassistant/components/evil_genius_labs/entity.py b/homeassistant/components/evil_genius_labs/entity.py new file mode 100644 index 00000000000..a690b385c56 --- /dev/null +++ b/homeassistant/components/evil_genius_labs/entity.py @@ -0,0 +1,30 @@ +"""The Evil Genius Labs integration.""" + +from __future__ import annotations + +from homeassistant.helpers import device_registry as dr +from homeassistant.helpers.device_registry import DeviceInfo +from homeassistant.helpers.update_coordinator import CoordinatorEntity + +from .const import DOMAIN +from .coordinator import EvilGeniusUpdateCoordinator + + +class EvilGeniusEntity(CoordinatorEntity[EvilGeniusUpdateCoordinator]): + """Base entity for Evil Genius.""" + + _attr_has_entity_name = True + + @property + def device_info(self) -> DeviceInfo: + """Return device info.""" + info = self.coordinator.info + return DeviceInfo( + identifiers={(DOMAIN, info["wiFiChipId"])}, + connections={(dr.CONNECTION_NETWORK_MAC, info["macAddress"])}, + name=self.coordinator.device_name, + model=self.coordinator.product_name, + manufacturer="Evil Genius Labs", + sw_version=info["coreVersion"].replace("_", "."), + configuration_url=self.coordinator.client.url, + ) diff --git a/homeassistant/components/evil_genius_labs/light.py b/homeassistant/components/evil_genius_labs/light.py index 89bdcae9ef7..3556672dcce 100644 --- a/homeassistant/components/evil_genius_labs/light.py +++ b/homeassistant/components/evil_genius_labs/light.py @@ -11,9 +11,9 @@ from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback -from . import EvilGeniusEntity from .const import DOMAIN from .coordinator import EvilGeniusUpdateCoordinator +from .entity import EvilGeniusEntity from .util import update_when_done HA_NO_EFFECT = "None" diff --git a/homeassistant/components/evil_genius_labs/util.py b/homeassistant/components/evil_genius_labs/util.py index f3c86f2666f..1182cab3e8b 100644 --- a/homeassistant/components/evil_genius_labs/util.py +++ b/homeassistant/components/evil_genius_labs/util.py @@ -6,7 +6,7 @@ from collections.abc import Awaitable, Callable, Coroutine from functools import wraps from typing import Any, Concatenate -from . import EvilGeniusEntity +from .entity import EvilGeniusEntity def update_when_done[_EvilGeniusEntityT: EvilGeniusEntity, **_P, _R](