Mercurial > code > home > repos > gcalendarwatch
view datetimemath.py @ 83:7f50e5bb30f5
ide
author | drewp@bigasterisk.com |
---|---|
date | Sat, 07 Sep 2024 16:12:15 -0700 |
parents | e2209226b001 |
children |
line wrap: on
line source
import datetime from typing import Iterable, List, Tuple, cast import dateutil.parser from dateutil.tz.tz import tzlocal from localtypes import Record def dayRange(days: float) -> Tuple[datetime.datetime, datetime.datetime]: now = datetime.datetime.now(tzlocal()) start = now - datetime.timedelta(hours=12) end = now + datetime.timedelta(days=days) return start, end def limitDays(recs: Iterable[Record], days: float) -> List[Record]: start, end = dayRange(days) start = start - datetime.timedelta(hours=12) # incomplete return [r for r in recs if r['startTime'] < end and r['endTime'] > start] # just a typing fix def parse(s: str, **kw) -> datetime.datetime: return cast(datetime.datetime, dateutil.parser.parse(s, **kw))