Mercurial > code > home > repos > gcalendarwatch
comparison 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 |
comparison
equal
deleted
inserted
replaced
27:87ab41b8ed52 | 28:e2209226b001 |
---|---|
1 import datetime | |
2 from typing import Iterable, List, Tuple, cast | |
3 | |
4 import dateutil.parser | |
5 from dateutil.tz.tz import tzlocal | |
6 | |
7 from localtypes import Record | |
8 | |
9 | |
10 def dayRange(days: float) -> Tuple[datetime.datetime, datetime.datetime]: | |
11 now = datetime.datetime.now(tzlocal()) | |
12 start = now - datetime.timedelta(hours=12) | |
13 end = now + datetime.timedelta(days=days) | |
14 return start, end | |
15 | |
16 | |
17 def limitDays(recs: Iterable[Record], days: float) -> List[Record]: | |
18 start, end = dayRange(days) | |
19 start = start - datetime.timedelta(hours=12) | |
20 # incomplete | |
21 return [r for r in recs if r['startTime'] < end and r['endTime'] > start] | |
22 | |
23 | |
24 # just a typing fix | |
25 def parse(s: str, **kw) -> datetime.datetime: | |
26 return cast(datetime.datetime, dateutil.parser.parse(s, **kw)) |