示例#1
0
文件: parse.py 项目: gt2345/Schedule
def parse_scheduled(courses, start_date, course_start_date, calendar_dict):
    # pre-process to dataframe
    history = {}
    for course in courses:
        if course.start_date > start_date:
            continue
        history_df = pd.read_csv('Output/' + course.title + '_history_cleaned.csv')
        for index, row in history_df.iterrows():
            if '/' in row['Date']:
                cur_date_month, cur_date_day, cur_date_year = row['Date'].split('/')
            else:
                cur_date_year, cur_date_month, cur_date_day = row['Date'].split('-')
            history_df.loc[index, 'Date'] = date(int(cur_date_year), int(cur_date_month), int(cur_date_day))
        history[course] = history_df
    cur = course_start_date
    while cur < start_date:
        cur_schedule = Schedule(date=cur)
        for course, history_df in history.items():
            cur_history_df = history_df[history_df['Date'] == cur]

            if not cur_history_df.index.empty:
                cur_schedule.add_course(course=course, lesson=get_lesson(course=course, id=cur_history_df['Id'].item()),
                                        ins=get_ins_by_name(course=course, name=cur_history_df['Ins'].item()), point=0,
                                        calendar_dict=calendar_dict)

        if cur_schedule.is_valid():
            cur_schedule.schedule_today(calendar_dict=calendar_dict)
        cur += datetime.timedelta(days=1)
示例#2
0
def test_schedule():
    schedule = Schedule([])
    course_list = populate_classes()
    combos = get_combinations(course_list, 3)
    which_combo = randint(0, len(combos) - 1)
    print_combo(combos[which_combo])
    for course in combos[which_combo]:
        schedule.add_course(course)
    return schedule
示例#3
0
def build_base_schedule(possible_courses):
    required_courses = []
    base_schedule = Schedule([])
    for course in possible_courses:
        if course.required:
            required_courses.append(course)
    # make shedule
    for req_course in required_courses:
        added = base_schedule.add_course(req_course)
        if not added:
            # this is purely based on the order the classes are parsed
            print(
                f"Unable to add required courses {req_course.subject}. These courses have conflicts"
            )
    return base_schedule