from data_source import DataSource def add_tz_if_missing(dt_str: str) -> str: dt = dateutil.parser.parse(dt_str) if dt.tzinfo: return dt_str return dt.replace(tzinfo=tzutc()).isoformat() if __name__ == "__main__": data_source = DataSource() start_date = datetime.datetime(2016, 4, 11) end_date = datetime.datetime(2020, 10, 25) sleep_data_resp = data_source.get_entries_for_stat_over_range( "sleep", start_date, end_date) for sleep_stat in sleep_data_resp: sleep_datum = sleep_stat["data"] print(sleep_stat) sleep_datum['sleep_time'] = add_tz_if_missing( sleep_datum['sleep_time']) sleep_datum['wake_time'] = add_tz_if_missing(sleep_datum['wake_time']) for i in sleep_datum.get('interruptions', []): if "sleep_time" in i: i['sleep_time'] = add_tz_if_missing(i["sleep_time"]) if "wake_time" in i: i['wake_time'] = add_tz_if_missing(i['wake_time']) print(sleep_stat) data_source.update_entry_for_stat_on_date("sleep", sleep_stat["date"], sleep_datum, sleep_stat["source"])
from data_source import DataSource data_source = DataSource() def wrap_text(text, length=200): return "\n".join([text[i:i + length] for i in range(0, len(text), length)]) for dream_night in data_source.get_entries_for_stat_over_range( "dreams", "earliest", "latest"): if not dream_night["data"].get("disorientation"): continue if dream_night["data"]["disorientation"] == 1: pass else: print("----") print(f"Max rating: {dream_night['data']['disorientation']}") for dream_idx in range(len(dream_night["data"]["dreams"])): print( wrap_text( f"--Dream {dream_idx}: {dream_night['data']['dreams'][dream_idx]['text']}" )) user_ratings = input("User ratings: ").split(",") print(user_ratings) if len(dream_night["data"]["dreams"]) != len(user_ratings): print("ABORT") break new_data = dream_night["data"] for dream_idx in range(len(new_data["dreams"])): new_data["dreams"][dream_idx]["disorientation"] = user_ratings[