· 6 years ago · Oct 29, 2019, 09:48 AM
1import codepost
2
3def getAssignment( courseName, coursePeriod, assignmentName ):
4 courses = codepost.course.list_available(name=courseName, period=coursePeriod)
5 course = courses[0]
6 assignment = course.assignments.by_name(name=assignmentName)
7 return assignment
8
9def create_submission( assignment_id, students, grader=None ):
10 return codepost.submission.create( assignment=assignment_id, students=students, grader=grader )
11
12def upload_file( submission_id, name, content ):
13 codepost.file.create(
14 name=name,
15 code=content,
16 extension=name.split('.')[1]
17 submission=submission_id,
18 )
19
20def upload_submission( assignment, students, files, grader=None ):
21 submission = create_submission( assignment.id, students, grader )
22 for file in files:
23 upload_file( submission.id, file.name, file.code )
24
25#################### MAIN #######################
26# configure codePost with api key
27codepost.configure_api_key(api_key="<API KEY HERE>")
28# get the assignment
29thisAssignment = getAssignment("<codepost course name>", "<codepost period name>", "<codepost assignment name>")
30
31# upload submission with files
32students = ['student0@university.edu']
33files = [{"name": "file1.py", "code": "print(\'helloWorld\')"}]
34upload_submission( thisAssignment, students, files)