diff --git a/.strict-typing b/.strict-typing index 958c53d07db..47f01c6cae8 100644 --- a/.strict-typing +++ b/.strict-typing @@ -169,6 +169,7 @@ homeassistant.components.homekit_controller.utils homeassistant.components.homewizard.* homeassistant.components.http.* homeassistant.components.huawei_lte.* +homeassistant.components.hydrawise.* homeassistant.components.hyperion.* homeassistant.components.ibeacon.* homeassistant.components.image_processing.* diff --git a/homeassistant/components/hydrawise/__init__.py b/homeassistant/components/hydrawise/__init__.py index d5b69617ba9..e09cabb74fc 100644 --- a/homeassistant/components/hydrawise/__init__.py +++ b/homeassistant/components/hydrawise/__init__.py @@ -53,18 +53,10 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: return True -def _show_failure_notification(hass: HomeAssistant, error: str): +def _show_failure_notification(hass: HomeAssistant, error: str) -> None: persistent_notification.create( hass, f"Error: {error}
You will need to restart hass after fixing.", title=NOTIFICATION_TITLE, notification_id=NOTIFICATION_ID, ) - - -class HydrawiseHub: - """Representation of a base Hydrawise device.""" - - def __init__(self, data): - """Initialize the entity.""" - self.data = data diff --git a/homeassistant/components/hydrawise/entity.py b/homeassistant/components/hydrawise/entity.py index 405e5bc3fa3..98b66069913 100644 --- a/homeassistant/components/hydrawise/entity.py +++ b/homeassistant/components/hydrawise/entity.py @@ -1,15 +1,15 @@ """Base classes for Hydrawise entities.""" +from __future__ import annotations from typing import Any from homeassistant.helpers.entity import EntityDescription -from homeassistant.helpers.update_coordinator import ( - CoordinatorEntity, - DataUpdateCoordinator, -) +from homeassistant.helpers.update_coordinator import CoordinatorEntity + +from .coordinator import HydrawiseDataUpdateCoordinator -class HydrawiseEntity(CoordinatorEntity): +class HydrawiseEntity(CoordinatorEntity[HydrawiseDataUpdateCoordinator]): """Entity class for Hydrawise devices.""" _attr_attribution = "Data provided by hydrawise.com" @@ -18,7 +18,7 @@ class HydrawiseEntity(CoordinatorEntity): self, *, data: dict[str, Any], - coordinator: DataUpdateCoordinator, + coordinator: HydrawiseDataUpdateCoordinator, description: EntityDescription, ) -> None: """Initialize the Hydrawise entity.""" @@ -28,6 +28,6 @@ class HydrawiseEntity(CoordinatorEntity): self._attr_name = f"{self.data['name']} {description.name}" @property - def extra_state_attributes(self): + def extra_state_attributes(self) -> dict[str, Any]: """Return the state attributes.""" return {"identifier": self.data.get("relay")} diff --git a/homeassistant/components/hydrawise/switch.py b/homeassistant/components/hydrawise/switch.py index 71c4f8df79e..00089bb8774 100644 --- a/homeassistant/components/hydrawise/switch.py +++ b/homeassistant/components/hydrawise/switch.py @@ -17,7 +17,6 @@ from homeassistant.core import HomeAssistant, callback import homeassistant.helpers.config_validation as cv from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType -from homeassistant.helpers.update_coordinator import DataUpdateCoordinator from .const import ( ALLOWED_WATERING_TIME, @@ -90,7 +89,7 @@ class HydrawiseSwitch(HydrawiseEntity, SwitchEntity): self, *, data: dict[str, Any], - coordinator: DataUpdateCoordinator, + coordinator: HydrawiseDataUpdateCoordinator, description: SwitchEntityDescription, default_watering_timer: int, ) -> None: diff --git a/mypy.ini b/mypy.ini index feb6f5a72ea..5e7d27586d1 100644 --- a/mypy.ini +++ b/mypy.ini @@ -1452,6 +1452,16 @@ disallow_untyped_defs = true warn_return_any = true warn_unreachable = true +[mypy-homeassistant.components.hydrawise.*] +check_untyped_defs = true +disallow_incomplete_defs = true +disallow_subclassing_any = true +disallow_untyped_calls = true +disallow_untyped_decorators = true +disallow_untyped_defs = true +warn_return_any = true +warn_unreachable = true + [mypy-homeassistant.components.hyperion.*] check_untyped_defs = true disallow_incomplete_defs = true