refactors

This commit is contained in:
counterweight 2025-12-25 18:27:59 +01:00
parent f46d2ae8b3
commit 168b67acee
Signed by: counterweight
GPG key ID: 883EDBAA726BD96C
12 changed files with 471 additions and 126 deletions

View file

@ -0,0 +1,27 @@
"""Utilities for date/time query operations."""
from datetime import UTC, date, datetime, time
def date_to_start_datetime(d: date) -> datetime:
"""Convert a date to datetime at start of day (00:00:00) in UTC."""
return datetime.combine(d, time.min, tzinfo=UTC)
def date_to_end_datetime(d: date) -> datetime:
"""Convert a date to datetime at end of day (23:59:59.999999) in UTC."""
return datetime.combine(d, time.max, tzinfo=UTC)
def date_range_to_datetime_range(
start_date: date, end_date: date
) -> tuple[datetime, datetime]:
"""
Convert a date range to datetime range.
Returns:
Tuple of (start_datetime, end_datetime) where:
- start_datetime is start_date at 00:00:00 UTC
- end_datetime is end_date at 23:59:59.999999 UTC
"""
return date_to_start_datetime(start_date), date_to_end_datetime(end_date)