From 336aa74317ca44d3bdadeabc126e45015aa89e5b Mon Sep 17 00:00:00 2001 From: jan iversen Date: Tue, 24 Aug 2021 11:23:33 +0200 Subject: [PATCH] Activate mypy for todoist (#55096) --- homeassistant/components/todoist/calendar.py | 13 ++++++++++--- mypy.ini | 3 --- script/hassfest/mypy_config.py | 1 - 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/homeassistant/components/todoist/calendar.py b/homeassistant/components/todoist/calendar.py index 86aeff7c554..51f4e859a1f 100644 --- a/homeassistant/components/todoist/calendar.py +++ b/homeassistant/components/todoist/calendar.py @@ -1,4 +1,6 @@ """Support for Todoist task management (https://todoist.com).""" +from __future__ import annotations + from datetime import datetime, timedelta import logging @@ -226,14 +228,17 @@ def setup_platform(hass, config, add_entities, discovery_info=None): ) -def _parse_due_date(data: dict, gmt_string) -> datetime: +def _parse_due_date(data: dict, gmt_string) -> datetime | None: """Parse the due date dict into a datetime object.""" # Add time information to date only strings. if len(data["date"]) == 10: return datetime.fromisoformat(data["date"]).replace(tzinfo=dt.UTC) - if dt.parse_datetime(data["date"]).tzinfo is None: + nowtime = dt.parse_datetime(data["date"]) + if not nowtime: + return None + if nowtime.tzinfo is None: data["date"] += gmt_string - return dt.as_utc(dt.parse_datetime(data["date"])) + return dt.as_utc(nowtime) class TodoistProjectDevice(CalendarEventDevice): @@ -533,6 +538,8 @@ class TodoistProjectData: due_date = _parse_due_date( task["due"], self._api.state["user"]["tz_info"]["gmt_string"] ) + if not due_date: + continue midnight = dt.as_utc( dt.parse_datetime( due_date.strftime("%Y-%m-%d") diff --git a/mypy.ini b/mypy.ini index 052e564a5f8..e566b7f1898 100644 --- a/mypy.ini +++ b/mypy.ini @@ -1622,9 +1622,6 @@ ignore_errors = true [mypy-homeassistant.components.tesla.*] ignore_errors = true -[mypy-homeassistant.components.todoist.*] -ignore_errors = true - [mypy-homeassistant.components.toon.*] ignore_errors = true diff --git a/script/hassfest/mypy_config.py b/script/hassfest/mypy_config.py index 811c11692f8..bb2cf72b72e 100644 --- a/script/hassfest/mypy_config.py +++ b/script/hassfest/mypy_config.py @@ -133,7 +133,6 @@ IGNORED_MODULES: Final[list[str]] = [ "homeassistant.components.telegram_bot.*", "homeassistant.components.template.*", "homeassistant.components.tesla.*", - "homeassistant.components.todoist.*", "homeassistant.components.toon.*", "homeassistant.components.tplink.*", "homeassistant.components.unifi.*",