From 3a1e21635a1b8e546986f7d7777e77e42199e3d7 Mon Sep 17 00:00:00 2001 From: Dima Gerasimov Date: Tue, 19 Jan 2021 23:21:02 +0000 Subject: [PATCH] my.body.blood: use same file overall I guess this module is highly specific to me anyway, so gonna be hard to make it generic... --- my/body/blood.py | 11 +++++++---- my/core/orgmode.py | 2 ++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/my/body/blood.py b/my/body/blood.py index 51a9193..dfb86b6 100755 --- a/my/body/blood.py +++ b/my/body/blood.py @@ -1,5 +1,5 @@ """ -Blood tracking +Blood tracking (manual org-mode entries) """ from datetime import datetime @@ -47,9 +47,11 @@ def try_float(s: str) -> Optional[float]: return None return float(x) + def glucose_ketones_data() -> Iterable[Result]: o = orgparse.load(config.blood_log) - tbl = one_table(o) + [n] = [x for x in o if x.heading == 'glucose/ketones'] + tbl = one_table(n) # todo some sort of sql-like interface for org tables might be ideal? for l in tbl.as_dicts: kets = l['ket'] @@ -74,8 +76,9 @@ def glucose_ketones_data() -> Iterable[Result]: def blood_tests_data() -> Iterable[Result]: - o = orgparse.load(config.blood_tests_log) - tbl = one_table(o) + o = orgparse.load(config.blood_log) + [n] = [x for x in o if x.heading == 'blood tests'] + tbl = one_table(n) for d in tbl.as_dicts: try: dt = parse_org_datetime(d['datetime']) diff --git a/my/core/orgmode.py b/my/core/orgmode.py index 668017c..c769dc3 100644 --- a/my/core/orgmode.py +++ b/my/core/orgmode.py @@ -19,6 +19,8 @@ def parse_org_datetime(s: str) -> datetime: raise RuntimeError(f"Bad datetime string {s}") +# TODO I guess want to borrow inspiration from bs4? element type <-> tag; and similar logic for find_one, find_all + from orgparse import OrgNode from typing import Iterable, TypeVar, Callable V = TypeVar('V')