codegrade 16.1.48__tar.gz → 16.1.51__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (573) hide show
  1. {codegrade-16.1.48 → codegrade-16.1.51}/PKG-INFO +1 -1
  2. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/__init__.py +1 -1
  3. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/client.py +2 -2
  4. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/__init__.py +10 -0
  5. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/all_site_settings.py +89 -0
  6. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_perm_map.py +15 -0
  7. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_permission.py +1 -0
  8. codegrade-16.1.51/codegrade/models/default_course_ta_role_setting.py +56 -0
  9. codegrade-16.1.51/codegrade/models/default_course_teacher_role_setting.py +58 -0
  10. codegrade-16.1.51/codegrade/models/lti1p3_nonce_and_state_validation_enabled_setting.py +57 -0
  11. codegrade-16.1.51/codegrade/models/lti1p3_prevent_nonce_reuse_enabled_setting.py +57 -0
  12. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/site_setting_input.py +18 -0
  13. {codegrade-16.1.48 → codegrade-16.1.51}/pyproject.toml +1 -1
  14. {codegrade-16.1.48 → codegrade-16.1.51}/setup.py +1 -1
  15. {codegrade-16.1.48 → codegrade-16.1.51}/README.md +0 -0
  16. {codegrade-16.1.48 → codegrade-16.1.51}/cg_dt_utils/__init__.py +0 -0
  17. {codegrade-16.1.48 → codegrade-16.1.51}/cg_maybe/__init__.py +0 -0
  18. {codegrade-16.1.48 → codegrade-16.1.51}/cg_maybe/_just.py +0 -0
  19. {codegrade-16.1.48 → codegrade-16.1.51}/cg_maybe/_maybe.py +0 -0
  20. {codegrade-16.1.48 → codegrade-16.1.51}/cg_maybe/_nothing.py +0 -0
  21. {codegrade-16.1.48 → codegrade-16.1.51}/cg_maybe/_type_helpers.py +0 -0
  22. {codegrade-16.1.48 → codegrade-16.1.51}/cg_maybe/cg_maybe_plugin.py +0 -0
  23. {codegrade-16.1.48 → codegrade-16.1.51}/cg_maybe/utils.py +0 -0
  24. {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/__init__.py +0 -0
  25. {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_any_value.py +0 -0
  26. {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_base.py +0 -0
  27. {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_convert.py +0 -0
  28. {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_enum.py +0 -0
  29. {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_form.py +0 -0
  30. {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_lazy.py +0 -0
  31. {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_list.py +0 -0
  32. {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_literal.py +0 -0
  33. {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_mapping.py +0 -0
  34. {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_multipart.py +0 -0
  35. {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_nullable.py +0 -0
  36. {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_parse_utils.py +0 -0
  37. {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_query.py +0 -0
  38. {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_rich_value.py +0 -0
  39. {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_swagger_utils.py +0 -0
  40. {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_swaggerize.py +0 -0
  41. {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_utils.py +0 -0
  42. {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/exceptions.py +0 -0
  43. {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/request_args_plugin.py +0 -0
  44. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/__init__.py +0 -0
  45. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/about.py +0 -0
  46. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/assignment.py +0 -0
  47. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/auto_test.py +0 -0
  48. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/comment.py +0 -0
  49. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/course.py +0 -0
  50. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/course_price.py +0 -0
  51. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/file.py +0 -0
  52. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/git_provider.py +0 -0
  53. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/group.py +0 -0
  54. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/group_set.py +0 -0
  55. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/login_link.py +0 -0
  56. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/lti.py +0 -0
  57. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/notification.py +0 -0
  58. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/oauth_provider.py +0 -0
  59. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/oauth_token.py +0 -0
  60. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/permission.py +0 -0
  61. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/plagiarism.py +0 -0
  62. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/role.py +0 -0
  63. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/section.py +0 -0
  64. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/site_settings.py +0 -0
  65. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/snippet.py +0 -0
  66. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/sso_provider.py +0 -0
  67. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/submission.py +0 -0
  68. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/task_result.py +0 -0
  69. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/tenant.py +0 -0
  70. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/transaction.py +0 -0
  71. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/user.py +0 -0
  72. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/user_setting.py +0 -0
  73. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/webhook.py +0 -0
  74. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/errors.py +0 -0
  75. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/_base_price.py +0 -0
  76. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/_saml_ui_logo_info.py +0 -0
  77. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/_submission_rubric_item_data_parser.py +0 -0
  78. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/about.py +0 -0
  79. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/abstract_role.py +0 -0
  80. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/add_users_section_data.py +0 -0
  81. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/all_auto_test_results.py +0 -0
  82. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/any_auto_test_step_as_json.py +0 -0
  83. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/any_error.py +0 -0
  84. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/any_non_redacted_auto_test_step_as_json.py +0 -0
  85. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/any_redacted_auto_test_step_as_json.py +0 -0
  86. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/api_codes.py +0 -0
  87. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment.py +0 -0
  88. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_anonymization_algo.py +0 -0
  89. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_default_grading_scale_points_setting.py +0 -0
  90. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_default_grading_scale_setting.py +0 -0
  91. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_description_enabled_setting.py +0 -0
  92. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_description_on_teachers_submissions_page_setting.py +0 -0
  93. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_done_type.py +0 -0
  94. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_export_column.py +0 -0
  95. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_feedback.py +0 -0
  96. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_grader.py +0 -0
  97. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_grading_scale_points_enabled_setting.py +0 -0
  98. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_kind.py +0 -0
  99. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_login_link.py +0 -0
  100. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_max_points_enabled_setting.py +0 -0
  101. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_peer_feedback_connection.py +0 -0
  102. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_peer_feedback_settings.py +0 -0
  103. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_percentage_decimals_setting.py +0 -0
  104. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_percentage_grading_settings.py +0 -0
  105. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_point_decimals_setting.py +0 -0
  106. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_points_grading_settings.py +0 -0
  107. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_section_timeframe.py +0 -0
  108. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_state_enum.py +0 -0
  109. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_submission_mode.py +0 -0
  110. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_template.py +0 -0
  111. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_timeframes.py +0 -0
  112. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/at_image_caching_enabled_setting.py +0 -0
  113. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test.py +0 -0
  114. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_capture_points_message_setting.py +0 -0
  115. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_checkpoint_message_setting.py +0 -0
  116. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_code_quality_message_setting.py +0 -0
  117. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_enabled_setting.py +0 -0
  118. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_fixture.py +0 -0
  119. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_global_setup_output.py +0 -0
  120. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_global_setup_script.py +0 -0
  121. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_heartbeat_interval_setting.py +0 -0
  122. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_heartbeat_max_missed_setting.py +0 -0
  123. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_io_test_message_setting.py +0 -0
  124. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_io_test_sub_message_setting.py +0 -0
  125. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_max_concurrent_batch_runs_setting.py +0 -0
  126. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_max_global_setup_time_setting.py +0 -0
  127. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_max_jobs_per_runner_setting.py +0 -0
  128. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_max_per_student_setup_time_setting.py +0 -0
  129. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_max_result_not_started_setting.py +0 -0
  130. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_max_time_command_setting.py +0 -0
  131. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_max_unit_test_metadata_length_setting.py +0 -0
  132. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_quality_comment.py +0 -0
  133. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_result.py +0 -0
  134. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_result_state.py +0 -0
  135. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_result_with_extra_data.py +0 -0
  136. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_run.py +0 -0
  137. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_run_program_message_setting.py +0 -0
  138. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_runner.py +0 -0
  139. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_runner_state.py +0 -0
  140. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_set.py +0 -0
  141. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_step_base.py +0 -0
  142. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_step_base_as_json.py +0 -0
  143. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_step_base_input_as_json.py +0 -0
  144. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_step_log_base.py +0 -0
  145. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_step_result.py +0 -0
  146. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_step_result_state.py +0 -0
  147. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_step_validation_exception.py +0 -0
  148. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_suite.py +0 -0
  149. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_unit_test_message_setting.py +0 -0
  150. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/automatic_lti1p3_assignment_import_setting.py +0 -0
  151. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/automatic_lti_role_enabled_setting.py +0 -0
  152. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_about.py +0 -0
  153. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_auto_test_quality_comment.py +0 -0
  154. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_comment_base.py +0 -0
  155. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_comment_base_with_extended_replies.py +0 -0
  156. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_comment_base_with_normal_replies.py +0 -0
  157. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_comment_reply.py +0 -0
  158. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_course_coupon.py +0 -0
  159. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_directory.py +0 -0
  160. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_error.py +0 -0
  161. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_file.py +0 -0
  162. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_lms_capabilities.py +0 -0
  163. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_lti1p1_provider.py +0 -0
  164. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_lti1p3_provider.py +0 -0
  165. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_lti_provider.py +0 -0
  166. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_notification.py +0 -0
  167. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_release_info.py +0 -0
  168. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_rubric_item.py +0 -0
  169. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_tenant_coupon.py +0 -0
  170. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/blackboard_zip_upload_enabled_setting.py +0 -0
  171. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/bulk_enroll_course_data.py +0 -0
  172. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/canvas_course_id_copying_enabled_setting.py +0 -0
  173. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/cg_ignore_version.py +0 -0
  174. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/change_user_role_course_data.py +0 -0
  175. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/check_points_as_json.py +0 -0
  176. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/check_points_data.py +0 -0
  177. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/check_points_extra.py +0 -0
  178. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/check_points_input_as_json.py +0 -0
  179. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/clone_result.py +0 -0
  180. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/code_editor_output_viewer_title_setting.py +0 -0
  181. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/code_quality_as_json.py +0 -0
  182. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/code_quality_base_data.py +0 -0
  183. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/code_quality_data.py +0 -0
  184. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/code_quality_extra.py +0 -0
  185. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/code_quality_input_as_json.py +0 -0
  186. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/code_quality_penalties.py +0 -0
  187. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/column_range.py +0 -0
  188. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/comment_base.py +0 -0
  189. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/comment_reply.py +0 -0
  190. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/comment_reply_edit.py +0 -0
  191. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/comment_reply_type.py +0 -0
  192. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/comment_type.py +0 -0
  193. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/community_library_publishing_setting.py +0 -0
  194. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/community_library_setting.py +0 -0
  195. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/connect_repository_git_provider_data.py +0 -0
  196. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/copy_auto_test_data.py +0 -0
  197. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/copy_rubric_assignment_data.py +0 -0
  198. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/coupon_data_parser.py +0 -0
  199. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/coupon_with_code.py +0 -0
  200. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/coupon_without_code.py +0 -0
  201. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course.py +0 -0
  202. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_bulk_enroll_result.py +0 -0
  203. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_bulk_register_enabled_setting.py +0 -0
  204. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_coupon.py +0 -0
  205. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_coupon_usage.py +0 -0
  206. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_gradebook_enabled_setting.py +0 -0
  207. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_gradebook_render_warning_size_setting.py +0 -0
  208. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_of_course_price.py +0 -0
  209. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_of_tenant_coupon_usage.py +0 -0
  210. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_price.py +0 -0
  211. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_register_enabled_setting.py +0 -0
  212. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_register_response.py +0 -0
  213. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_registration_link.py +0 -0
  214. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_role.py +0 -0
  215. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_role_as_json_with_perms.py +0 -0
  216. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_section.py +0 -0
  217. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_section_division.py +0 -0
  218. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_section_division_connection.py +0 -0
  219. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_section_division_user.py +0 -0
  220. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_snippet.py +0 -0
  221. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_state.py +0 -0
  222. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_statistics_as_json.py +0 -0
  223. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_assignment_course_data.py +0 -0
  224. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_auto_test_data.py +0 -0
  225. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_comment_data.py +0 -0
  226. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_comment_reply_data.py +0 -0
  227. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_course_data.py +0 -0
  228. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_division_section_data.py +0 -0
  229. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_group_group_set_data.py +0 -0
  230. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_group_set_course_data.py +0 -0
  231. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_lti_data.py +0 -0
  232. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_output_html_proxy_auto_test_data.py +0 -0
  233. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_proxy_submission_data.py +0 -0
  234. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_repository_git_provider_data.py +0 -0
  235. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_role_course_data.py +0 -0
  236. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_section_course_data.py +0 -0
  237. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_snippet_course_data.py +0 -0
  238. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_snippet_data.py +0 -0
  239. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_sso_provider_data.py +0 -0
  240. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_tenant_data.py +0 -0
  241. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/csv_large_file_limit_setting.py +0 -0
  242. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/csv_too_many_errors_limit_setting.py +0 -0
  243. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/currency.py +0 -0
  244. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/custom_output_as_json.py +0 -0
  245. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/custom_output_data.py +0 -0
  246. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/custom_output_extra.py +0 -0
  247. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/custom_output_input_as_json.py +0 -0
  248. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/custom_output_log.py +0 -0
  249. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/custom_output_log_base.py +0 -0
  250. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/deleted_comment_reply.py +0 -0
  251. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/deletion_type.py +0 -0
  252. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/directory_with_children.py +0 -0
  253. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/disabled_setting_exception.py +0 -0
  254. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/editor_enabled_for_teachers_setting.py +0 -0
  255. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/editor_enabled_setting.py +0 -0
  256. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/email_notification_types.py +0 -0
  257. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/email_students_enabled_setting.py +0 -0
  258. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/email_users_course_data.py +0 -0
  259. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/exam_login_max_length_setting.py +0 -0
  260. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/export_assignment_csv_data.py +0 -0
  261. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/export_assignment_data.py +0 -0
  262. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/export_assignment_files_data.py +0 -0
  263. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/extended_auto_test_result.py +0 -0
  264. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/extended_auto_test_run.py +0 -0
  265. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/extended_course.py +0 -0
  266. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/extended_course_registration_link.py +0 -0
  267. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/extended_course_section.py +0 -0
  268. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/extended_group.py +0 -0
  269. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/extended_job.py +0 -0
  270. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/extended_non_deleted_comment_reply.py +0 -0
  271. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/extended_tenant.py +0 -0
  272. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/extended_transaction.py +0 -0
  273. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/extended_user.py +0 -0
  274. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/extended_work.py +0 -0
  275. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/extract_file_tree_directory.py +0 -0
  276. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/extract_file_tree_file.py +0 -0
  277. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/failed_to_send_email_exception.py +0 -0
  278. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/feedback_base.py +0 -0
  279. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/feedback_threads_initially_collapsed_setting.py +0 -0
  280. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/feedback_with_replies.py +0 -0
  281. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/feedback_without_replies.py +0 -0
  282. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/file_deletion.py +0 -0
  283. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/file_rule.py +0 -0
  284. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/file_rule_input_data.py +0 -0
  285. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/file_tree.py +0 -0
  286. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/file_type.py +0 -0
  287. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/finalized_lti1p1_provider.py +0 -0
  288. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/finalized_lti1p3_provider.py +0 -0
  289. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/first_phase_lti_launch_exception.py +0 -0
  290. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/fixed_availability.py +0 -0
  291. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/fixed_grade_availability.py +0 -0
  292. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/fixture_like.py +0 -0
  293. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/fraction.py +0 -0
  294. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/frontend_site_settings.py +0 -0
  295. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/general_feedback_comment_base.py +0 -0
  296. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/general_feedback_comment_base_with_extended_replies.py +0 -0
  297. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/general_feedback_extra.py +0 -0
  298. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/git_repositories_page.py +0 -0
  299. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/git_repository_like.py +0 -0
  300. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/git_user_info.py +0 -0
  301. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/github_template_repo_enabled_setting.py +0 -0
  302. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/global_perm_map.py +0 -0
  303. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/global_permission.py +0 -0
  304. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/grade_history.py +0 -0
  305. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/grade_origin.py +0 -0
  306. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/grade_viewer_and_editor_on_submission_enabled_setting.py +0 -0
  307. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/grading_notifications_enabled_setting.py +0 -0
  308. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/group.py +0 -0
  309. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/group_not_ready_for_submission_exception.py +0 -0
  310. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/group_set.py +0 -0
  311. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/groups_enabled_setting.py +0 -0
  312. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/has_unread_notifcation_json.py +0 -0
  313. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/health_information.py +0 -0
  314. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/hide_code_editor_output_viewer_with_only_quiz_steps_setting.py +0 -0
  315. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/hide_empty_rubric_row_description_setting.py +0 -0
  316. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/ignore_handling.py +0 -0
  317. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/ignored_files_exception.py +0 -0
  318. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/import_into_assignment_data.py +0 -0
  319. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/import_into_course_data.py +0 -0
  320. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/incremental_rubric_submission_enabled_setting.py +0 -0
  321. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/inline_feedback_comment_base.py +0 -0
  322. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/inline_feedback_comment_base_with_extended_replies.py +0 -0
  323. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/inline_feedback_extra.py +0 -0
  324. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/inline_rubric_viewer_enabled_setting.py +0 -0
  325. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/invalid_group_exception.py +0 -0
  326. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/invalid_io_cases_exception.py +0 -0
  327. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/invalid_options_exception.py +0 -0
  328. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/io_test_as_json.py +0 -0
  329. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/io_test_base_data.py +0 -0
  330. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/io_test_data.py +0 -0
  331. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/io_test_extra.py +0 -0
  332. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/io_test_input_as_json.py +0 -0
  333. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/io_test_input_case.py +0 -0
  334. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/io_test_log.py +0 -0
  335. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/io_test_option.py +0 -0
  336. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/io_test_step_log.py +0 -0
  337. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/io_test_step_log_base.py +0 -0
  338. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/is_admin_permission_enabled_setting.py +0 -0
  339. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/job.py +0 -0
  340. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/json_create_auto_test.py +0 -0
  341. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/json_create_tenant.py +0 -0
  342. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/json_patch_auto_test.py +0 -0
  343. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/json_patch_submit_types_assignment.py +0 -0
  344. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/junit_test_as_json.py +0 -0
  345. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/junit_test_base_data.py +0 -0
  346. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/junit_test_data.py +0 -0
  347. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/junit_test_extra.py +0 -0
  348. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/junit_test_input_as_json.py +0 -0
  349. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/junit_test_log.py +0 -0
  350. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/junit_test_log_base.py +0 -0
  351. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/jwt_access_token_expires_setting.py +0 -0
  352. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/legacy_features.py +0 -0
  353. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/line_range.py +0 -0
  354. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/linter_comment.py +0 -0
  355. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/linters_enabled_setting.py +0 -0
  356. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/lms_capabilities.py +0 -0
  357. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/login_token_before_time_setting.py +0 -0
  358. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/login_user_data.py +0 -0
  359. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/logout_response.py +0 -0
  360. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/logout_user_data.py +0 -0
  361. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/lti1p1_provider.py +0 -0
  362. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/lti1p1_provider_data.py +0 -0
  363. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/lti1p3_parse_most_privileged_role_setting.py +0 -0
  364. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/lti1p3_provider.py +0 -0
  365. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/lti1p3_provider_data.py +0 -0
  366. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/lti1p3_provider_presentation_as_json.py +0 -0
  367. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/lti1p3_system_role_from_context_role_setting.py +0 -0
  368. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/lti_enabled_setting.py +0 -0
  369. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/lti_first_launch_content_id_enabled_setting.py +0 -0
  370. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/lti_launch_data_logging_setting.py +0 -0
  371. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/lti_lock_date_copying_enabled_setting.py +0 -0
  372. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/lti_provider_base.py +0 -0
  373. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/lti_unset_deadline_lock_date_enabled_setting.py +0 -0
  374. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/max_document_update_size_setting.py +0 -0
  375. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/max_dynamo_file_size_setting.py +0 -0
  376. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/max_dynamo_submission_size_setting.py +0 -0
  377. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/max_file_size_setting.py +0 -0
  378. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/max_large_upload_size_setting.py +0 -0
  379. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/max_lines_setting.py +0 -0
  380. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/max_mirror_file_age_setting.py +0 -0
  381. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/max_normal_upload_size_setting.py +0 -0
  382. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/max_number_of_files_setting.py +0 -0
  383. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/max_plagiarism_matches_setting.py +0 -0
  384. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/max_user_setting_amount_setting.py +0 -0
  385. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/min_password_score_setting.py +0 -0
  386. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/mirror_file_result.py +0 -0
  387. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/missing_cookie_error.py +0 -0
  388. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/missing_file.py +0 -0
  389. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_allowed_initial_build_ids_setting.py +0 -0
  390. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_build_max_command_time_setting.py +0 -0
  391. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_build_output_limit_setting.py +0 -0
  392. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_copying_enabled_setting.py +0 -0
  393. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_current_initial_build_ids_setting.py +0 -0
  394. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_diff_viewer_enabled_setting.py +0 -0
  395. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_enabled_setting.py +0 -0
  396. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_initial_build_id_setting.py +0 -0
  397. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_max_dynamodb_size_setting.py +0 -0
  398. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_max_file_size_setting.py +0 -0
  399. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_max_output_files_size_setting.py +0 -0
  400. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_max_storage_size_setting.py +0 -0
  401. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_old_submission_age_setting.py +0 -0
  402. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_test_max_command_time_setting.py +0 -0
  403. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_test_output_limit_setting.py +0 -0
  404. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_uncollapsing_step_output_delay_setting.py +0 -0
  405. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/no_permissions.py +0 -0
  406. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/non_deleted_comment_reply.py +0 -0
  407. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/non_finalized_lti1p1_provider.py +0 -0
  408. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/non_finalized_lti1p3_provider.py +0 -0
  409. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/non_present_preference.py +0 -0
  410. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/notification.py +0 -0
  411. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/notification_comment_reply_notification_as_json.py +0 -0
  412. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/notification_general_feedback_reply_notification_as_json.py +0 -0
  413. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/notification_poll_time_setting.py +0 -0
  414. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/notification_reasons.py +0 -0
  415. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/notification_setting.py +0 -0
  416. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/notification_setting_option.py +0 -0
  417. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/notifications_json.py +0 -0
  418. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/oauth_provider.py +0 -0
  419. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/oauth_token.py +0 -0
  420. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/option.py +0 -0
  421. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/options_input_data.py +0 -0
  422. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/output_viewer_animation_limit_lines_count_setting.py +0 -0
  423. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/parse_api_exception.py +0 -0
  424. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch1_p1_provider_lti_data.py +0 -0
  425. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch1_p3_provider_lti_data.py +0 -0
  426. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_all_notification_data.py +0 -0
  427. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_assignment_data.py +0 -0
  428. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_auto_test_data.py +0 -0
  429. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_comment_reply_data.py +0 -0
  430. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_course_data.py +0 -0
  431. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_grader_submission_data.py +0 -0
  432. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_notification_data.py +0 -0
  433. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_notification_setting_user_setting_data.py +0 -0
  434. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_provider_lti_data.py +0 -0
  435. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_role_course_data.py +0 -0
  436. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_role_data.py +0 -0
  437. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_role_tenant_data.py +0 -0
  438. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_rubric_category_type_assignment_data.py +0 -0
  439. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_rubric_result_submission_data.py +0 -0
  440. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_section_data.py +0 -0
  441. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_settings_tenant_data.py +0 -0
  442. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_site_settings_data.py +0 -0
  443. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_snippet_course_data.py +0 -0
  444. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_snippet_data.py +0 -0
  445. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_submission_data.py +0 -0
  446. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_submit_types_assignment_data.py +0 -0
  447. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_tenant_data.py +0 -0
  448. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_ui_preference_user_setting_data.py +0 -0
  449. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_user_data.py +0 -0
  450. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/pay_with_coupon_course_price_data.py +0 -0
  451. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/pearson_templates_setting.py +0 -0
  452. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/peer_feedback_enabled_setting.py +0 -0
  453. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/permission_exception.py +0 -0
  454. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/plagiarism_bulk_export_enabled_setting.py +0 -0
  455. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/plagiarism_bulk_export_max_cases_setting.py +0 -0
  456. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/plagiarism_case.py +0 -0
  457. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/plagiarism_pdf_export_enabled_setting.py +0 -0
  458. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/plagiarism_run.py +0 -0
  459. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/plagiarism_run_plagiarism_assignment_as_json.py +0 -0
  460. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/plagiarism_run_plagiarism_course_as_json.py +0 -0
  461. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/plagiarism_state.py +0 -0
  462. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/post_oauth_token_data.py +0 -0
  463. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/present_preference.py +0 -0
  464. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/proxy.py +0 -0
  465. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/put_description_assignment_data.py +0 -0
  466. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/put_enroll_link_course_data.py +0 -0
  467. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/put_price_course_data.py +0 -0
  468. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/put_price_tenant_data.py +0 -0
  469. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/put_rubric_assignment_data.py +0 -0
  470. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/quality_comment_severity.py +0 -0
  471. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/quality_comments_in_code_editor_setting.py +0 -0
  472. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/quality_test_log.py +0 -0
  473. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/quality_test_log_base.py +0 -0
  474. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/register_enabled_setting.py +0 -0
  475. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/register_user_data.py +0 -0
  476. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/register_user_with_link_course_data.py +0 -0
  477. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/release_info.py +0 -0
  478. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/release_message_max_time_setting.py +0 -0
  479. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/rename_group_group_data.py +0 -0
  480. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/render_html_enabled_setting.py +0 -0
  481. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/repository_connection_limit_reached_exception.py +0 -0
  482. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/reset_token_time_setting.py +0 -0
  483. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/result_data_get_auto_test_get.py +0 -0
  484. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/result_data_get_task_result_get_all.py +0 -0
  485. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/result_data_post_login_link_login.py +0 -0
  486. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/result_data_post_section_create_division.py +0 -0
  487. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/result_data_post_user_login.py +0 -0
  488. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/result_data_post_user_register.py +0 -0
  489. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/role_as_json_with_perms.py +0 -0
  490. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/root_file_trees_json.py +0 -0
  491. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/rubric_description_type.py +0 -0
  492. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/rubric_enabled_for_teacher_on_submissions_page_setting.py +0 -0
  493. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/rubric_item.py +0 -0
  494. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/rubric_item_input_as_json.py +0 -0
  495. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/rubric_lock_reason.py +0 -0
  496. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/rubric_row_base.py +0 -0
  497. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/rubric_row_base_input_as_json.py +0 -0
  498. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/rubric_row_base_input_base_as_json.py +0 -0
  499. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/rubrics_enabled_setting.py +0 -0
  500. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/rule_type.py +0 -0
  501. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/run_program_as_json.py +0 -0
  502. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/run_program_data.py +0 -0
  503. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/run_program_extra.py +0 -0
  504. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/run_program_input_as_json.py +0 -0
  505. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/run_program_log.py +0 -0
  506. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/saml2_provider_json.py +0 -0
  507. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/saml_ui_info.py +0 -0
  508. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/sections_in_submission_list_enabled_setting.py +0 -0
  509. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/send_registration_email_setting.py +0 -0
  510. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/server_time_correction_enabled_setting.py +0 -0
  511. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/server_time_diff_tolerance_setting.py +0 -0
  512. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/server_time_sync_interval_setting.py +0 -0
  513. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/setting_token_time_setting.py +0 -0
  514. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/setup_oauth_result.py +0 -0
  515. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/simple_submission_mode_enabled_setting.py +0 -0
  516. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/simple_submission_navigate_to_latest_editor_session_setting.py +0 -0
  517. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/site_email_setting.py +0 -0
  518. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/snippet.py +0 -0
  519. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/sso_infer_global_staff_role_setting.py +0 -0
  520. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/sso_username_decollision_enabled_setting.py +0 -0
  521. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/staged_assignment_importer_enabled_setting.py +0 -0
  522. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/start_payment_course_price_close_tab_data.py +0 -0
  523. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/start_payment_course_price_data.py +0 -0
  524. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/start_payment_course_price_redirect_data.py +0 -0
  525. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/started_transaction.py +0 -0
  526. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/student_payment_enabled_setting.py +0 -0
  527. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/submission_validator_input_data.py +0 -0
  528. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/submissions_page_v2_enabled_setting.py +0 -0
  529. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/submissions_per_page_enabled_setting.py +0 -0
  530. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/task_result_state.py +0 -0
  531. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/tax_behavior.py +0 -0
  532. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/tenant.py +0 -0
  533. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/tenant_coupon.py +0 -0
  534. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/tenant_coupon_usage.py +0 -0
  535. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/tenant_coupon_with_code.py +0 -0
  536. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/tenant_coupon_without_code.py +0 -0
  537. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/tenant_course_statistics.py +0 -0
  538. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/tenant_of_tenant_price.py +0 -0
  539. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/tenant_permissions.py +0 -0
  540. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/tenant_price.py +0 -0
  541. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/tenant_role_as_json_with_perms.py +0 -0
  542. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/tenant_statistics.py +0 -0
  543. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/test_submission_copying_on_import_enabled_setting.py +0 -0
  544. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/timed_availability.py +0 -0
  545. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/timeframe_like.py +0 -0
  546. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/token_revoked_exception.py +0 -0
  547. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/transaction.py +0 -0
  548. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/transaction_state.py +0 -0
  549. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/types.py +0 -0
  550. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/update_peer_feedback_settings_assignment_data.py +0 -0
  551. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/update_set_auto_test_data.py +0 -0
  552. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/update_suite_auto_test_base_data.py +0 -0
  553. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/update_suite_auto_test_data.py +0 -0
  554. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/upgraded_lti_provider_exception.py +0 -0
  555. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/upload_submission_assignment_data.py +0 -0
  556. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/user.py +0 -0
  557. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/user_course.py +0 -0
  558. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/user_info_with_role.py +0 -0
  559. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/user_input.py +0 -0
  560. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/user_without_group.py +0 -0
  561. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/weak_password_exception.py +0 -0
  562. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/weak_password_feedback.py +0 -0
  563. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/webhook_base.py +0 -0
  564. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/webhook_configuration_disabled_as_json.py +0 -0
  565. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/webhook_configuration_enabled_as_json.py +0 -0
  566. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/work.py +0 -0
  567. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/work_origin.py +0 -0
  568. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/work_rubric_item.py +0 -0
  569. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/work_rubric_result_as_json.py +0 -0
  570. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/work_rubric_result_points_as_json.py +0 -0
  571. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/parsers.py +0 -0
  572. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/py.typed +0 -0
  573. {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: codegrade
3
- Version: 16.1.48
3
+ Version: 16.1.51
4
4
  Summary: A client library for accessing CodeGrade
5
5
  License: AGPL-3.0-only OR BSD-3-Clause-Clear
6
6
  Requires-Python: >=3.8.0,<4.0
@@ -7,7 +7,7 @@ from functools import wraps
7
7
  from .client import AuthenticatedClient, Client
8
8
 
9
9
  __all__ = ("login", "AuthenticatedClient", "Client", "login_from_cli")
10
- __version__ = "16.1.48"
10
+ __version__ = "16.1.51"
11
11
 
12
12
 
13
13
  @wraps(AuthenticatedClient.get)
@@ -526,7 +526,7 @@ class Client(_BaseClient):
526
526
  return httpx.Client(
527
527
  base_url=self.base_url,
528
528
  headers={
529
- "User-Agent": "CodeGradeAPI/16.1.48",
529
+ "User-Agent": "CodeGradeAPI/16.1.51",
530
530
  },
531
531
  follow_redirects=True,
532
532
  )
@@ -546,7 +546,7 @@ class AuthenticatedClient(_BaseClient):
546
546
  base_url=self.base_url,
547
547
  headers={
548
548
  "Authorization": f"Bearer {self.token}",
549
- "User-Agent": "CodeGradeAPI/16.1.48",
549
+ "User-Agent": "CodeGradeAPI/16.1.51",
550
550
  },
551
551
  follow_redirects=True,
552
552
  )
@@ -255,6 +255,10 @@ from .custom_output_extra import CustomOutputExtra
255
255
  from .custom_output_input_as_json import CustomOutputInputAsJSON
256
256
  from .custom_output_log import CustomOutputLog
257
257
  from .custom_output_log_base import CustomOutputLogBase
258
+ from .default_course_ta_role_setting import DefaultCourseTaRoleSetting
259
+ from .default_course_teacher_role_setting import (
260
+ DefaultCourseTeacherRoleSetting,
261
+ )
258
262
  from .deleted_comment_reply import DeletedCommentReply
259
263
  from .deletion_type import DeletionType
260
264
  from .directory_with_children import DirectoryWithChildren
@@ -394,9 +398,15 @@ from .logout_response import LogoutResponse
394
398
  from .logout_user_data import LogoutUserData
395
399
  from .lti1p1_provider import LTI1p1Provider
396
400
  from .lti1p1_provider_data import LTI1p1ProviderData
401
+ from .lti1p3_nonce_and_state_validation_enabled_setting import (
402
+ Lti1p3NonceAndStateValidationEnabledSetting,
403
+ )
397
404
  from .lti1p3_parse_most_privileged_role_setting import (
398
405
  Lti1p3ParseMostPrivilegedRoleSetting,
399
406
  )
407
+ from .lti1p3_prevent_nonce_reuse_enabled_setting import (
408
+ Lti1p3PreventNonceReuseEnabledSetting,
409
+ )
400
410
  from .lti1p3_provider import LTI1p3Provider
401
411
  from .lti1p3_provider_data import LTI1p3ProviderData
402
412
  from .lti1p3_provider_presentation_as_json import (
@@ -131,6 +131,25 @@ class AllSiteSettings(FrontendSiteSettings):
131
131
  lti_launch_data_logging: Maybe["bool"] = Nothing
132
132
  #: Whether or not pearson templates should be enabled.
133
133
  pearson_templates: Maybe["bool"] = Nothing
134
+ #: The teacher role to be used for teachers in new courses. Existing
135
+ #: courses will not be affected.
136
+ default_course_teacher_role: Maybe[
137
+ "t.Literal['Full Teacher', 'Non-Editing Teacher']"
138
+ ] = Nothing
139
+ #: The TA role to be used for TAs in new courses. Existing courses will not
140
+ #: be affected.
141
+ default_course_ta_role: Maybe[
142
+ "t.Literal['Full TA', 'Non-Editing TA']"
143
+ ] = Nothing
144
+ #: Whether LTI 1.3 launches using cookies (and sessions) should check for
145
+ #: correct nonce and state. When disabling this feature flag, please be
146
+ #: mindful. These validations protect us from certain attacks. If unsure,
147
+ #: consult with the Security Officer before disabling.
148
+ lti_1p3_nonce_and_state_validation_enabled: Maybe["bool"] = Nothing
149
+ #: Whether LTI 1.3 launches should check nonces against the cached value.
150
+ #: Enabling this prevents replay attacks. If unsure, consult with the
151
+ #: Security Officer before disabling.
152
+ lti_1p3_prevent_nonce_reuse_enabled: Maybe["bool"] = Nothing
134
153
 
135
154
  raw_data: t.Optional[t.Dict[str, t.Any]] = field(init=False, repr=False)
136
155
 
@@ -447,6 +466,44 @@ class AllSiteSettings(FrontendSiteSettings):
447
466
  rqa.SimpleValue.bool,
448
467
  doc="Whether or not pearson templates should be enabled.",
449
468
  ),
469
+ rqa.OptionalArgument(
470
+ "DEFAULT_COURSE_TEACHER_ROLE",
471
+ rqa.StringEnum("Full Teacher", "Non-Editing Teacher"),
472
+ doc=(
473
+ "The teacher role to be used for teachers in new"
474
+ " courses. Existing courses will not be affected."
475
+ ),
476
+ ),
477
+ rqa.OptionalArgument(
478
+ "DEFAULT_COURSE_TA_ROLE",
479
+ rqa.StringEnum("Full TA", "Non-Editing TA"),
480
+ doc=(
481
+ "The TA role to be used for TAs in new courses."
482
+ " Existing courses will not be affected."
483
+ ),
484
+ ),
485
+ rqa.OptionalArgument(
486
+ "LTI_1P3_NONCE_AND_STATE_VALIDATION_ENABLED",
487
+ rqa.SimpleValue.bool,
488
+ doc=(
489
+ "Whether LTI 1.3 launches using cookies (and sessions)"
490
+ " should check for correct nonce and state. When"
491
+ " disabling this feature flag, please be mindful."
492
+ " These validations protect us from certain attacks."
493
+ " If unsure, consult with the Security Officer before"
494
+ " disabling."
495
+ ),
496
+ ),
497
+ rqa.OptionalArgument(
498
+ "LTI_1P3_PREVENT_NONCE_REUSE_ENABLED",
499
+ rqa.SimpleValue.bool,
500
+ doc=(
501
+ "Whether LTI 1.3 launches should check nonces against"
502
+ " the cached value. Enabling this prevents replay"
503
+ " attacks. If unsure, consult with the Security"
504
+ " Officer before disabling."
505
+ ),
506
+ ),
450
507
  )
451
508
  ).use_readable_describe(True)
452
509
  )
@@ -550,6 +607,18 @@ class AllSiteSettings(FrontendSiteSettings):
550
607
  self.lti_launch_data_logging
551
608
  )
552
609
  self.pearson_templates = maybe_from_nullable(self.pearson_templates)
610
+ self.default_course_teacher_role = maybe_from_nullable(
611
+ self.default_course_teacher_role
612
+ )
613
+ self.default_course_ta_role = maybe_from_nullable(
614
+ self.default_course_ta_role
615
+ )
616
+ self.lti_1p3_nonce_and_state_validation_enabled = maybe_from_nullable(
617
+ self.lti_1p3_nonce_and_state_validation_enabled
618
+ )
619
+ self.lti_1p3_prevent_nonce_reuse_enabled = maybe_from_nullable(
620
+ self.lti_1p3_prevent_nonce_reuse_enabled
621
+ )
553
622
 
554
623
  def to_dict(self) -> t.Dict[str, t.Any]:
555
624
  res: t.Dict[str, t.Any] = {}
@@ -1013,6 +1082,22 @@ class AllSiteSettings(FrontendSiteSettings):
1013
1082
  )
1014
1083
  if self.pearson_templates.is_just:
1015
1084
  res["PEARSON_TEMPLATES"] = to_dict(self.pearson_templates.value)
1085
+ if self.default_course_teacher_role.is_just:
1086
+ res["DEFAULT_COURSE_TEACHER_ROLE"] = to_dict(
1087
+ self.default_course_teacher_role.value
1088
+ )
1089
+ if self.default_course_ta_role.is_just:
1090
+ res["DEFAULT_COURSE_TA_ROLE"] = to_dict(
1091
+ self.default_course_ta_role.value
1092
+ )
1093
+ if self.lti_1p3_nonce_and_state_validation_enabled.is_just:
1094
+ res["LTI_1P3_NONCE_AND_STATE_VALIDATION_ENABLED"] = to_dict(
1095
+ self.lti_1p3_nonce_and_state_validation_enabled.value
1096
+ )
1097
+ if self.lti_1p3_prevent_nonce_reuse_enabled.is_just:
1098
+ res["LTI_1P3_PREVENT_NONCE_REUSE_ENABLED"] = to_dict(
1099
+ self.lti_1p3_prevent_nonce_reuse_enabled.value
1100
+ )
1016
1101
  return res
1017
1102
 
1018
1103
  @classmethod
@@ -1143,6 +1228,10 @@ class AllSiteSettings(FrontendSiteSettings):
1143
1228
  lti_first_launch_content_id_enabled=parsed.LTI_FIRST_LAUNCH_CONTENT_ID_ENABLED,
1144
1229
  lti_launch_data_logging=parsed.LTI_LAUNCH_DATA_LOGGING,
1145
1230
  pearson_templates=parsed.PEARSON_TEMPLATES,
1231
+ default_course_teacher_role=parsed.DEFAULT_COURSE_TEACHER_ROLE,
1232
+ default_course_ta_role=parsed.DEFAULT_COURSE_TA_ROLE,
1233
+ lti_1p3_nonce_and_state_validation_enabled=parsed.LTI_1P3_NONCE_AND_STATE_VALIDATION_ENABLED,
1234
+ lti_1p3_prevent_nonce_reuse_enabled=parsed.LTI_1P3_PREVENT_NONCE_REUSE_ENABLED,
1146
1235
  )
1147
1236
  res.raw_data = d
1148
1237
  return res
@@ -280,6 +280,9 @@ class CoursePermMap:
280
280
  #: Users with this permission can create test submissions in the
281
281
  #: assignments of this course.
282
282
  can_create_test_submissions: "bool"
283
+ #: Users with this permission are allowed to see the details of Pearson
284
+ #: templates in a course (context).
285
+ can_view_pearson_context_templates: "bool"
283
286
 
284
287
  raw_data: t.Optional[t.Dict[str, t.Any]] = field(init=False, repr=False)
285
288
 
@@ -1006,6 +1009,14 @@ class CoursePermMap:
1006
1009
  " the assignments of this course."
1007
1010
  ),
1008
1011
  ),
1012
+ rqa.RequiredArgument(
1013
+ "can_view_pearson_context_templates",
1014
+ rqa.SimpleValue.bool,
1015
+ doc=(
1016
+ "Users with this permission are allowed to see the details"
1017
+ " of Pearson templates in a course (context)."
1018
+ ),
1019
+ ),
1009
1020
  ).use_readable_describe(True)
1010
1021
  )
1011
1022
 
@@ -1174,6 +1185,9 @@ class CoursePermMap:
1174
1185
  "can_create_test_submissions": to_dict(
1175
1186
  self.can_create_test_submissions
1176
1187
  ),
1188
+ "can_view_pearson_context_templates": to_dict(
1189
+ self.can_view_pearson_context_templates
1190
+ ),
1177
1191
  }
1178
1192
  return res
1179
1193
 
@@ -1269,6 +1283,7 @@ class CoursePermMap:
1269
1283
  can_view_own_course_section_members=parsed.can_view_own_course_section_members,
1270
1284
  can_view_all_assignment_timeframes=parsed.can_view_all_assignment_timeframes,
1271
1285
  can_create_test_submissions=parsed.can_create_test_submissions,
1286
+ can_view_pearson_context_templates=parsed.can_view_pearson_context_templates,
1272
1287
  )
1273
1288
  res.raw_data = d
1274
1289
  return res
@@ -105,3 +105,4 @@ class CoursePermission(str, Enum):
105
105
  can_view_own_course_section_members = "can_view_own_course_section_members"
106
106
  can_view_all_assignment_timeframes = "can_view_all_assignment_timeframes"
107
107
  can_create_test_submissions = "can_create_test_submissions"
108
+ can_view_pearson_context_templates = "can_view_pearson_context_templates"
@@ -0,0 +1,56 @@
1
+ """The module that defines the ``DefaultCourseTaRoleSetting`` model.
2
+
3
+ SPDX-License-Identifier: AGPL-3.0-only OR BSD-3-Clause-Clear
4
+ """
5
+
6
+ import typing as t
7
+ from dataclasses import dataclass, field
8
+
9
+ import cg_request_args as rqa
10
+
11
+ from ..utils import to_dict
12
+
13
+
14
+ @dataclass
15
+ class DefaultCourseTaRoleSetting:
16
+ """ """
17
+
18
+ name: "t.Literal['DEFAULT_COURSE_TA_ROLE']"
19
+ value: "t.Optional[t.Literal['Full TA', 'Non-Editing TA']]"
20
+
21
+ raw_data: t.Optional[t.Dict[str, t.Any]] = field(init=False, repr=False)
22
+
23
+ data_parser: t.ClassVar = rqa.Lazy(
24
+ lambda: rqa.FixedMapping(
25
+ rqa.RequiredArgument(
26
+ "name",
27
+ rqa.StringEnum("DEFAULT_COURSE_TA_ROLE"),
28
+ doc="",
29
+ ),
30
+ rqa.RequiredArgument(
31
+ "value",
32
+ rqa.Nullable(rqa.StringEnum("Full TA", "Non-Editing TA")),
33
+ doc="",
34
+ ),
35
+ ).use_readable_describe(True)
36
+ )
37
+
38
+ def to_dict(self) -> t.Dict[str, t.Any]:
39
+ res: t.Dict[str, t.Any] = {
40
+ "name": to_dict(self.name),
41
+ "value": to_dict(self.value),
42
+ }
43
+ return res
44
+
45
+ @classmethod
46
+ def from_dict(
47
+ cls: t.Type["DefaultCourseTaRoleSetting"], d: t.Dict[str, t.Any]
48
+ ) -> "DefaultCourseTaRoleSetting":
49
+ parsed = cls.data_parser.try_parse(d)
50
+
51
+ res = cls(
52
+ name=parsed.name,
53
+ value=parsed.value,
54
+ )
55
+ res.raw_data = d
56
+ return res
@@ -0,0 +1,58 @@
1
+ """The module that defines the ``DefaultCourseTeacherRoleSetting`` model.
2
+
3
+ SPDX-License-Identifier: AGPL-3.0-only OR BSD-3-Clause-Clear
4
+ """
5
+
6
+ import typing as t
7
+ from dataclasses import dataclass, field
8
+
9
+ import cg_request_args as rqa
10
+
11
+ from ..utils import to_dict
12
+
13
+
14
+ @dataclass
15
+ class DefaultCourseTeacherRoleSetting:
16
+ """ """
17
+
18
+ name: "t.Literal['DEFAULT_COURSE_TEACHER_ROLE']"
19
+ value: "t.Optional[t.Literal['Full Teacher', 'Non-Editing Teacher']]"
20
+
21
+ raw_data: t.Optional[t.Dict[str, t.Any]] = field(init=False, repr=False)
22
+
23
+ data_parser: t.ClassVar = rqa.Lazy(
24
+ lambda: rqa.FixedMapping(
25
+ rqa.RequiredArgument(
26
+ "name",
27
+ rqa.StringEnum("DEFAULT_COURSE_TEACHER_ROLE"),
28
+ doc="",
29
+ ),
30
+ rqa.RequiredArgument(
31
+ "value",
32
+ rqa.Nullable(
33
+ rqa.StringEnum("Full Teacher", "Non-Editing Teacher")
34
+ ),
35
+ doc="",
36
+ ),
37
+ ).use_readable_describe(True)
38
+ )
39
+
40
+ def to_dict(self) -> t.Dict[str, t.Any]:
41
+ res: t.Dict[str, t.Any] = {
42
+ "name": to_dict(self.name),
43
+ "value": to_dict(self.value),
44
+ }
45
+ return res
46
+
47
+ @classmethod
48
+ def from_dict(
49
+ cls: t.Type["DefaultCourseTeacherRoleSetting"], d: t.Dict[str, t.Any]
50
+ ) -> "DefaultCourseTeacherRoleSetting":
51
+ parsed = cls.data_parser.try_parse(d)
52
+
53
+ res = cls(
54
+ name=parsed.name,
55
+ value=parsed.value,
56
+ )
57
+ res.raw_data = d
58
+ return res
@@ -0,0 +1,57 @@
1
+ """The module that defines the ``Lti1p3NonceAndStateValidationEnabledSetting`` model.
2
+
3
+ SPDX-License-Identifier: AGPL-3.0-only OR BSD-3-Clause-Clear
4
+ """
5
+
6
+ import typing as t
7
+ from dataclasses import dataclass, field
8
+
9
+ import cg_request_args as rqa
10
+
11
+ from ..utils import to_dict
12
+
13
+
14
+ @dataclass
15
+ class Lti1p3NonceAndStateValidationEnabledSetting:
16
+ """ """
17
+
18
+ name: "t.Literal['LTI_1P3_NONCE_AND_STATE_VALIDATION_ENABLED']"
19
+ value: "t.Optional[bool]"
20
+
21
+ raw_data: t.Optional[t.Dict[str, t.Any]] = field(init=False, repr=False)
22
+
23
+ data_parser: t.ClassVar = rqa.Lazy(
24
+ lambda: rqa.FixedMapping(
25
+ rqa.RequiredArgument(
26
+ "name",
27
+ rqa.StringEnum("LTI_1P3_NONCE_AND_STATE_VALIDATION_ENABLED"),
28
+ doc="",
29
+ ),
30
+ rqa.RequiredArgument(
31
+ "value",
32
+ rqa.Nullable(rqa.SimpleValue.bool),
33
+ doc="",
34
+ ),
35
+ ).use_readable_describe(True)
36
+ )
37
+
38
+ def to_dict(self) -> t.Dict[str, t.Any]:
39
+ res: t.Dict[str, t.Any] = {
40
+ "name": to_dict(self.name),
41
+ "value": to_dict(self.value),
42
+ }
43
+ return res
44
+
45
+ @classmethod
46
+ def from_dict(
47
+ cls: t.Type["Lti1p3NonceAndStateValidationEnabledSetting"],
48
+ d: t.Dict[str, t.Any],
49
+ ) -> "Lti1p3NonceAndStateValidationEnabledSetting":
50
+ parsed = cls.data_parser.try_parse(d)
51
+
52
+ res = cls(
53
+ name=parsed.name,
54
+ value=parsed.value,
55
+ )
56
+ res.raw_data = d
57
+ return res
@@ -0,0 +1,57 @@
1
+ """The module that defines the ``Lti1p3PreventNonceReuseEnabledSetting`` model.
2
+
3
+ SPDX-License-Identifier: AGPL-3.0-only OR BSD-3-Clause-Clear
4
+ """
5
+
6
+ import typing as t
7
+ from dataclasses import dataclass, field
8
+
9
+ import cg_request_args as rqa
10
+
11
+ from ..utils import to_dict
12
+
13
+
14
+ @dataclass
15
+ class Lti1p3PreventNonceReuseEnabledSetting:
16
+ """ """
17
+
18
+ name: "t.Literal['LTI_1P3_PREVENT_NONCE_REUSE_ENABLED']"
19
+ value: "t.Optional[bool]"
20
+
21
+ raw_data: t.Optional[t.Dict[str, t.Any]] = field(init=False, repr=False)
22
+
23
+ data_parser: t.ClassVar = rqa.Lazy(
24
+ lambda: rqa.FixedMapping(
25
+ rqa.RequiredArgument(
26
+ "name",
27
+ rqa.StringEnum("LTI_1P3_PREVENT_NONCE_REUSE_ENABLED"),
28
+ doc="",
29
+ ),
30
+ rqa.RequiredArgument(
31
+ "value",
32
+ rqa.Nullable(rqa.SimpleValue.bool),
33
+ doc="",
34
+ ),
35
+ ).use_readable_describe(True)
36
+ )
37
+
38
+ def to_dict(self) -> t.Dict[str, t.Any]:
39
+ res: t.Dict[str, t.Any] = {
40
+ "name": to_dict(self.name),
41
+ "value": to_dict(self.value),
42
+ }
43
+ return res
44
+
45
+ @classmethod
46
+ def from_dict(
47
+ cls: t.Type["Lti1p3PreventNonceReuseEnabledSetting"],
48
+ d: t.Dict[str, t.Any],
49
+ ) -> "Lti1p3PreventNonceReuseEnabledSetting":
50
+ parsed = cls.data_parser.try_parse(d)
51
+
52
+ res = cls(
53
+ name=parsed.name,
54
+ value=parsed.value,
55
+ )
56
+ res.raw_data = d
57
+ return res
@@ -103,6 +103,10 @@ from .course_gradebook_render_warning_size_setting import (
103
103
  from .course_register_enabled_setting import CourseRegisterEnabledSetting
104
104
  from .csv_large_file_limit_setting import CsvLargeFileLimitSetting
105
105
  from .csv_too_many_errors_limit_setting import CsvTooManyErrorsLimitSetting
106
+ from .default_course_ta_role_setting import DefaultCourseTaRoleSetting
107
+ from .default_course_teacher_role_setting import (
108
+ DefaultCourseTeacherRoleSetting,
109
+ )
106
110
  from .editor_enabled_for_teachers_setting import (
107
111
  EditorEnabledForTeachersSetting,
108
112
  )
@@ -140,9 +144,15 @@ from .is_admin_permission_enabled_setting import (
140
144
  from .jwt_access_token_expires_setting import JwtAccessTokenExpiresSetting
141
145
  from .linters_enabled_setting import LintersEnabledSetting
142
146
  from .login_token_before_time_setting import LoginTokenBeforeTimeSetting
147
+ from .lti1p3_nonce_and_state_validation_enabled_setting import (
148
+ Lti1p3NonceAndStateValidationEnabledSetting,
149
+ )
143
150
  from .lti1p3_parse_most_privileged_role_setting import (
144
151
  Lti1p3ParseMostPrivilegedRoleSetting,
145
152
  )
153
+ from .lti1p3_prevent_nonce_reuse_enabled_setting import (
154
+ Lti1p3PreventNonceReuseEnabledSetting,
155
+ )
146
156
  from .lti1p3_system_role_from_context_role_setting import (
147
157
  Lti1p3SystemRoleFromContextRoleSetting,
148
158
  )
@@ -396,6 +406,10 @@ SiteSettingInput = t.Union[
396
406
  SimpleSubmissionNavigateToLatestEditorSessionSetting,
397
407
  GradeViewerAndEditorOnSubmissionEnabledSetting,
398
408
  HideEmptyRubricRowDescriptionSetting,
409
+ DefaultCourseTeacherRoleSetting,
410
+ DefaultCourseTaRoleSetting,
411
+ Lti1p3NonceAndStateValidationEnabledSetting,
412
+ Lti1p3PreventNonceReuseEnabledSetting,
399
413
  ]
400
414
  SiteSettingInputParser = rqa.Lazy(
401
415
  lambda: make_union(
@@ -520,5 +534,9 @@ SiteSettingInputParser = rqa.Lazy(
520
534
  ParserFor.make(SimpleSubmissionNavigateToLatestEditorSessionSetting),
521
535
  ParserFor.make(GradeViewerAndEditorOnSubmissionEnabledSetting),
522
536
  ParserFor.make(HideEmptyRubricRowDescriptionSetting),
537
+ ParserFor.make(DefaultCourseTeacherRoleSetting),
538
+ ParserFor.make(DefaultCourseTaRoleSetting),
539
+ ParserFor.make(Lti1p3NonceAndStateValidationEnabledSetting),
540
+ ParserFor.make(Lti1p3PreventNonceReuseEnabledSetting),
523
541
  ),
524
542
  )
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "codegrade"
3
- version = "16.1.48"
3
+ version = "16.1.51"
4
4
  description = "A client library for accessing CodeGrade"
5
5
  license = "AGPL-3.0-only OR BSD-3-Clause-Clear"
6
6
  authors = []
@@ -21,7 +21,7 @@ install_requires = \
21
21
 
22
22
  setup_kwargs = {
23
23
  'name': 'codegrade',
24
- 'version': '16.1.48',
24
+ 'version': '16.1.51',
25
25
  'description': 'A client library for accessing CodeGrade',
26
26
  'long_description': '# CodeGrade API\n\nThis library makes it easier to use the CodeGrade API. Its API allows you to\nautomate your usage of CodeGrade. We are currently still busy documenting the\nentire API, but everything that is possible in the UI of CodeGrade is also\npossible through the API.\n## Installation\nYou can install the library through [pypi](https://pypi.org/), simply run\n`python3 -m pip install codegrade`. If you want to get a dev version with support\nfor the latest features, simply email [support@codegrade.com](mailto:support@codegrade.com)\nand we\'ll provide you with a dev version.\n## Usage\nFirst, create a client:\n\n```python\nimport codegrade\n\n# Don\'t store your password in your code!\nwith codegrade.login(\n username=\'my-username\',\n password=os.getenv(\'CG_PASSWORD\'),\n tenant=\'My University\',\n) as client:\n pass\n\n# Or supply information interactively.\nwith codegrade.login_from_cli() as client:\n pass\n```\n\nNow call your endpoint and use your models:\n\n```python\nfrom codegrade.models import PatchCourseData\n\ncourses = client.course.get_all()\nfor course in courses:\n client.course.patch(\n PatchCourseData(name=course.name + \' (NEW)\'),\n course_id=course.id,\n )\n\n# Or, simply use dictionaries.\nfor course in courses:\n client.course.patch(\n {"name": course.name + \' (NEW)\'},\n course_id=course.id,\n )\n```\n\nFor the complete documentation go to\nhttps://python.api.codegrade.com.\n## Backwards compatibility\nCodeGrade is constantly upgrading its API, but we try to minimize backwards\nincompatible changes. We\'ll announce every backwards incompatible change in the\n[changelog](http://codegrade.com/changelog). A new version of the API\nclient is released with every release of CodeGrade, which is approximately every\nmonth. To upgrade simply run `pip install --upgrade codegrade`.\n## Supported python versions\nWe support python 3.6 and above, `pypy` is currently not tested but should work\njust fine.\n## License\nThe library is licensed under AGPL-3.0-only or BSD-3-Clause-Clear.',
27
27
  'author': 'None',
File without changes