my.jawbone: minor cleanup & refactoring, proper error propagation

This commit is contained in:
Dima Gerasimov 2020-09-10 20:52:33 +01:00 committed by karlicoss
parent 99e50f0afe
commit 63b848087d
7 changed files with 108 additions and 86 deletions

View file

@ -11,7 +11,7 @@ from typing import Dict, List, Iterable
from ..core import get_files
from ..core.common import mcachew
from ..core.cachew import cache_dir
from ..core.error import Res
from ..core.error import Res, set_error_datetime, extract_error_datetime
from ..core.types import DataFrameT
from my.config import emfit as config
@ -70,6 +70,7 @@ def pre_dataframe() -> Iterable[Res[Emfit]]:
yield r
else:
err = RuntimeError(f'Multiple sleeps per night, not supported yet: {g}')
set_error_datetime(err, dt=g[0].date)
g.clear()
yield err
@ -90,8 +91,11 @@ def dataframe() -> DataFrameT:
last = None
for s in pre_dataframe():
if isinstance(s, Exception):
# todo date would be nice too?
d = {'error': str(s)}
edt = extract_error_datetime(s)
d = {
'date' : edt,
'error': str(s),
}
else:
dd = s.date
pday = dd - timedelta(days=1)

View file

@ -1,3 +1,4 @@
# TODO this should be integrated into dashboard
# def stats():
# for jj in iter_datas():
# # TODO fimezone??