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))