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"])
示例#2
0
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[