From f01ece1d3dfa018783e2e0b92a1ac99ad45ddf85 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Wed, 11 Feb 2026 16:01:31 +0100 Subject: [PATCH] Move TadoConfigEntry declaration (#162811) --- homeassistant/components/tado/__init__.py | 12 ++++++------ homeassistant/components/tado/binary_sensor.py | 3 +-- homeassistant/components/tado/climate.py | 3 +-- homeassistant/components/tado/config_flow.py | 4 ++-- homeassistant/components/tado/coordinator.py | 17 +++++++++++++---- homeassistant/components/tado/device_tracker.py | 3 +-- homeassistant/components/tado/diagnostics.py | 2 +- homeassistant/components/tado/models.py | 13 ------------- homeassistant/components/tado/sensor.py | 3 +-- homeassistant/components/tado/switch.py | 2 +- homeassistant/components/tado/water_heater.py | 3 +-- 11 files changed, 28 insertions(+), 37 deletions(-) delete mode 100644 homeassistant/components/tado/models.py diff --git a/homeassistant/components/tado/__init__.py b/homeassistant/components/tado/__init__.py index e9843efdea6..9ecdfca48e8 100644 --- a/homeassistant/components/tado/__init__.py +++ b/homeassistant/components/tado/__init__.py @@ -7,7 +7,6 @@ import PyTado import PyTado.exceptions from PyTado.interface import Tado -from homeassistant.config_entries import ConfigEntry from homeassistant.const import ( APPLICATION_NAME, CONF_PASSWORD, @@ -34,8 +33,12 @@ from .const import ( DOMAIN, TADO_BRIDGE_MODELS, ) -from .coordinator import TadoDataUpdateCoordinator, TadoMobileDeviceUpdateCoordinator -from .models import TadoData +from .coordinator import ( + TadoConfigEntry, + TadoData, + TadoDataUpdateCoordinator, + TadoMobileDeviceUpdateCoordinator, +) from .services import async_setup_services PLATFORMS = [ @@ -63,9 +66,6 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: return True -type TadoConfigEntry = ConfigEntry[TadoData] - - async def async_setup_entry(hass: HomeAssistant, entry: TadoConfigEntry) -> bool: """Set up Tado from a config entry.""" if CONF_REFRESH_TOKEN not in entry.data: diff --git a/homeassistant/components/tado/binary_sensor.py b/homeassistant/components/tado/binary_sensor.py index 8cec32e20f0..1cc07ea6f97 100644 --- a/homeassistant/components/tado/binary_sensor.py +++ b/homeassistant/components/tado/binary_sensor.py @@ -16,7 +16,6 @@ from homeassistant.core import HomeAssistant, callback from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback from homeassistant.helpers.typing import StateType -from . import TadoConfigEntry from .const import ( TYPE_AIR_CONDITIONING, TYPE_BATTERY, @@ -24,7 +23,7 @@ from .const import ( TYPE_HOT_WATER, TYPE_POWER, ) -from .coordinator import TadoDataUpdateCoordinator +from .coordinator import TadoConfigEntry, TadoDataUpdateCoordinator from .entity import TadoDeviceEntity, TadoZoneEntity _LOGGER = logging.getLogger(__name__) diff --git a/homeassistant/components/tado/climate.py b/homeassistant/components/tado/climate.py index e6ae623d1fc..09ac2335368 100644 --- a/homeassistant/components/tado/climate.py +++ b/homeassistant/components/tado/climate.py @@ -29,7 +29,6 @@ from homeassistant.helpers import config_validation as cv, entity_platform from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback from homeassistant.helpers.typing import VolDictType -from . import TadoConfigEntry from .const import ( CONST_EXCLUSIVE_OVERLAY_GROUP, CONST_FAN_AUTO, @@ -71,7 +70,7 @@ from .const import ( TYPE_AIR_CONDITIONING, TYPE_HEATING, ) -from .coordinator import TadoDataUpdateCoordinator +from .coordinator import TadoConfigEntry, TadoDataUpdateCoordinator from .entity import TadoZoneEntity from .helper import decide_duration, decide_overlay_mode, generate_supported_fanmodes diff --git a/homeassistant/components/tado/config_flow.py b/homeassistant/components/tado/config_flow.py index 48c3d30cb2b..b161661f310 100644 --- a/homeassistant/components/tado/config_flow.py +++ b/homeassistant/components/tado/config_flow.py @@ -15,7 +15,6 @@ from yarl import URL from homeassistant.config_entries import ( SOURCE_REAUTH, - ConfigEntry, ConfigFlow, ConfigFlowResult, OptionsFlow, @@ -31,6 +30,7 @@ from .const import ( CONST_OVERLAY_TADO_OPTIONS, DOMAIN, ) +from .coordinator import TadoConfigEntry _LOGGER = logging.getLogger(__name__) @@ -176,7 +176,7 @@ class TadoConfigFlow(ConfigFlow, domain=DOMAIN): @staticmethod @callback def async_get_options_flow( - config_entry: ConfigEntry, + config_entry: TadoConfigEntry, ) -> OptionsFlowHandler: """Get the options flow for this handler.""" return OptionsFlowHandler() diff --git a/homeassistant/components/tado/coordinator.py b/homeassistant/components/tado/coordinator.py index 09c6ec40208..d2461dafd93 100644 --- a/homeassistant/components/tado/coordinator.py +++ b/homeassistant/components/tado/coordinator.py @@ -2,21 +2,20 @@ from __future__ import annotations +from dataclasses import dataclass from datetime import datetime, timedelta import logging -from typing import TYPE_CHECKING, Any +from typing import Any from PyTado.interface import Tado from requests import RequestException from homeassistant.components.climate import PRESET_AWAY, PRESET_HOME +from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant from homeassistant.exceptions import HomeAssistantError from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed -if TYPE_CHECKING: - from . import TadoConfigEntry - from .const import ( CONF_FALLBACK, CONF_REFRESH_TOKEN, @@ -33,6 +32,16 @@ MIN_TIME_BETWEEN_UPDATES = timedelta(minutes=4) SCAN_INTERVAL = timedelta(minutes=5) SCAN_MOBILE_DEVICE_INTERVAL = timedelta(minutes=5) +type TadoConfigEntry = ConfigEntry[TadoData] + + +@dataclass +class TadoData: + """Class to hold Tado data.""" + + coordinator: TadoDataUpdateCoordinator + mobile_coordinator: TadoMobileDeviceUpdateCoordinator + class TadoDataUpdateCoordinator(DataUpdateCoordinator[dict[str, dict]]): """Class to manage API calls from and to Tado via PyTado.""" diff --git a/homeassistant/components/tado/device_tracker.py b/homeassistant/components/tado/device_tracker.py index 34aca2dd833..a3c94fd43b9 100644 --- a/homeassistant/components/tado/device_tracker.py +++ b/homeassistant/components/tado/device_tracker.py @@ -17,9 +17,8 @@ from homeassistant.helpers.update_coordinator import ( DataUpdateCoordinator, ) -from . import TadoConfigEntry from .const import DOMAIN -from .coordinator import TadoMobileDeviceUpdateCoordinator +from .coordinator import TadoConfigEntry, TadoMobileDeviceUpdateCoordinator _LOGGER = logging.getLogger(__name__) diff --git a/homeassistant/components/tado/diagnostics.py b/homeassistant/components/tado/diagnostics.py index 0426707c6a9..bae5f5416f2 100644 --- a/homeassistant/components/tado/diagnostics.py +++ b/homeassistant/components/tado/diagnostics.py @@ -6,7 +6,7 @@ from typing import Any from homeassistant.core import HomeAssistant -from . import TadoConfigEntry +from .coordinator import TadoConfigEntry async def async_get_config_entry_diagnostics( diff --git a/homeassistant/components/tado/models.py b/homeassistant/components/tado/models.py deleted file mode 100644 index 08bdaceaf03..00000000000 --- a/homeassistant/components/tado/models.py +++ /dev/null @@ -1,13 +0,0 @@ -"""Models for use in Tado integration.""" - -from dataclasses import dataclass - -from .coordinator import TadoDataUpdateCoordinator, TadoMobileDeviceUpdateCoordinator - - -@dataclass -class TadoData: - """Class to hold Tado data.""" - - coordinator: TadoDataUpdateCoordinator - mobile_coordinator: TadoMobileDeviceUpdateCoordinator diff --git a/homeassistant/components/tado/sensor.py b/homeassistant/components/tado/sensor.py index d0d54e79670..7b8b946e5b4 100644 --- a/homeassistant/components/tado/sensor.py +++ b/homeassistant/components/tado/sensor.py @@ -18,7 +18,6 @@ from homeassistant.core import HomeAssistant, callback from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback from homeassistant.helpers.typing import StateType -from . import TadoConfigEntry from .const import ( CONDITIONS_MAP, SENSOR_DATA_CATEGORY_GEOFENCE, @@ -27,7 +26,7 @@ from .const import ( TYPE_HEATING, TYPE_HOT_WATER, ) -from .coordinator import TadoDataUpdateCoordinator +from .coordinator import TadoConfigEntry, TadoDataUpdateCoordinator from .entity import TadoHomeEntity, TadoZoneEntity _LOGGER = logging.getLogger(__name__) diff --git a/homeassistant/components/tado/switch.py b/homeassistant/components/tado/switch.py index b3f355462b8..9619153488a 100644 --- a/homeassistant/components/tado/switch.py +++ b/homeassistant/components/tado/switch.py @@ -7,7 +7,7 @@ from homeassistant.components.switch import SwitchEntity from homeassistant.core import HomeAssistant, callback from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback -from . import TadoConfigEntry +from .coordinator import TadoConfigEntry from .entity import TadoDataUpdateCoordinator, TadoZoneEntity _LOGGER = logging.getLogger(__name__) diff --git a/homeassistant/components/tado/water_heater.py b/homeassistant/components/tado/water_heater.py index 3d8825b264f..3d6ee2096ef 100644 --- a/homeassistant/components/tado/water_heater.py +++ b/homeassistant/components/tado/water_heater.py @@ -15,7 +15,6 @@ from homeassistant.helpers import config_validation as cv, entity_platform from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback from homeassistant.helpers.typing import VolDictType -from . import TadoConfigEntry from .const import ( CONST_HVAC_HEAT, CONST_MODE_AUTO, @@ -27,7 +26,7 @@ from .const import ( CONST_OVERLAY_TIMER, TYPE_HOT_WATER, ) -from .coordinator import TadoDataUpdateCoordinator +from .coordinator import TadoConfigEntry, TadoDataUpdateCoordinator from .entity import TadoZoneEntity from .helper import decide_duration, decide_overlay_mode from .repairs import manage_water_heater_fallback_issue