diff --git a/stand/utils/dfh.py b/stand/utils/dfh.py index 25dd1be..5cda416 100644 --- a/stand/utils/dfh.py +++ b/stand/utils/dfh.py @@ -42,6 +42,31 @@ def dump_non_empty_df(df, fn, key="data"): return print(f"<<< dump dataframe to {fn}") df.to_hdf(fn, key) + backup(df, fn, key) #TODO: test then remove + + + +# the following is just a safety precaution +# if everything works, it can be removed + +from datetime import datetime +from pathlib import Path + +FMT = "%Y-%m-%d_%H-%M-%S-%f" +BAKDIR = ".backup" + +def backup(df, fn, key): + Path(BAKDIR).mkdir(parents=True, exist_ok=True) + bfn = backup_filename(fn) + print(f"<<< backup dataframe to {bfn}") + df.to_hdf(bfn, key) + +def backup_filename(fn): + p = Path(fn) + fn = p.stem + ext = p.suffix + ts = datetime.now().strftime(FMT) + return f"{BAKDIR}/{fn}_{ts}{ext}"