general: migrate modules to use 3.9 features
This commit is contained in:
parent
d3f9a8e8b6
commit
8496d131e7
125 changed files with 889 additions and 739 deletions
|
@ -2,41 +2,42 @@
|
|||
Blood tracking (manual org-mode entries)
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from collections.abc import Iterable
|
||||
from datetime import datetime
|
||||
from typing import Iterable, NamedTuple, Optional
|
||||
from typing import NamedTuple
|
||||
|
||||
from ..core.error import Res
|
||||
from ..core.orgmode import parse_org_datetime, one_table
|
||||
|
||||
|
||||
import pandas as pd
|
||||
import orgparse
|
||||
|
||||
import pandas as pd
|
||||
|
||||
from my.config import blood as config # type: ignore[attr-defined]
|
||||
|
||||
from ..core.error import Res
|
||||
from ..core.orgmode import one_table, parse_org_datetime
|
||||
|
||||
|
||||
class Entry(NamedTuple):
|
||||
dt: datetime
|
||||
|
||||
ketones : Optional[float]=None
|
||||
glucose : Optional[float]=None
|
||||
ketones : float | None=None
|
||||
glucose : float | None=None
|
||||
|
||||
vitamin_d : Optional[float]=None
|
||||
vitamin_b12 : Optional[float]=None
|
||||
vitamin_d : float | None=None
|
||||
vitamin_b12 : float | None=None
|
||||
|
||||
hdl : Optional[float]=None
|
||||
ldl : Optional[float]=None
|
||||
triglycerides: Optional[float]=None
|
||||
hdl : float | None=None
|
||||
ldl : float | None=None
|
||||
triglycerides: float | None=None
|
||||
|
||||
source : Optional[str]=None
|
||||
extra : Optional[str]=None
|
||||
source : str | None=None
|
||||
extra : str | None=None
|
||||
|
||||
|
||||
Result = Res[Entry]
|
||||
|
||||
|
||||
def try_float(s: str) -> Optional[float]:
|
||||
def try_float(s: str) -> float | None:
|
||||
l = s.split()
|
||||
if len(l) == 0:
|
||||
return None
|
||||
|
@ -105,6 +106,7 @@ def blood_tests_data() -> Iterable[Result]:
|
|||
|
||||
def data() -> Iterable[Result]:
|
||||
from itertools import chain
|
||||
|
||||
from ..core.error import sort_res_by
|
||||
datas = chain(glucose_ketones_data(), blood_tests_data())
|
||||
return sort_res_by(datas, key=lambda e: e.dt)
|
||||
|
|
|
@ -7,10 +7,10 @@ from ...core.pandas import DataFrameT, check_dataframe
|
|||
@check_dataframe
|
||||
def dataframe() -> DataFrameT:
|
||||
# this should be somehow more flexible...
|
||||
from ...endomondo import dataframe as EDF
|
||||
from ...runnerup import dataframe as RDF
|
||||
|
||||
import pandas as pd
|
||||
|
||||
from ...endomondo import dataframe as EDF
|
||||
from ...runnerup import dataframe as RDF
|
||||
return pd.concat([
|
||||
EDF(),
|
||||
RDF(),
|
||||
|
|
|
@ -3,7 +3,6 @@ Cardio data, filtered from various data sources
|
|||
'''
|
||||
from ...core.pandas import DataFrameT, check_dataframe
|
||||
|
||||
|
||||
CARDIO = {
|
||||
'Running',
|
||||
'Running, treadmill',
|
||||
|
|
|
@ -5,16 +5,18 @@ This is probably too specific to my needs, so later I will move it away to a per
|
|||
For now it's worth keeping it here as an example and perhaps utility functions might be useful for other HPI modules.
|
||||
'''
|
||||
|
||||
from datetime import datetime, timedelta
|
||||
from typing import Optional
|
||||
from __future__ import annotations
|
||||
|
||||
from ...core.pandas import DataFrameT, check_dataframe as cdf
|
||||
from ...core.orgmode import collect, Table, parse_org_datetime, TypedTable
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
import pytz
|
||||
|
||||
from my.config import exercise as config
|
||||
|
||||
from ...core.orgmode import Table, TypedTable, collect, parse_org_datetime
|
||||
from ...core.pandas import DataFrameT
|
||||
from ...core.pandas import check_dataframe as cdf
|
||||
|
||||
import pytz
|
||||
# FIXME how to attach it properly?
|
||||
tz = pytz.timezone('Europe/London')
|
||||
|
||||
|
@ -114,7 +116,7 @@ def dataframe() -> DataFrameT:
|
|||
rows.append(rd) # presumably has an error set
|
||||
continue
|
||||
|
||||
idx: Optional[int]
|
||||
idx: int | None
|
||||
close = edf[edf['start_time'].apply(lambda t: pd_date_diff(t, mdate)).abs() < _DELTA]
|
||||
if len(close) == 0:
|
||||
idx = None
|
||||
|
@ -163,7 +165,9 @@ def dataframe() -> DataFrameT:
|
|||
# TODO wtf?? where is speed coming from??
|
||||
|
||||
|
||||
from ...core import stat, Stats
|
||||
from ...core import Stats, stat
|
||||
|
||||
|
||||
def stats() -> Stats:
|
||||
return stat(cross_trainer_data)
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
from ...core import stat, Stats
|
||||
from ...core.pandas import DataFrameT, check_dataframe as cdf
|
||||
from ...core import Stats, stat
|
||||
from ...core.pandas import DataFrameT
|
||||
from ...core.pandas import check_dataframe as cdf
|
||||
|
||||
|
||||
class Combine:
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
from ... import jawbone
|
||||
from ... import emfit
|
||||
|
||||
from ... import emfit, jawbone
|
||||
from .common import Combine
|
||||
|
||||
_combined = Combine([
|
||||
jawbone,
|
||||
emfit,
|
||||
|
|
|
@ -2,14 +2,14 @@
|
|||
Weight data (manually logged)
|
||||
'''
|
||||
|
||||
from collections.abc import Iterator
|
||||
from dataclasses import dataclass
|
||||
from datetime import datetime
|
||||
from typing import Any, Iterator
|
||||
|
||||
from my.core import make_logger
|
||||
from my.core.error import Res, extract_error_datetime, set_error_datetime
|
||||
from typing import Any
|
||||
|
||||
from my import orgmode
|
||||
from my.core import make_logger
|
||||
from my.core.error import Res, extract_error_datetime, set_error_datetime
|
||||
|
||||
config = Any
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue