Assignment

class canvasapi.assignment.Assignment(requester, attributes)
Parameters:
  • requester (canvasapi.requester.Requester) – The requester to pass HTTP requests through.

  • attributes (dict) – The JSON object to build this object with.

create_override(**kwargs)

Create an override for this assignment.

Calls:

POST /api/v1/courses/:course_id/assignments/:assignment_id/overrides

Return type:

canvasapi.assignment.AssignmentOverride

delete(**kwargs)

Delete this assignment.

Calls:

DELETE /api/v1/courses/:course_id/assignments/:id

Return type:

canvasapi.assignment.Assignment

edit(**kwargs)

Modify this assignment.

Calls:

PUT /api/v1/courses/:course_id/assignments/:id

Return type:

canvasapi.assignment.Assignment

get_grade_change_events(**kwargs)

Returns the grade change events for the assignment.

Calls:

/api/v1/audit/grade_change/assignments/:assignment_id

Return type:

canvasapi.paginated_list.PaginatedList of canvasapi.grade_change_log.GradeChangeEvent

get_gradeable_students(**kwargs)

List students eligible to submit the assignment.

Calls:

GET /api/v1/courses/:course_id/assignments/:assignment_id/gradeable_students

Return type:

canvasapi.paginated_list.PaginatedList of canvasapi.user.UserDisplay

get_override(override, **kwargs)

Get a single assignment override with the given override id.

Calls:

GET /api/v1/courses/:course_id/assignments/:assignment_id/overrides/:id

Parameters:

override (canvasapi.assignment.AssignmentOverride or int) – The object or ID of the override to get

Return type:

canvasapi.assignment.AssignmentOverride

get_overrides(**kwargs)

Get a paginated list of overrides for this assignment that target sections/groups/students visible to the current user.

Calls:

GET /api/v1/courses/:course_id/assignments/:assignment_id/overrides

Return type:

canvasapi.paginated_list.PaginatedList of canvasapi.assignment.AssignmentOverride

get_peer_reviews(**kwargs)

Get a list of all Peer Reviews for this assignment.

Calls:

GET /api/v1/courses/:course_id/assignments/:assignment_id/peer_reviews

Return type:

canvasapi.paginated_list.PaginatedList of canvasapi.peer_review.PeerReview

get_provisional_grades_status(student_id, **kwargs)

Tell whether the student’s submission needs one or more provisional grades.

Calls:

GET /api/v1/courses/:course_id/assignments/:assignment_id/provisional_grades/ status

Parameters:

student_id (canvasapi.user.User or int) – The object or ID of the related student

Return type:

bool

get_students_selected_for_moderation(**kwargs)

Get a list of students selected for moderation.

Calls:

GET /api/v1/courses/:course_id/assignments/:assignment_id/moderated_students

Return type:

canvasapi.paginated_list.PaginatedList of canvasapi.user.User

get_submission(user, **kwargs)

Get a single submission, based on user id.

Calls:

GET /api/v1/courses/:course_id/assignments/:assignment_id/submissions/:user_id

Parameters:

user (canvasapi.user.User or int) – The object or ID of the related user

Return type:

canvasapi.submission.Submission

get_submissions(**kwargs)

Get all existing submissions for this assignment.

Calls:

GET /api/v1/courses/:course_id/assignments/:assignment_id/submissions

Return type:

canvasapi.paginated_list.PaginatedList of canvasapi.submission.Submission

publish_provisional_grades(**kwargs)

Publish the selected provisional grade for all submissions to an assignment. Use the “Select provisional grade” endpoint to choose which provisional grade to publish for a particular submission.

Students not in the moderation set will have their one and only provisional grade published.

WARNING: This is irreversible. This will overwrite existing grades in the gradebook.

Calls:

POST /api/v1/courses/:course_id/assignments/:assignment_id/provisional_grades /publish

Return type:

dict

select_students_for_moderation(**kwargs)

Select student(s) for moderation.

Calls:

POST /api/v1/courses/:course_id/assignments/:assignment_id/moderated_students

Returns:

The list of users that were selected

Return type:

canvasapi.paginated_list.PaginatedList of canvasapi.user.User

selected_provisional_grade(provisional_grade_id, **kwargs)

Choose which provisional grade the student should receive for a submission. The caller must be the final grader for the assignment or an admin with :select_final_grade rights.

Calls:

PUT /api/v1/courses/:course_id/assignments/:assignment_id/provisional_grades/ :provisonal_grade_id/select

Parameters:

provisional_grade_id (int) – ID of the provisional grade

Return type:

dict

set_extensions(assignment_extensions, **kwargs)

Set extensions for student assignment submissions

Calls:

POST /api/v1/courses/:course_id/assignments/:assignment_id/extensions

Parameters:

assignment_extensions (list) – list of dictionaries representing extensions

Return type:

list of canvasapi.assignment.AssignmentExtension

Example Usage:

>>> assignment.set_extensions([
...     {
...         'user_id': 3,
...         'extra_attempts': 2
...     },
...     {
...         'user_id': 2,
...         'extra_attempts': 2
...     }
... ])
show_provisonal_grades_for_student(anonymous_id, **kwargs)
Call:

GET /api/v1/courses/:course_id/assignments/:assignment_id/ anonymous_provisional_grades/status

Parameters:

anonymous_id (canvasapi.user.User or int) – The ID of the student to show the status for

Return type:

dict

submissions_bulk_update(**kwargs)

Update the grading and comments on multiple student’s assignment submissions in an asynchronous job.

Calls:

POST /api/v1/courses/:course_id/assignments/:assignment_id/ submissions/update_grades

Return type:

canvasapi.progress.Progress

submit(submission, file=None, **kwargs)

Makes a submission for an assignment.

Calls:

POST /api/v1/courses/:course_id/assignments/:assignment_id/submissions

Parameters:
  • submission (dict) – The attributes of the submission.

  • file (file or str) – A file to upload with the submission. (Optional, defaults to None. Submission type must be online_upload)

Return type:

canvasapi.submission.Submission

upload_to_submission(file: PathLike | str | IOBase | FileIO, user='self', **kwargs)

Upload a file to a submission.

Calls:

POST /api/v1/courses/:course_id/assignments/:assignment_id/ submissions/:user_id/files

Parameters:
  • file (FileLike) – The file or path of the file to upload.

  • user (canvasapi.user.User, int, or str) – The object or ID of the related user, or ‘self’ for the current user. Defaults to ‘self’.

Returns:

True if the file uploaded successfully, False otherwise, and the JSON response from the API.

Return type:

tuple

AssignmentExtension

class canvasapi.assignment.AssignmentExtension(requester, attributes)
Parameters:
  • requester (canvasapi.requester.Requester) – The requester to pass HTTP requests through.

  • attributes (dict) – The JSON object to build this object with.

AssignmentGroup

class canvasapi.assignment.AssignmentGroup(requester, attributes)
Parameters:
  • requester (canvasapi.requester.Requester) – The requester to pass HTTP requests through.

  • attributes (dict) – The JSON object to build this object with.

delete(**kwargs)

Delete this assignment.

Calls:

DELETE /api/v1/courses/:course_id/assignment_groups/:assignment_group_id

Return type:

canvasapi.assignment.AssignmentGroup

edit(**kwargs)

Modify this assignment group.

Calls:

PUT /api/v1/courses/:course_id/assignment_groups/:assignment_group_id

Return type:

canvasapi.assignment.AssignmentGroup

AssignmentOverride

class canvasapi.assignment.AssignmentOverride(requester, attributes)
Parameters:
  • requester (canvasapi.requester.Requester) – The requester to pass HTTP requests through.

  • attributes (dict) – The JSON object to build this object with.

delete(**kwargs)

Delete this assignment override.

Calls:

DELETE /api/v1/courses/:course_id/assignments/:assignment_id/overrides/:id

Returns:

The previous content of the now-deleted assignment override.

Return type:

canvasapi.assignment.AssignmentGroup

edit(**kwargs)

Update this assignment override.

Note: All current overridden values must be supplied if they are to be retained.

Calls:

PUT /api/v1/courses/:course_id/assignments/:assignment_id/overrides/:id

Return type:

canvasapi.assignment.AssignmentOverride