Mercurial > code > home > repos > gcalendarwatch
diff datetimemath.py @ 28:e2209226b001
rewrite with starlette and background_loop
author | drewp@bigasterisk.com |
---|---|
date | Sun, 24 Jul 2022 00:58:54 -0700 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/datetimemath.py Sun Jul 24 00:58:54 2022 -0700 @@ -0,0 +1,26 @@ +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))