From 595f49ee9f16433deda21d1987404117390d7431 Mon Sep 17 00:00:00 2001 From: Manu <4445816+tr4nt0r@users.noreply.github.com> Date: Sat, 18 Jan 2025 16:35:35 +0100 Subject: [PATCH] Set strict-typing in Habitica quality scale record (#135899) * Set strict-typing in Habitica quality scale record * cast --- .strict-typing | 1 + homeassistant/components/habitica/__init__.py | 3 +-- homeassistant/components/habitica/calendar.py | 6 ++++-- homeassistant/components/habitica/quality_scale.yaml | 2 +- mypy.ini | 10 ++++++++++ 5 files changed, 17 insertions(+), 5 deletions(-) diff --git a/.strict-typing b/.strict-typing index b83bb0f6a95..46b14f22660 100644 --- a/.strict-typing +++ b/.strict-typing @@ -224,6 +224,7 @@ homeassistant.components.gpsd.* homeassistant.components.greeneye_monitor.* homeassistant.components.group.* homeassistant.components.guardian.* +homeassistant.components.habitica.* homeassistant.components.hardkernel.* homeassistant.components.hardware.* homeassistant.components.here_travel_time.* diff --git a/homeassistant/components/habitica/__init__.py b/homeassistant/components/habitica/__init__.py index 9a9d689bedc..1972e89c58a 100644 --- a/homeassistant/components/habitica/__init__.py +++ b/homeassistant/components/habitica/__init__.py @@ -2,7 +2,6 @@ from habiticalib import Habitica -from homeassistant.config_entries import ConfigEntry from homeassistant.const import CONF_API_KEY, CONF_URL, CONF_VERIFY_SSL, Platform from homeassistant.core import HomeAssistant from homeassistant.helpers import config_validation as cv @@ -61,6 +60,6 @@ async def async_setup_entry( return True -async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: +async def async_unload_entry(hass: HomeAssistant, entry: HabiticaConfigEntry) -> bool: """Unload a config entry.""" return await hass.config_entries.async_unload_platforms(entry, PLATFORMS) diff --git a/homeassistant/components/habitica/calendar.py b/homeassistant/components/habitica/calendar.py index 4a9b1579d3a..f33f3c3c12f 100644 --- a/homeassistant/components/habitica/calendar.py +++ b/homeassistant/components/habitica/calendar.py @@ -6,7 +6,7 @@ from abc import abstractmethod from dataclasses import asdict from datetime import date, datetime, timedelta from enum import StrEnum -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, cast from uuid import UUID from dateutil.rrule import rrule @@ -95,9 +95,11 @@ class HabiticaCalendarEntity(HabiticaBase, CalendarEntity): ) -> list[datetime]: """Calculate recurrence dates based on start_date and end_date.""" if end_date: - return recurrences.between( + recurrence_dates = recurrences.between( start_date, end_date - timedelta(days=1), inc=True ) + + return cast(list[datetime], recurrence_dates) # if no end_date is given, return only the next recurrence return [recurrences.after(start_date, inc=True)] diff --git a/homeassistant/components/habitica/quality_scale.yaml b/homeassistant/components/habitica/quality_scale.yaml index ba139ea241b..0f8ede06d2e 100644 --- a/homeassistant/components/habitica/quality_scale.yaml +++ b/homeassistant/components/habitica/quality_scale.yaml @@ -79,4 +79,4 @@ rules: # Platinum async-dependency: todo inject-websession: done - strict-typing: todo + strict-typing: done diff --git a/mypy.ini b/mypy.ini index 6a9bb29c360..e4056203875 100644 --- a/mypy.ini +++ b/mypy.ini @@ -1996,6 +1996,16 @@ disallow_untyped_defs = true warn_return_any = true warn_unreachable = true +[mypy-homeassistant.components.habitica.*] +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.hardkernel.*] check_untyped_defs = true disallow_incomplete_defs = true