From 4f49c2c4acd62b31e3d61905e59b54a2ec7942c9 Mon Sep 17 00:00:00 2001 From: Dima Gerasimov Date: Mon, 8 Apr 2019 19:44:23 +0100 Subject: [PATCH] cache more things --- emfit/__init__.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/emfit/__init__.py b/emfit/__init__.py index 004459b..a629df8 100644 --- a/emfit/__init__.py +++ b/emfit/__init__.py @@ -47,14 +47,14 @@ class Emfit: return self.jj['hrv_rmssd_evening'] # ok, I guess that's reasonable way of defining sleep date - @cproperty + @property def date(self): return self.end.date() """ Bed time, not necessarily sleep """ - @cproperty + @property def start(self): return fromts(self.jj['time_start']) @@ -78,6 +78,7 @@ class Emfit: eps.append(e) return tss, eps + # TODO are these utc?? should be visible on big plot @cproperty def sleep_start(self) -> datetime: for [ts, e] in self.epochs: @@ -236,7 +237,7 @@ recovery: {self.recovery:3.0f} def measured_hr_avg(self): return self.jj["measured_hr_avg"] - @property + @cproperty def sleep_hr_coverage(self): tss, hrs = self.sleep_hr covered = len([h for h in hrs if h is not None]) @@ -260,13 +261,14 @@ def iter_datas() -> Iterator[Emfit]: yield get_emfit(sid, f) -# @functools.lru_cache() def get_datas() -> List[Emfit]: return list(sorted(iter_datas(), key=lambda e: e.start)) # TODO move away old entries if there is a diff?? - +from kython import timed from kython import group_by_key + +@timed def by_night() -> Dict[date, Emfit]: logger = get_logger() res: Dict[date, Emfit] = odict()