gradescope
This module process the gradescope generated csv grades file, and use canvas api to post grade to students, with late penalty.
gradescope_grade
gradescope_grade (credentials_fp='', API_URL='https://canvas.ucsd.edu', course_id='', assignment_id=-1, gradescope_fp='', verbosity=1)
Initialize Canvas Group within a Group Set and its appropriate memberships
Type | Default | Details | |
---|---|---|---|
credentials_fp | str | credential file path. Template of the credentials.json | |
API_URL | str | https://canvas.ucsd.edu | the domain name of canvas |
course_id | str | Course ID can be found in the course url | |
assignment_id | int | -1 | assignment id, can be found in the canvas assignment url |
gradescope_fp | str | gradescope csv file path | |
verbosity | int | 1 | Controls the verbosity: 0 = Silent, 1 = print all messages |
gradescope_grade.auth_canvas
gradescope_grade.auth_canvas (credentials_fp:str)
Authorize the canvas module with API_KEY
Type | Details | |
---|---|---|
credentials_fp | str | the Authenticator key generated from canvas |
gradescope_grade.set_course
gradescope_grade.set_course (course_id:int)
Set the target course by the course ID
Type | Details | |
---|---|---|
course_id | int | the course id of the target course |
gradescope_grade.link_assignment
gradescope_grade.link_assignment (assignment_id:int)
Link the target assignment on canvas
Type | Details | |
---|---|---|
assignment_id | int | assignment id, found at the url of assignment tab |
Returns | Assignment | target assignment |
gradescope_grade.load_gradescope_csv
gradescope_grade.load_gradescope_csv (csv_pf:str)
Load gradescope exported csv file
Type | Details | |
---|---|---|
csv_pf | str | csv file path |
gradescope_grade.calculate_late_hour
gradescope_grade.calculate_late_hour (target_assignment:str)
Calculate the late hours of each submission of the target assignment
Type | Details | |
---|---|---|
target_assignment | str | target assignment name. Must in the column of gradescope csv |
Returns | Series | late hours of the target assignment |
gradescope_grade.calculate_credit_balance
gradescope_grade.calculate_credit_balance (passed_assignments:List[str], total_credit=120)
Calculate the balance of late hours from the gradescope file
Type | Default | Details | |
---|---|---|---|
passed_assignments | List | list of passed assignment. Must in the column of gradescope csv | |
total_credit | int | 120 | total number of allowed late hours |
Returns | dict | {email: credit balance} late credit balance of each student |
gradescope_grade.calculate_total_score
gradescope_grade.calculate_total_score (components:List[str])
Calculate the total score of an assignment
Type | Details | |
---|---|---|
components | List | components of a single assignment. Must in the column of gradescope csv |
Returns | Series |
gradescope_grade._post_grade
gradescope_grade._post_grade (student_id:int, grade:float, text_comment='', force=False)
Post grade and comment to canvas to the target assignment
Type | Default | Details | |
---|---|---|---|
student_id | int | canvas student id of a student. found in self.email_to_canvas_id | |
grade | float | grade of that assignment | |
text_comment | str | Text comment of the submission. Can feed | |
force | bool | False | Whether force to post grade for all students. If False (default), it will skip post for the same score. |
Returns | Submission | created submission |
gradescope_grade.post_to_canvas
gradescope_grade.post_to_canvas (target_assignment:str, passed_assignments:List[str], components=[], total_credit=120, post=False, force=False, student=[])
Post grade to canvas with late penalty.
Type | Default | Details | |
---|---|---|---|
target_assignment | str | target assignment name to grab the late time. Must in the column of gradescope csv | |
passed_assignments | List | list of passed assignment. Must in the column of gradescope csv | |
components | list | [] | components of a single assignment. Must in the column of gradescope csv |
total_credit | int | 120 | total number of allowed late hours |
post | bool | False | For testing purposes. Can halt the post-operation |
force | bool | False | whether force to post grade for all students. If False (default), it will skip post for the same score. |
student | list | [] | list of student email to post grade. If empty, it will post all students |
Additionally, one can also generate quick report to get a general sense of how the late situation overall for the students in the class so far.
gradescope_grade.calculate_late_reports
gradescope_grade.calculate_late_reports (passed_assignments:List[str], total_credit=120)
Type | Default | Details | |
---|---|---|---|
passed_assignments | List | list of passed assignment. Must in the column of gradescope csv | |
total_credit | int | 120 | total number of allowed late hours |
Returns | List | {email: (str: late_assignments, int: late_hours, bool: penalty_applied )}, {email: int total_late_hours} |