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