autograder.api.courses.assignments.submissions.fetch.course.scores
Get the most recent scores for this assignment.
1""" 2Get the most recent scores for this assignment. 3""" 4 5import typing 6 7import lms.model.assignments 8import lms.model.scores 9import lms.model.users 10 11import autograder.api.common 12import autograder.api.config 13import autograder.model.assignment 14import autograder.model.config 15 16API_ENDPOINT: str = 'courses/assignments/submissions/fetch/course/scores' 17API_WRITE: bool = False 18API_PARAMS: typing.List[autograder.api.config.APIParam] = [ 19 autograder.api.config.PARAM_SERVER, 20 autograder.api.config.PARAM_USER_EMAIL, 21 autograder.api.config.PARAM_USER_PASS, 22 23 autograder.api.config.PARAM_COURSE, 24 autograder.api.config.PARAM_ASSIGNMENT, 25 26 autograder.api.config.PARAM_COURSE_USER_REFERENCES, 27] 28 29def send(config: autograder.model.config.Config, **kwargs: typing.Any) -> typing.List[lms.model.scores.AssignmentScore]: 30 """ Send a request to the autograder. """ 31 32 response = autograder.api.common.make_api_request(API_ENDPOINT, config, API_PARAMS, write = API_WRITE, **kwargs) 33 34 scores = [] 35 for (user_email, raw_score) in response['submission-infos'].items(): 36 if (raw_score is None): 37 assignment = lms.model.assignments.AssignmentQuery(id = config.assignment) 38 user = lms.model.users.UserQuery(email = user_email) 39 scores.append(lms.model.scores.AssignmentScore(assignment = assignment, user = user)) 40 else: 41 scores.append(autograder.model.assignment.make_assignment_score(raw_score)) 42 43 return sorted(scores)
API_ENDPOINT: str =
'courses/assignments/submissions/fetch/course/scores'
API_WRITE: bool =
False
API_PARAMS: List[autograder.api.config.APIParam] =
[<autograder.api.config.APIParam object>, <autograder.api.config.APIParam object>, <autograder.api.config.APIParam object>, <autograder.api.config.APIParam object>, <autograder.api.config.APIParam object>, <autograder.api.config.APIParam object>]
def
send( config: autograder.model.config.Config, **kwargs: Any) -> List[lms.model.scores.AssignmentScore]:
30def send(config: autograder.model.config.Config, **kwargs: typing.Any) -> typing.List[lms.model.scores.AssignmentScore]: 31 """ Send a request to the autograder. """ 32 33 response = autograder.api.common.make_api_request(API_ENDPOINT, config, API_PARAMS, write = API_WRITE, **kwargs) 34 35 scores = [] 36 for (user_email, raw_score) in response['submission-infos'].items(): 37 if (raw_score is None): 38 assignment = lms.model.assignments.AssignmentQuery(id = config.assignment) 39 user = lms.model.users.UserQuery(email = user_email) 40 scores.append(lms.model.scores.AssignmentScore(assignment = assignment, user = user)) 41 else: 42 scores.append(autograder.model.assignment.make_assignment_score(raw_score)) 43 44 return sorted(scores)
Send a request to the autograder.