#!/usr/bin/env python3 from coldcall import ColdCall from datetime import datetime from csv import DictReader current_time = datetime.today() ## create the coldcall object cc = ColdCall(record_attendance=False, preferred_name_field="Name you'd like to go by in class") def get_missing(d=current_time): date_string = f'{d.month}/{d.day}/{d.year}' with open("data/absence_poll_data.tsv", 'r') as f: for row in DictReader(f, delimiter="\t"): if row["Date of class session you will be absent"] == date_string: yield(row["Your UW student number"]) full_names = {} registered_students = [] with open("data/2022_winter_COM_481_A_students.csv", 'r') as f: for row in DictReader(f, delimiter=","): student_no = row["StudentNo"].strip() registered_students.append(student_no) full_names[student_no] = f"{row['FirstName']} {row['LastName']}" ## print("Registered:", registered_students) missing_today = [x for x in get_missing(current_time)] ## print("Missing Today: ", missing_today) preferred_names = {} with open("data/student_information.tsv", 'r') as f: for row in DictReader(f, delimiter="\t"): preferred_names[row["Your UW student number"]] = row["Name you'd like to go by in class"] ## print("Preferred names:", preferred_names) students_present = [s for s in registered_students if s not in missing_today] ## print("Students present:", students_present) for i in range(100): selected_student = cc.select_student_from_list(students_present) try: preferred_name = preferred_names[selected_student] except KeyError: preferred_name = "MISSING PREFERRED NAME" print(f"{i + 1}.", preferred_name, "::", selected_student, "::", full_names[selected_student]) cc.record_coldcall(selected_student)