mirror of
https://github.com/home-assistant/core.git
synced 2026-02-24 11:57:05 +00:00
36 lines
1.0 KiB
Python
36 lines
1.0 KiB
Python
"""Utility functions for the Todoist integration."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from datetime import date, datetime
|
|
|
|
from todoist_api_python.models import Due
|
|
|
|
from homeassistant.util import dt as dt_util
|
|
|
|
|
|
def parse_due_date(task_due: Due | None) -> date | datetime | None:
|
|
"""Parse due date from Todoist task due object.
|
|
|
|
The due.date field contains either a date object (for date-only tasks)
|
|
or a datetime object (for tasks with a specific time). When deserialized
|
|
from the API via from_dict(), these are already proper Python date/datetime
|
|
objects.
|
|
|
|
Args:
|
|
task_due: The Due object from a Todoist task, or None.
|
|
|
|
Returns:
|
|
A date object for date-only due dates, a localized datetime for
|
|
datetime due dates, or None if no due date is set.
|
|
|
|
"""
|
|
if task_due is None or not (due_date := task_due.date):
|
|
return None
|
|
|
|
if isinstance(due_date, datetime):
|
|
return dt_util.as_local(due_date)
|
|
if isinstance(due_date, date):
|
|
return due_date
|
|
return None
|