Example #1
0
def show_Remaining_Time(curr, end):
    """

    :param curr: datetime.datetime object
    :param end: datetime.datetime object
    :return:
    """
    time_Remaining = timeParser(str(end)) - timeParser(str(curr))
    print("\rTime Remaining: %s" % str(time_Remaining).split(".")[0], end="", flush=True)
Example #2
0
    def in_timer_behavior(self):
        """

        :param curr: datetime.datetime object
        :param end: datetime.datetime object
        :return:
        """
        curr = datetime.now().time()
        time_Remaining = timeParser(str(self.end_time)) - timeParser(str(curr))
        print('\rTime Remaining: %s' % str(time_Remaining).split('.')[0], end='', flush=True)
Example #3
0
def dynamic_Pomo_Scheme(execute_Timetable, execute_Modetable,
                        pomo_Modes, pomo_Params):
    """
    According to Current_Time. Search the whole Pomo Period (all Pomo_Modes)
    the current time in. The recalculate the period use the current time
    as start point.
    Original Scheme (the one stored in JSON file) will be replaced.

    Todo: should save changes in the JSON file again.

    :param execute_Modetable:
    :param execute_Timetable:
    :return:
    In_place modify Modetable and Timetable. No return.
    """
    current_Time = datetime.now().time()

    len_Scheme = len(execute_Timetable)
    for period_index in range(len_Scheme):
        period_end_time = execute_Timetable[period_index][1]

        if current_Time <= period_end_time:
            if execute_Modetable[period_index] in pomo_Modes:

                # Find continuous Pomo Modes start-end time
                for i in range(period_index, len_Scheme):
                    if execute_Modetable[i] not in pomo_Modes:
                        end_time = execute_Timetable[i][0]  # Start time of this period
                        pomo_end_at_period = i

                        # Recalculate Pomo timetable
                        # end_time now is datetime.time() object
                        # argument of pomo_Algo require datetime.datetime() object
                        end_time = timeParser(str(end_time))
                        start_time = timeParser(str(current_Time))

                        execute_Plan = pomo_Algo(start_time, end_time,
                                                 *pomo_Modes, **pomo_Params)

                        # replace previous Pomo Modes Period
                        replace_deprecated_Pomo_Period(execute_Plan,
                                                       period_index,
                                                       pomo_end_at_period,
                                                       execute_Timetable,
                                                       execute_Modetable)
                        break
                break
def read_Scheme_JSON(name, mode_Type):
    """

    :param name:
    :param mode_Type:
    :return:
    execute_Timetable: 2D List of datetime.time object
    execute_Modetable: List of mode strings.
    """
    with open(project_path + "/Schemes/Daily_Schemes/" + name + "." + mode_Type) as openFile:
        Scheme = json.load(openFile)
    execute_Timetable = [[timeParser(i).time() for i in j[:-1]]
                         for j in Scheme['Timetable']]
    execute_Modetable = [i[-1] for i in Scheme['Timetable']]

    return execute_Timetable, execute_Modetable
Example #5
0
def read_Scheme_JSON(name, mode_Type, is_Dynamic_Scheme):
    """

    :param name:
    :param mode_Type:
    :return:
    execute_Timetable: 2D List of datetime.time object
    execute_Modetable: List of mode strings.
    """
    with open(project_path + "/Schemes/Daily_Schemes/" + name + "." + mode_Type) as openFile:
        Scheme = json.load(openFile)
    execute_Timetable = [[timeParser(i).time() for i in j[:-1]]
                         for j in Scheme['Timetable']]
    execute_Modetable = [i[-1] for i in Scheme['Timetable']]

    if is_Dynamic_Scheme:
        scheme_Params = Scheme['Configurations']['Scheme_Settings']['Pomo_Params']
        dynamic_Pomo_Scheme(execute_Timetable, execute_Modetable,
                            pomo_Modes, scheme_Params)

    return execute_Timetable, execute_Modetable