codegrade 16.1.22__tar.gz → 16.1.24__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 (566) hide show
  1. {codegrade-16.1.22 → codegrade-16.1.24}/PKG-INFO +1 -1
  2. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/__init__.py +1 -1
  3. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/_api/git_provider.py +59 -0
  4. codegrade-16.1.24/codegrade/_api/plagiarism.py +179 -0
  5. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/client.py +2 -2
  6. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/__init__.py +13 -2
  7. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/all_site_settings.py +10 -0
  8. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/assignment.py +13 -5
  9. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/frontend_site_settings.py +33 -0
  10. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/git_repository_like.py +18 -0
  11. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/json_patch_submit_types_assignment.py +10 -5
  12. codegrade-16.1.24/codegrade/models/plagiarism_bulk_export_enabled_setting.py +57 -0
  13. codegrade-16.1.24/codegrade/models/plagiarism_bulk_export_max_cases_setting.py +57 -0
  14. codegrade-16.1.24/codegrade/models/plagiarism_case.py +117 -0
  15. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/site_setting_input.py +10 -0
  16. codegrade-16.1.22/codegrade/models/webhook_disabled_configuration.py → codegrade-16.1.24/codegrade/models/webhook_configuration_disabled_as_json.py +5 -4
  17. codegrade-16.1.22/codegrade/models/webhook_enabled_configuration.py → codegrade-16.1.24/codegrade/models/webhook_configuration_enabled_as_json.py +17 -4
  18. {codegrade-16.1.22 → codegrade-16.1.24}/pyproject.toml +1 -1
  19. {codegrade-16.1.22 → codegrade-16.1.24}/setup.py +1 -1
  20. codegrade-16.1.22/codegrade/_api/plagiarism.py +0 -69
  21. {codegrade-16.1.22 → codegrade-16.1.24}/README.md +0 -0
  22. {codegrade-16.1.22 → codegrade-16.1.24}/cg_dt_utils/__init__.py +0 -0
  23. {codegrade-16.1.22 → codegrade-16.1.24}/cg_dt_utils/py.typed +0 -0
  24. {codegrade-16.1.22 → codegrade-16.1.24}/cg_maybe/__init__.py +0 -0
  25. {codegrade-16.1.22 → codegrade-16.1.24}/cg_maybe/_just.py +0 -0
  26. {codegrade-16.1.22 → codegrade-16.1.24}/cg_maybe/_maybe.py +0 -0
  27. {codegrade-16.1.22 → codegrade-16.1.24}/cg_maybe/_nothing.py +0 -0
  28. {codegrade-16.1.22 → codegrade-16.1.24}/cg_maybe/_type_helpers.py +0 -0
  29. {codegrade-16.1.22 → codegrade-16.1.24}/cg_maybe/cg_maybe_plugin.py +0 -0
  30. {codegrade-16.1.22 → codegrade-16.1.24}/cg_maybe/py.typed +0 -0
  31. {codegrade-16.1.22 → codegrade-16.1.24}/cg_maybe/utils.py +0 -0
  32. {codegrade-16.1.22 → codegrade-16.1.24}/cg_request_args/__init__.py +0 -0
  33. {codegrade-16.1.22 → codegrade-16.1.24}/cg_request_args/_any_value.py +0 -0
  34. {codegrade-16.1.22 → codegrade-16.1.24}/cg_request_args/_base.py +0 -0
  35. {codegrade-16.1.22 → codegrade-16.1.24}/cg_request_args/_convert.py +0 -0
  36. {codegrade-16.1.22 → codegrade-16.1.24}/cg_request_args/_enum.py +0 -0
  37. {codegrade-16.1.22 → codegrade-16.1.24}/cg_request_args/_form.py +0 -0
  38. {codegrade-16.1.22 → codegrade-16.1.24}/cg_request_args/_lazy.py +0 -0
  39. {codegrade-16.1.22 → codegrade-16.1.24}/cg_request_args/_list.py +0 -0
  40. {codegrade-16.1.22 → codegrade-16.1.24}/cg_request_args/_literal.py +0 -0
  41. {codegrade-16.1.22 → codegrade-16.1.24}/cg_request_args/_mapping.py +0 -0
  42. {codegrade-16.1.22 → codegrade-16.1.24}/cg_request_args/_multipart.py +0 -0
  43. {codegrade-16.1.22 → codegrade-16.1.24}/cg_request_args/_nullable.py +0 -0
  44. {codegrade-16.1.22 → codegrade-16.1.24}/cg_request_args/_parse_utils.py +0 -0
  45. {codegrade-16.1.22 → codegrade-16.1.24}/cg_request_args/_query.py +0 -0
  46. {codegrade-16.1.22 → codegrade-16.1.24}/cg_request_args/_rich_value.py +0 -0
  47. {codegrade-16.1.22 → codegrade-16.1.24}/cg_request_args/_swagger_utils.py +0 -0
  48. {codegrade-16.1.22 → codegrade-16.1.24}/cg_request_args/_swaggerize.py +0 -0
  49. {codegrade-16.1.22 → codegrade-16.1.24}/cg_request_args/_utils.py +0 -0
  50. {codegrade-16.1.22 → codegrade-16.1.24}/cg_request_args/exceptions.py +0 -0
  51. {codegrade-16.1.22 → codegrade-16.1.24}/cg_request_args/py.typed +0 -0
  52. {codegrade-16.1.22 → codegrade-16.1.24}/cg_request_args/request_args_plugin.py +0 -0
  53. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/_api/__init__.py +0 -0
  54. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/_api/about.py +0 -0
  55. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/_api/assignment.py +0 -0
  56. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/_api/auto_test.py +0 -0
  57. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/_api/comment.py +0 -0
  58. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/_api/course.py +0 -0
  59. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/_api/course_price.py +0 -0
  60. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/_api/file.py +0 -0
  61. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/_api/group.py +0 -0
  62. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/_api/group_set.py +0 -0
  63. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/_api/login_link.py +0 -0
  64. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/_api/lti.py +0 -0
  65. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/_api/notification.py +0 -0
  66. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/_api/oauth_provider.py +0 -0
  67. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/_api/oauth_token.py +0 -0
  68. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/_api/permission.py +0 -0
  69. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/_api/role.py +0 -0
  70. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/_api/section.py +0 -0
  71. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/_api/site_settings.py +0 -0
  72. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/_api/snippet.py +0 -0
  73. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/_api/sso_provider.py +0 -0
  74. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/_api/submission.py +0 -0
  75. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/_api/task_result.py +0 -0
  76. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/_api/tenant.py +0 -0
  77. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/_api/transaction.py +0 -0
  78. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/_api/user.py +0 -0
  79. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/_api/user_setting.py +0 -0
  80. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/_api/webhook.py +0 -0
  81. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/errors.py +0 -0
  82. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/_base_price.py +0 -0
  83. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/_saml_ui_logo_info.py +0 -0
  84. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/_submission_rubric_item_data_parser.py +0 -0
  85. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/about.py +0 -0
  86. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/abstract_role.py +0 -0
  87. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/add_users_section_data.py +0 -0
  88. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/all_auto_test_results.py +0 -0
  89. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/any_auto_test_step_as_json.py +0 -0
  90. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/any_error.py +0 -0
  91. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/any_non_redacted_auto_test_step_as_json.py +0 -0
  92. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/any_redacted_auto_test_step_as_json.py +0 -0
  93. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/api_codes.py +0 -0
  94. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/assignment_anonymization_algo.py +0 -0
  95. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/assignment_default_grading_scale_points_setting.py +0 -0
  96. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/assignment_default_grading_scale_setting.py +0 -0
  97. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/assignment_description_enabled_setting.py +0 -0
  98. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/assignment_done_type.py +0 -0
  99. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/assignment_export_column.py +0 -0
  100. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/assignment_feedback.py +0 -0
  101. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/assignment_grader.py +0 -0
  102. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/assignment_grading_scale_points_enabled_setting.py +0 -0
  103. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/assignment_kind.py +0 -0
  104. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/assignment_login_link.py +0 -0
  105. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/assignment_max_points_enabled_setting.py +0 -0
  106. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/assignment_peer_feedback_connection.py +0 -0
  107. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/assignment_peer_feedback_settings.py +0 -0
  108. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/assignment_percentage_decimals_setting.py +0 -0
  109. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/assignment_percentage_grading_settings.py +0 -0
  110. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/assignment_point_decimals_setting.py +0 -0
  111. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/assignment_points_grading_settings.py +0 -0
  112. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/assignment_section_timeframe.py +0 -0
  113. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/assignment_state_enum.py +0 -0
  114. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/assignment_template.py +0 -0
  115. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/assignment_timeframes.py +0 -0
  116. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/at_image_caching_enabled_setting.py +0 -0
  117. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test.py +0 -0
  118. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_capture_points_message_setting.py +0 -0
  119. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_checkpoint_message_setting.py +0 -0
  120. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_code_quality_message_setting.py +0 -0
  121. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_enabled_setting.py +0 -0
  122. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_fixture.py +0 -0
  123. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_global_setup_output.py +0 -0
  124. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_global_setup_script.py +0 -0
  125. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_heartbeat_interval_setting.py +0 -0
  126. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_heartbeat_max_missed_setting.py +0 -0
  127. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_io_test_message_setting.py +0 -0
  128. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_io_test_sub_message_setting.py +0 -0
  129. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_max_concurrent_batch_runs_setting.py +0 -0
  130. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_max_global_setup_time_setting.py +0 -0
  131. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_max_jobs_per_runner_setting.py +0 -0
  132. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_max_per_student_setup_time_setting.py +0 -0
  133. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_max_result_not_started_setting.py +0 -0
  134. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_max_time_command_setting.py +0 -0
  135. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_max_unit_test_metadata_length_setting.py +0 -0
  136. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_quality_comment.py +0 -0
  137. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_result.py +0 -0
  138. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_result_state.py +0 -0
  139. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_result_with_extra_data.py +0 -0
  140. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_run.py +0 -0
  141. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_run_program_message_setting.py +0 -0
  142. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_runner.py +0 -0
  143. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_runner_state.py +0 -0
  144. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_set.py +0 -0
  145. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_step_base.py +0 -0
  146. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_step_base_as_json.py +0 -0
  147. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_step_base_input_as_json.py +0 -0
  148. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_step_log_base.py +0 -0
  149. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_step_result.py +0 -0
  150. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_step_result_state.py +0 -0
  151. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_step_validation_exception.py +0 -0
  152. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_suite.py +0 -0
  153. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/auto_test_unit_test_message_setting.py +0 -0
  154. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/automatic_lti1p3_assignment_import_setting.py +0 -0
  155. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/automatic_lti_role_enabled_setting.py +0 -0
  156. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/base_about.py +0 -0
  157. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/base_auto_test_quality_comment.py +0 -0
  158. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/base_comment_base.py +0 -0
  159. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/base_comment_base_with_extended_replies.py +0 -0
  160. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/base_comment_base_with_normal_replies.py +0 -0
  161. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/base_comment_reply.py +0 -0
  162. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/base_course_coupon.py +0 -0
  163. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/base_directory.py +0 -0
  164. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/base_error.py +0 -0
  165. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/base_file.py +0 -0
  166. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/base_lms_capabilities.py +0 -0
  167. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/base_lti1p1_provider.py +0 -0
  168. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/base_lti1p3_provider.py +0 -0
  169. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/base_lti_provider.py +0 -0
  170. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/base_notification.py +0 -0
  171. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/base_release_info.py +0 -0
  172. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/base_rubric_item.py +0 -0
  173. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/base_tenant_coupon.py +0 -0
  174. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/blackboard_zip_upload_enabled_setting.py +0 -0
  175. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/bulk_enroll_course_data.py +0 -0
  176. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/canvas_course_id_copying_enabled_setting.py +0 -0
  177. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/cg_ignore_version.py +0 -0
  178. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/change_user_role_course_data.py +0 -0
  179. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/check_points_as_json.py +0 -0
  180. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/check_points_data.py +0 -0
  181. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/check_points_extra.py +0 -0
  182. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/check_points_input_as_json.py +0 -0
  183. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/clone_result.py +0 -0
  184. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/code_quality_as_json.py +0 -0
  185. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/code_quality_base_data.py +0 -0
  186. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/code_quality_data.py +0 -0
  187. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/code_quality_extra.py +0 -0
  188. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/code_quality_input_as_json.py +0 -0
  189. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/code_quality_penalties.py +0 -0
  190. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/column_range.py +0 -0
  191. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/comment_base.py +0 -0
  192. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/comment_reply.py +0 -0
  193. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/comment_reply_edit.py +0 -0
  194. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/comment_reply_type.py +0 -0
  195. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/comment_type.py +0 -0
  196. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/community_library_publishing_setting.py +0 -0
  197. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/community_library_setting.py +0 -0
  198. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/connect_repository_git_provider_data.py +0 -0
  199. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/copy_auto_test_data.py +0 -0
  200. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/copy_rubric_assignment_data.py +0 -0
  201. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/coupon_data_parser.py +0 -0
  202. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/coupon_with_code.py +0 -0
  203. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/coupon_without_code.py +0 -0
  204. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/course.py +0 -0
  205. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/course_bulk_enroll_result.py +0 -0
  206. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/course_bulk_register_enabled_setting.py +0 -0
  207. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/course_coupon.py +0 -0
  208. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/course_coupon_usage.py +0 -0
  209. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/course_gradebook_enabled_setting.py +0 -0
  210. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/course_gradebook_render_warning_size_setting.py +0 -0
  211. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/course_of_course_price.py +0 -0
  212. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/course_of_tenant_coupon_usage.py +0 -0
  213. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/course_perm_map.py +0 -0
  214. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/course_permission.py +0 -0
  215. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/course_price.py +0 -0
  216. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/course_register_enabled_setting.py +0 -0
  217. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/course_register_response.py +0 -0
  218. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/course_registration_link.py +0 -0
  219. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/course_role.py +0 -0
  220. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/course_role_as_json_with_perms.py +0 -0
  221. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/course_section.py +0 -0
  222. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/course_section_division.py +0 -0
  223. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/course_section_division_connection.py +0 -0
  224. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/course_section_division_user.py +0 -0
  225. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/course_snippet.py +0 -0
  226. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/course_state.py +0 -0
  227. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/course_statistics_as_json.py +0 -0
  228. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/create_assignment_course_data.py +0 -0
  229. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/create_auto_test_data.py +0 -0
  230. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/create_comment_data.py +0 -0
  231. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/create_comment_reply_data.py +0 -0
  232. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/create_course_data.py +0 -0
  233. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/create_division_section_data.py +0 -0
  234. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/create_group_group_set_data.py +0 -0
  235. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/create_group_set_course_data.py +0 -0
  236. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/create_lti_data.py +0 -0
  237. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/create_output_html_proxy_auto_test_data.py +0 -0
  238. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/create_proxy_submission_data.py +0 -0
  239. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/create_repository_git_provider_data.py +0 -0
  240. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/create_role_course_data.py +0 -0
  241. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/create_section_course_data.py +0 -0
  242. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/create_snippet_course_data.py +0 -0
  243. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/create_snippet_data.py +0 -0
  244. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/create_sso_provider_data.py +0 -0
  245. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/create_tenant_data.py +0 -0
  246. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/csv_large_file_limit_setting.py +0 -0
  247. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/csv_too_many_errors_limit_setting.py +0 -0
  248. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/currency.py +0 -0
  249. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/custom_output_as_json.py +0 -0
  250. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/custom_output_data.py +0 -0
  251. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/custom_output_extra.py +0 -0
  252. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/custom_output_input_as_json.py +0 -0
  253. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/custom_output_log.py +0 -0
  254. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/custom_output_log_base.py +0 -0
  255. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/deleted_comment_reply.py +0 -0
  256. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/deletion_type.py +0 -0
  257. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/directory_with_children.py +0 -0
  258. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/disabled_setting_exception.py +0 -0
  259. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/editor_enabled_for_teachers_setting.py +0 -0
  260. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/editor_enabled_setting.py +0 -0
  261. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/email_notification_types.py +0 -0
  262. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/email_students_enabled_setting.py +0 -0
  263. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/email_users_course_data.py +0 -0
  264. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/exam_login_max_length_setting.py +0 -0
  265. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/export_assignment_csv_data.py +0 -0
  266. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/export_assignment_data.py +0 -0
  267. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/export_assignment_files_data.py +0 -0
  268. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/extended_auto_test_result.py +0 -0
  269. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/extended_auto_test_run.py +0 -0
  270. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/extended_course.py +0 -0
  271. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/extended_course_registration_link.py +0 -0
  272. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/extended_course_section.py +0 -0
  273. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/extended_group.py +0 -0
  274. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/extended_job.py +0 -0
  275. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/extended_non_deleted_comment_reply.py +0 -0
  276. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/extended_tenant.py +0 -0
  277. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/extended_transaction.py +0 -0
  278. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/extended_user.py +0 -0
  279. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/extended_work.py +0 -0
  280. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/extract_file_tree_directory.py +0 -0
  281. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/extract_file_tree_file.py +0 -0
  282. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/failed_to_send_email_exception.py +0 -0
  283. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/feedback_base.py +0 -0
  284. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/feedback_threads_initially_collapsed_setting.py +0 -0
  285. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/feedback_with_replies.py +0 -0
  286. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/feedback_without_replies.py +0 -0
  287. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/file_deletion.py +0 -0
  288. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/file_rule.py +0 -0
  289. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/file_rule_input_data.py +0 -0
  290. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/file_tree.py +0 -0
  291. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/file_type.py +0 -0
  292. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/finalized_lti1p1_provider.py +0 -0
  293. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/finalized_lti1p3_provider.py +0 -0
  294. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/find_element_interval_setting.py +0 -0
  295. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/find_element_max_tries_setting.py +0 -0
  296. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/first_phase_lti_launch_exception.py +0 -0
  297. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/fixed_availability.py +0 -0
  298. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/fixed_grade_availability.py +0 -0
  299. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/fixture_like.py +0 -0
  300. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/fraction.py +0 -0
  301. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/general_feedback_comment_base.py +0 -0
  302. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/general_feedback_comment_base_with_extended_replies.py +0 -0
  303. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/general_feedback_extra.py +0 -0
  304. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/git_repositories_page.py +0 -0
  305. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/git_user_info.py +0 -0
  306. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/github_template_repo_enabled_setting.py +0 -0
  307. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/global_perm_map.py +0 -0
  308. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/global_permission.py +0 -0
  309. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/grade_history.py +0 -0
  310. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/grade_origin.py +0 -0
  311. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/grading_notifications_enabled_setting.py +0 -0
  312. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/group.py +0 -0
  313. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/group_not_ready_for_submission_exception.py +0 -0
  314. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/group_set.py +0 -0
  315. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/groups_enabled_setting.py +0 -0
  316. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/has_unread_notifcation_json.py +0 -0
  317. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/health_information.py +0 -0
  318. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/ignore_handling.py +0 -0
  319. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/ignored_files_exception.py +0 -0
  320. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/import_into_assignment_data.py +0 -0
  321. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/import_into_course_data.py +0 -0
  322. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/incremental_rubric_submission_enabled_setting.py +0 -0
  323. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/inline_feedback_comment_base.py +0 -0
  324. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/inline_feedback_comment_base_with_extended_replies.py +0 -0
  325. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/inline_feedback_extra.py +0 -0
  326. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/invalid_group_exception.py +0 -0
  327. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/invalid_io_cases_exception.py +0 -0
  328. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/invalid_options_exception.py +0 -0
  329. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/io_test_as_json.py +0 -0
  330. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/io_test_base_data.py +0 -0
  331. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/io_test_data.py +0 -0
  332. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/io_test_extra.py +0 -0
  333. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/io_test_input_as_json.py +0 -0
  334. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/io_test_input_case.py +0 -0
  335. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/io_test_log.py +0 -0
  336. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/io_test_option.py +0 -0
  337. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/io_test_step_log.py +0 -0
  338. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/io_test_step_log_base.py +0 -0
  339. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/is_admin_permission_enabled_setting.py +0 -0
  340. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/job.py +0 -0
  341. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/json_create_auto_test.py +0 -0
  342. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/json_create_tenant.py +0 -0
  343. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/json_patch_auto_test.py +0 -0
  344. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/junit_test_as_json.py +0 -0
  345. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/junit_test_base_data.py +0 -0
  346. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/junit_test_data.py +0 -0
  347. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/junit_test_extra.py +0 -0
  348. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/junit_test_input_as_json.py +0 -0
  349. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/junit_test_log.py +0 -0
  350. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/junit_test_log_base.py +0 -0
  351. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/jwt_access_token_expires_setting.py +0 -0
  352. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/legacy_features.py +0 -0
  353. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/line_range.py +0 -0
  354. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/linter_comment.py +0 -0
  355. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/linters_enabled_setting.py +0 -0
  356. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/lms_capabilities.py +0 -0
  357. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/login_token_before_time_setting.py +0 -0
  358. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/login_user_data.py +0 -0
  359. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/logout_response.py +0 -0
  360. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/logout_user_data.py +0 -0
  361. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/lti1p1_provider.py +0 -0
  362. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/lti1p1_provider_data.py +0 -0
  363. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/lti1p3_parse_most_privileged_role_setting.py +0 -0
  364. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/lti1p3_provider.py +0 -0
  365. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/lti1p3_provider_data.py +0 -0
  366. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/lti1p3_provider_presentation_as_json.py +0 -0
  367. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/lti1p3_system_role_from_context_role_setting.py +0 -0
  368. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/lti_enabled_setting.py +0 -0
  369. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/lti_lock_date_copying_enabled_setting.py +0 -0
  370. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/lti_provider_base.py +0 -0
  371. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/lti_unset_deadline_lock_date_enabled_setting.py +0 -0
  372. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/max_document_update_size_setting.py +0 -0
  373. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/max_dynamo_file_size_setting.py +0 -0
  374. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/max_dynamo_submission_size_setting.py +0 -0
  375. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/max_file_size_setting.py +0 -0
  376. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/max_large_upload_size_setting.py +0 -0
  377. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/max_lines_setting.py +0 -0
  378. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/max_mirror_file_age_setting.py +0 -0
  379. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/max_normal_upload_size_setting.py +0 -0
  380. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/max_number_of_files_setting.py +0 -0
  381. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/max_plagiarism_matches_setting.py +0 -0
  382. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/max_user_setting_amount_setting.py +0 -0
  383. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/metric_evaluation_time_chunk_size_setting.py +0 -0
  384. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/metric_evaluation_time_limit_setting.py +0 -0
  385. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/metric_event_buffer_size_setting.py +0 -0
  386. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/metric_gathering_enabled_setting.py +0 -0
  387. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/metric_gathering_event_interval_setting.py +0 -0
  388. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/metric_gathering_expressions_setting.py +0 -0
  389. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/metric_gathering_time_interval_setting.py +0 -0
  390. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/min_password_score_setting.py +0 -0
  391. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/mirror_file_result.py +0 -0
  392. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/missing_cookie_error.py +0 -0
  393. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/missing_file.py +0 -0
  394. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/new_auto_test_allowed_initial_build_ids_setting.py +0 -0
  395. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/new_auto_test_build_max_command_time_setting.py +0 -0
  396. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/new_auto_test_build_output_limit_setting.py +0 -0
  397. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/new_auto_test_copying_enabled_setting.py +0 -0
  398. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/new_auto_test_current_initial_build_ids_setting.py +0 -0
  399. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/new_auto_test_diff_viewer_enabled_setting.py +0 -0
  400. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/new_auto_test_enabled_setting.py +0 -0
  401. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/new_auto_test_initial_build_id_setting.py +0 -0
  402. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/new_auto_test_max_dynamodb_size_setting.py +0 -0
  403. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/new_auto_test_max_file_size_setting.py +0 -0
  404. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/new_auto_test_max_storage_size_setting.py +0 -0
  405. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/new_auto_test_old_submission_age_setting.py +0 -0
  406. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/new_auto_test_test_max_command_time_setting.py +0 -0
  407. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/new_auto_test_test_output_limit_setting.py +0 -0
  408. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/no_permissions.py +0 -0
  409. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/non_deleted_comment_reply.py +0 -0
  410. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/non_finalized_lti1p1_provider.py +0 -0
  411. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/non_finalized_lti1p3_provider.py +0 -0
  412. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/non_present_preference.py +0 -0
  413. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/notification.py +0 -0
  414. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/notification_comment_reply_notification_as_json.py +0 -0
  415. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/notification_general_feedback_reply_notification_as_json.py +0 -0
  416. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/notification_poll_time_setting.py +0 -0
  417. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/notification_reasons.py +0 -0
  418. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/notification_setting.py +0 -0
  419. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/notification_setting_option.py +0 -0
  420. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/notifications_json.py +0 -0
  421. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/oauth_provider.py +0 -0
  422. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/oauth_token.py +0 -0
  423. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/option.py +0 -0
  424. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/options_input_data.py +0 -0
  425. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/output_viewer_animation_limit_lines_count_setting.py +0 -0
  426. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/parse_api_exception.py +0 -0
  427. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/patch1_p1_provider_lti_data.py +0 -0
  428. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/patch1_p3_provider_lti_data.py +0 -0
  429. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/patch_all_notification_data.py +0 -0
  430. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/patch_assignment_data.py +0 -0
  431. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/patch_auto_test_data.py +0 -0
  432. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/patch_comment_reply_data.py +0 -0
  433. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/patch_course_data.py +0 -0
  434. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/patch_grader_submission_data.py +0 -0
  435. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/patch_notification_data.py +0 -0
  436. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/patch_notification_setting_user_setting_data.py +0 -0
  437. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/patch_provider_lti_data.py +0 -0
  438. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/patch_role_course_data.py +0 -0
  439. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/patch_role_data.py +0 -0
  440. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/patch_role_tenant_data.py +0 -0
  441. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/patch_rubric_category_type_assignment_data.py +0 -0
  442. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/patch_rubric_result_submission_data.py +0 -0
  443. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/patch_section_data.py +0 -0
  444. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/patch_settings_tenant_data.py +0 -0
  445. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/patch_site_settings_data.py +0 -0
  446. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/patch_snippet_course_data.py +0 -0
  447. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/patch_snippet_data.py +0 -0
  448. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/patch_submission_data.py +0 -0
  449. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/patch_submit_types_assignment_data.py +0 -0
  450. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/patch_tenant_data.py +0 -0
  451. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/patch_ui_preference_user_setting_data.py +0 -0
  452. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/patch_user_data.py +0 -0
  453. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/pay_with_coupon_course_price_data.py +0 -0
  454. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/peer_feedback_enabled_setting.py +0 -0
  455. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/permission_exception.py +0 -0
  456. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/plagiarism_pdf_export_enabled_setting.py +0 -0
  457. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/plagiarism_run.py +0 -0
  458. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/plagiarism_run_plagiarism_assignment_as_json.py +0 -0
  459. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/plagiarism_run_plagiarism_course_as_json.py +0 -0
  460. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/plagiarism_state.py +0 -0
  461. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/post_oauth_token_data.py +0 -0
  462. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/present_preference.py +0 -0
  463. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/proxy.py +0 -0
  464. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/put_description_assignment_data.py +0 -0
  465. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/put_enroll_link_course_data.py +0 -0
  466. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/put_price_course_data.py +0 -0
  467. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/put_price_tenant_data.py +0 -0
  468. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/put_rubric_assignment_data.py +0 -0
  469. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/quality_comment_severity.py +0 -0
  470. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/quality_test_log.py +0 -0
  471. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/quality_test_log_base.py +0 -0
  472. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/register_enabled_setting.py +0 -0
  473. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/register_user_data.py +0 -0
  474. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/register_user_with_link_course_data.py +0 -0
  475. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/release_info.py +0 -0
  476. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/release_message_max_time_setting.py +0 -0
  477. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/rename_group_group_data.py +0 -0
  478. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/render_html_enabled_setting.py +0 -0
  479. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/repository_connection_limit_reached_exception.py +0 -0
  480. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/reset_token_time_setting.py +0 -0
  481. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/result_data_get_auto_test_get.py +0 -0
  482. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/result_data_get_task_result_get_all.py +0 -0
  483. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/result_data_post_login_link_login.py +0 -0
  484. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/result_data_post_section_create_division.py +0 -0
  485. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/result_data_post_user_login.py +0 -0
  486. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/result_data_post_user_register.py +0 -0
  487. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/role_as_json_with_perms.py +0 -0
  488. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/root_file_trees_json.py +0 -0
  489. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/rubric_description_type.py +0 -0
  490. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/rubric_enabled_for_teacher_on_submissions_page_setting.py +0 -0
  491. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/rubric_item.py +0 -0
  492. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/rubric_item_input_as_json.py +0 -0
  493. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/rubric_lock_reason.py +0 -0
  494. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/rubric_row_base.py +0 -0
  495. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/rubric_row_base_input_as_json.py +0 -0
  496. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/rubric_row_base_input_base_as_json.py +0 -0
  497. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/rubrics_enabled_setting.py +0 -0
  498. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/rule_type.py +0 -0
  499. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/run_program_as_json.py +0 -0
  500. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/run_program_data.py +0 -0
  501. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/run_program_extra.py +0 -0
  502. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/run_program_input_as_json.py +0 -0
  503. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/run_program_log.py +0 -0
  504. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/saml2_provider_json.py +0 -0
  505. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/saml_ui_info.py +0 -0
  506. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/sections_in_submission_list_enabled_setting.py +0 -0
  507. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/send_registration_email_setting.py +0 -0
  508. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/server_time_correction_enabled_setting.py +0 -0
  509. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/server_time_diff_tolerance_setting.py +0 -0
  510. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/server_time_sync_interval_setting.py +0 -0
  511. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/setting_token_time_setting.py +0 -0
  512. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/setup_oauth_result.py +0 -0
  513. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/site_email_setting.py +0 -0
  514. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/snippet.py +0 -0
  515. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/sso_username_decollision_enabled_setting.py +0 -0
  516. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/staged_assignment_importer_enabled_setting.py +0 -0
  517. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/start_payment_course_price_close_tab_data.py +0 -0
  518. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/start_payment_course_price_data.py +0 -0
  519. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/start_payment_course_price_redirect_data.py +0 -0
  520. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/started_transaction.py +0 -0
  521. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/student_payment_enabled_setting.py +0 -0
  522. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/submission_validator_input_data.py +0 -0
  523. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/task_result_state.py +0 -0
  524. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/tax_behavior.py +0 -0
  525. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/tenant.py +0 -0
  526. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/tenant_coupon.py +0 -0
  527. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/tenant_coupon_usage.py +0 -0
  528. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/tenant_coupon_with_code.py +0 -0
  529. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/tenant_coupon_without_code.py +0 -0
  530. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/tenant_course_statistics.py +0 -0
  531. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/tenant_of_tenant_price.py +0 -0
  532. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/tenant_permissions.py +0 -0
  533. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/tenant_price.py +0 -0
  534. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/tenant_role_as_json_with_perms.py +0 -0
  535. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/tenant_statistics.py +0 -0
  536. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/test_submission_copying_on_import_enabled_setting.py +0 -0
  537. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/timed_availability.py +0 -0
  538. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/timeframe_like.py +0 -0
  539. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/token_revoked_exception.py +0 -0
  540. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/tour_configurations_setting.py +0 -0
  541. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/tour_polling_interval_setting.py +0 -0
  542. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/transaction.py +0 -0
  543. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/transaction_state.py +0 -0
  544. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/types.py +0 -0
  545. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/update_peer_feedback_settings_assignment_data.py +0 -0
  546. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/update_set_auto_test_data.py +0 -0
  547. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/update_suite_auto_test_base_data.py +0 -0
  548. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/update_suite_auto_test_data.py +0 -0
  549. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/upgraded_lti_provider_exception.py +0 -0
  550. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/upload_submission_assignment_data.py +0 -0
  551. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/user.py +0 -0
  552. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/user_course.py +0 -0
  553. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/user_info_with_role.py +0 -0
  554. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/user_input.py +0 -0
  555. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/user_without_group.py +0 -0
  556. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/weak_password_exception.py +0 -0
  557. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/weak_password_feedback.py +0 -0
  558. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/webhook_base.py +0 -0
  559. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/work.py +0 -0
  560. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/work_origin.py +0 -0
  561. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/work_rubric_item.py +0 -0
  562. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/work_rubric_result_as_json.py +0 -0
  563. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/models/work_rubric_result_points_as_json.py +0 -0
  564. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/parsers.py +0 -0
  565. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/py.typed +0 -0
  566. {codegrade-16.1.22 → codegrade-16.1.24}/codegrade/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: codegrade
3
- Version: 16.1.22
3
+ Version: 16.1.24
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.7.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.22"
10
+ __version__ = "16.1.24"
11
11
 
12
12
 
13
13
  @wraps(AuthenticatedClient.get)
@@ -228,3 +228,62 @@ class GitProviderService(t.Generic[_ClientT]):
228
228
  ),
229
229
  ),
230
230
  )
231
+
232
+ def get_all_templates(
233
+ self: "GitProviderService[codegrade.client.AuthenticatedClient]",
234
+ *,
235
+ provider_id: "str",
236
+ token_id: "str",
237
+ after: Maybe["str"] = Nothing,
238
+ extra_parameters: t.Optional[
239
+ t.Mapping[str, t.Union[str, bool, int, float]]
240
+ ] = None,
241
+ ) -> "GitRepositoriesPage":
242
+ """Get all template repositories for the given git provider.
243
+
244
+ Note: We do not yet support GitLab templates.
245
+
246
+ :param provider_id: The provider from which you want to retrieve repos.
247
+ :param token_id: The token to use to retrieve the repos.
248
+ :param after: If given results after this cursor will be retrieved.
249
+ :param extra_parameters: The extra query parameters you might want to
250
+ add. By default no extra query parameters are added.
251
+
252
+ :returns: The token.
253
+ """
254
+
255
+ url = (
256
+ "/api/v1/git_providers/{providerId}/tokens/{tokenId}/templates/"
257
+ .format(providerId=provider_id, tokenId=token_id)
258
+ )
259
+ params: t.Dict[str, t.Any] = {
260
+ **(extra_parameters or {}),
261
+ }
262
+ maybe_from_nullable(t.cast(t.Any, after)).if_just(
263
+ lambda val: params.__setitem__("after", val)
264
+ )
265
+
266
+ with self.__client as client:
267
+ resp = client.http.get(url=url, params=params)
268
+ utils.log_warnings(resp)
269
+
270
+ if utils.response_code_matches(resp.status_code, 200):
271
+ # fmt: off
272
+ from ..models.git_repositories_page import GitRepositoriesPage
273
+
274
+ # fmt: on
275
+ return parsers.JsonResponseParser(
276
+ parsers.ParserFor.make(GitRepositoriesPage)
277
+ ).try_parse(resp)
278
+
279
+ from ..models.any_error import AnyError
280
+
281
+ raise utils.get_error(
282
+ resp,
283
+ (
284
+ (
285
+ (400, 409, 401, 403, 404, 429, 500),
286
+ utils.unpack_union(AnyError),
287
+ ),
288
+ ),
289
+ )
@@ -0,0 +1,179 @@
1
+ """The endpoints for plagiarism objects.
2
+
3
+ SPDX-License-Identifier: AGPL-3.0-only OR BSD-3-Clause-Clear
4
+ """
5
+ import os
6
+ import typing as t
7
+
8
+ import cg_request_args as rqa
9
+ from cg_maybe import Maybe, Nothing
10
+ from cg_maybe.utils import maybe_from_nullable
11
+
12
+ from .. import parsers, utils
13
+
14
+ if t.TYPE_CHECKING or os.getenv("CG_EAGERIMPORT", False):
15
+ import codegrade
16
+
17
+ from ..models.plagiarism_case import PlagiarismCase
18
+ from ..models.plagiarism_run import PlagiarismRun
19
+
20
+
21
+ _ClientT = t.TypeVar("_ClientT", bound="codegrade.client._BaseClient")
22
+
23
+
24
+ class PlagiarismService(t.Generic[_ClientT]):
25
+ __slots__ = ("__client",)
26
+
27
+ def __init__(self, client: _ClientT) -> None:
28
+ self.__client = client
29
+
30
+ def get(
31
+ self: "PlagiarismService[codegrade.client.AuthenticatedClient]",
32
+ *,
33
+ plagiarism_id: "int",
34
+ extra_parameters: t.Optional[
35
+ t.Mapping[str, t.Union[str, bool, int, float]]
36
+ ] = None,
37
+ ) -> "PlagiarismRun":
38
+ """Get a `.models.PlagiarismRun`.
39
+
40
+ :param plagiarism_id: The of the plagiarism run.
41
+ :param extra_parameters: The extra query parameters you might want to
42
+ add. By default no extra query parameters are added.
43
+
44
+ :returns: An single plagiarism run.
45
+ """
46
+
47
+ url = "/api/v1/plagiarism/{plagiarismId}".format(
48
+ plagiarismId=plagiarism_id
49
+ )
50
+ params = extra_parameters or {}
51
+
52
+ with self.__client as client:
53
+ resp = client.http.get(url=url, params=params)
54
+ utils.log_warnings(resp)
55
+
56
+ if utils.response_code_matches(resp.status_code, 200):
57
+ # fmt: off
58
+ from ..models.plagiarism_run import PlagiarismRun
59
+
60
+ # fmt: on
61
+ return parsers.JsonResponseParser(
62
+ parsers.ParserFor.make(PlagiarismRun)
63
+ ).try_parse(resp)
64
+
65
+ from ..models.any_error import AnyError
66
+
67
+ raise utils.get_error(
68
+ resp,
69
+ (
70
+ (
71
+ (400, 409, 401, 403, 404, 429, 500),
72
+ utils.unpack_union(AnyError),
73
+ ),
74
+ ),
75
+ )
76
+
77
+ def delete(
78
+ self: "PlagiarismService[codegrade.client.AuthenticatedClient]",
79
+ *,
80
+ plagiarism_id: "int",
81
+ extra_parameters: t.Optional[
82
+ t.Mapping[str, t.Union[str, bool, int, float]]
83
+ ] = None,
84
+ ) -> "None":
85
+ """Delete a given plagiarism run and all its cases.
86
+
87
+ This is irreversible, so make sure the user really wants this!
88
+
89
+ :param plagiarism_id: The id of the run to delete.
90
+ :param extra_parameters: The extra query parameters you might want to
91
+ add. By default no extra query parameters are added.
92
+
93
+ :returns: Nothing.
94
+ """
95
+
96
+ url = "/api/v1/plagiarism/{plagiarismId}".format(
97
+ plagiarismId=plagiarism_id
98
+ )
99
+ params = extra_parameters or {}
100
+
101
+ with self.__client as client:
102
+ resp = client.http.delete(url=url, params=params)
103
+ utils.log_warnings(resp)
104
+
105
+ if utils.response_code_matches(resp.status_code, 204):
106
+ # fmt: off
107
+ # fmt: on
108
+ return parsers.ConstantlyParser(None).try_parse(resp)
109
+
110
+ from ..models.any_error import AnyError
111
+
112
+ raise utils.get_error(
113
+ resp,
114
+ (
115
+ (
116
+ (400, 409, 401, 403, 404, 429, 500),
117
+ utils.unpack_union(AnyError),
118
+ ),
119
+ ),
120
+ )
121
+
122
+ def get_cases(
123
+ self: "PlagiarismService[codegrade.client.AuthenticatedClient]",
124
+ *,
125
+ plagiarism_id: "int",
126
+ offset: Maybe["int"] = Nothing,
127
+ limit: "int" = 25,
128
+ extra_parameters: t.Optional[
129
+ t.Mapping[str, t.Union[str, bool, int, float]]
130
+ ] = None,
131
+ ) -> "t.Sequence[PlagiarismCase]":
132
+ """Get all the `.models.PlagiarismCase`s for the given
133
+ `.models.PlagiarismRun`.
134
+
135
+ :param plagiarism_id: The of the plagiarism run.
136
+ :param offset: The amount of cases that should be skipped, only used
137
+ when limit is given. Defaults to 0.
138
+ :param limit: The amount of cases to get. Defaults to infinity.
139
+ :param extra_parameters: The extra query parameters you might want to
140
+ add. By default no extra query parameters are added.
141
+
142
+ :returns: An array of JSON serialized plagiarism cases.
143
+ """
144
+
145
+ url = "/api/v1/plagiarism/{plagiarismId}/cases/".format(
146
+ plagiarismId=plagiarism_id
147
+ )
148
+ params: t.Dict[str, t.Any] = {
149
+ **(extra_parameters or {}),
150
+ "limit": utils.to_dict(limit),
151
+ }
152
+ maybe_from_nullable(t.cast(t.Any, offset)).if_just(
153
+ lambda val: params.__setitem__("offset", val)
154
+ )
155
+
156
+ with self.__client as client:
157
+ resp = client.http.get(url=url, params=params)
158
+ utils.log_warnings(resp)
159
+
160
+ if utils.response_code_matches(resp.status_code, 200):
161
+ # fmt: off
162
+ from ..models.plagiarism_case import PlagiarismCase
163
+
164
+ # fmt: on
165
+ return parsers.JsonResponseParser(
166
+ rqa.List(parsers.ParserFor.make(PlagiarismCase))
167
+ ).try_parse(resp)
168
+
169
+ from ..models.any_error import AnyError
170
+
171
+ raise utils.get_error(
172
+ resp,
173
+ (
174
+ (
175
+ (400, 409, 401, 403, 404, 429, 500),
176
+ utils.unpack_union(AnyError),
177
+ ),
178
+ ),
179
+ )
@@ -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.22",
529
+ "User-Agent": "CodeGradeAPI/16.1.24",
530
530
  },
531
531
  )
532
532
 
@@ -545,7 +545,7 @@ class AuthenticatedClient(_BaseClient):
545
545
  base_url=self.base_url,
546
546
  headers={
547
547
  "Authorization": f"Bearer {self.token}",
548
- "User-Agent": "CodeGradeAPI/16.1.22",
548
+ "User-Agent": "CodeGradeAPI/16.1.24",
549
549
  },
550
550
  )
551
551
 
@@ -528,6 +528,13 @@ from .patch_user_data import PatchUserData
528
528
  from .pay_with_coupon_course_price_data import PayWithCouponCoursePriceData
529
529
  from .peer_feedback_enabled_setting import PeerFeedbackEnabledSetting
530
530
  from .permission_exception import PermissionException
531
+ from .plagiarism_bulk_export_enabled_setting import (
532
+ PlagiarismBulkExportEnabledSetting,
533
+ )
534
+ from .plagiarism_bulk_export_max_cases_setting import (
535
+ PlagiarismBulkExportMaxCasesSetting,
536
+ )
537
+ from .plagiarism_case import PlagiarismCase
531
538
  from .plagiarism_pdf_export_enabled_setting import (
532
539
  PlagiarismPdfExportEnabledSetting,
533
540
  )
@@ -660,8 +667,12 @@ from .user_without_group import UserWithoutGroup
660
667
  from .weak_password_exception import WeakPasswordException
661
668
  from .weak_password_feedback import WeakPasswordFeedback
662
669
  from .webhook_base import WebhookBase
663
- from .webhook_disabled_configuration import WebhookDisabledConfiguration
664
- from .webhook_enabled_configuration import WebhookEnabledConfiguration
670
+ from .webhook_configuration_disabled_as_json import (
671
+ WebhookConfigurationDisabledAsJSON,
672
+ )
673
+ from .webhook_configuration_enabled_as_json import (
674
+ WebhookConfigurationEnabledAsJSON,
675
+ )
665
676
  from .work import Work
666
677
  from .work_origin import WorkOrigin
667
678
  from .work_rubric_item import WorkRubricItem
@@ -804,6 +804,14 @@ class AllSiteSettings(FrontendSiteSettings):
804
804
  res["PLAGIARISM_PDF_EXPORT_ENABLED"] = to_dict(
805
805
  self.plagiarism_pdf_export_enabled.value
806
806
  )
807
+ if self.plagiarism_bulk_export_enabled.is_just:
808
+ res["PLAGIARISM_BULK_EXPORT_ENABLED"] = to_dict(
809
+ self.plagiarism_bulk_export_enabled.value
810
+ )
811
+ if self.plagiarism_bulk_export_max_cases.is_just:
812
+ res["PLAGIARISM_BULK_EXPORT_MAX_CASES"] = to_dict(
813
+ self.plagiarism_bulk_export_max_cases.value
814
+ )
807
815
  if self.auto_test_heartbeat_interval.is_just:
808
816
  res["AUTO_TEST_HEARTBEAT_INTERVAL"] = to_dict(
809
817
  self.auto_test_heartbeat_interval.value
@@ -1013,6 +1021,8 @@ class AllSiteSettings(FrontendSiteSettings):
1013
1021
  community_library=parsed.COMMUNITY_LIBRARY,
1014
1022
  community_library_publishing=parsed.COMMUNITY_LIBRARY_PUBLISHING,
1015
1023
  plagiarism_pdf_export_enabled=parsed.PLAGIARISM_PDF_EXPORT_ENABLED,
1024
+ plagiarism_bulk_export_enabled=parsed.PLAGIARISM_BULK_EXPORT_ENABLED,
1025
+ plagiarism_bulk_export_max_cases=parsed.PLAGIARISM_BULK_EXPORT_MAX_CASES,
1016
1026
  auto_test_heartbeat_interval=parsed.AUTO_TEST_HEARTBEAT_INTERVAL,
1017
1027
  auto_test_heartbeat_max_missed=parsed.AUTO_TEST_HEARTBEAT_MAX_MISSED,
1018
1028
  auto_test_max_jobs_per_runner=parsed.AUTO_TEST_MAX_JOBS_PER_RUNNER,
@@ -23,8 +23,12 @@ from .fixed_grade_availability import FixedGradeAvailability
23
23
  from .group_set import GroupSet
24
24
  from .submission_validator_input_data import SubmissionValidatorInputData
25
25
  from .timeframe_like import TimeframeLike
26
- from .webhook_disabled_configuration import WebhookDisabledConfiguration
27
- from .webhook_enabled_configuration import WebhookEnabledConfiguration
26
+ from .webhook_configuration_disabled_as_json import (
27
+ WebhookConfigurationDisabledAsJSON,
28
+ )
29
+ from .webhook_configuration_enabled_as_json import (
30
+ WebhookConfigurationEnabledAsJSON,
31
+ )
28
32
 
29
33
 
30
34
  @dataclass
@@ -91,7 +95,7 @@ class Assignment(TimeframeLike):
91
95
  #: `webhook_configuration`\` instead.
92
96
  webhook_upload_enabled: "bool"
93
97
  #: Settings for the git connection to this assignment.
94
- webhook_configuration: "t.Union[WebhookEnabledConfiguration, WebhookDisabledConfiguration]"
98
+ webhook_configuration: "t.Union[WebhookConfigurationEnabledAsJSON, WebhookConfigurationDisabledAsJSON]"
95
99
  #: Can you use the editor for this assignment.
96
100
  editor_upload_enabled: "bool"
97
101
  #: The maximum amount of submission a student may create, inclusive. The
@@ -302,8 +306,12 @@ class Assignment(TimeframeLike):
302
306
  rqa.RequiredArgument(
303
307
  "webhook_configuration",
304
308
  parsers.make_union(
305
- parsers.ParserFor.make(WebhookEnabledConfiguration),
306
- parsers.ParserFor.make(WebhookDisabledConfiguration),
309
+ parsers.ParserFor.make(
310
+ WebhookConfigurationEnabledAsJSON
311
+ ),
312
+ parsers.ParserFor.make(
313
+ WebhookConfigurationDisabledAsJSON
314
+ ),
307
315
  ),
308
316
  doc="Settings for the git connection to this assignment.",
309
317
  ),
@@ -266,6 +266,10 @@ class FrontendSiteSettings:
266
266
  community_library_publishing: Maybe["bool"] = Nothing
267
267
  #: Whether exporting plagiarism reports as PDF is enabled.
268
268
  plagiarism_pdf_export_enabled: Maybe["bool"] = Nothing
269
+ #: Whether bulk export of plagiarism reports is enabled.
270
+ plagiarism_bulk_export_enabled: Maybe["bool"] = Nothing
271
+ #: The maximum amount of plagiarism cases that can be exported at a time.
272
+ plagiarism_bulk_export_max_cases: Maybe["int"] = Nothing
269
273
 
270
274
  raw_data: t.Optional[t.Dict[str, t.Any]] = field(init=False, repr=False)
271
275
 
@@ -916,6 +920,19 @@ class FrontendSiteSettings:
916
920
  rqa.SimpleValue.bool,
917
921
  doc="Whether exporting plagiarism reports as PDF is enabled.",
918
922
  ),
923
+ rqa.OptionalArgument(
924
+ "PLAGIARISM_BULK_EXPORT_ENABLED",
925
+ rqa.SimpleValue.bool,
926
+ doc="Whether bulk export of plagiarism reports is enabled.",
927
+ ),
928
+ rqa.OptionalArgument(
929
+ "PLAGIARISM_BULK_EXPORT_MAX_CASES",
930
+ rqa.SimpleValue.int,
931
+ doc=(
932
+ "The maximum amount of plagiarism cases that can be"
933
+ " exported at a time."
934
+ ),
935
+ ),
919
936
  ).use_readable_describe(True)
920
937
  )
921
938
 
@@ -1147,6 +1164,12 @@ class FrontendSiteSettings:
1147
1164
  self.plagiarism_pdf_export_enabled = maybe_from_nullable(
1148
1165
  self.plagiarism_pdf_export_enabled
1149
1166
  )
1167
+ self.plagiarism_bulk_export_enabled = maybe_from_nullable(
1168
+ self.plagiarism_bulk_export_enabled
1169
+ )
1170
+ self.plagiarism_bulk_export_max_cases = maybe_from_nullable(
1171
+ self.plagiarism_bulk_export_max_cases
1172
+ )
1150
1173
 
1151
1174
  def to_dict(self) -> t.Dict[str, t.Any]:
1152
1175
  res: t.Dict[str, t.Any] = {}
@@ -1456,6 +1479,14 @@ class FrontendSiteSettings:
1456
1479
  res["PLAGIARISM_PDF_EXPORT_ENABLED"] = to_dict(
1457
1480
  self.plagiarism_pdf_export_enabled.value
1458
1481
  )
1482
+ if self.plagiarism_bulk_export_enabled.is_just:
1483
+ res["PLAGIARISM_BULK_EXPORT_ENABLED"] = to_dict(
1484
+ self.plagiarism_bulk_export_enabled.value
1485
+ )
1486
+ if self.plagiarism_bulk_export_max_cases.is_just:
1487
+ res["PLAGIARISM_BULK_EXPORT_MAX_CASES"] = to_dict(
1488
+ self.plagiarism_bulk_export_max_cases.value
1489
+ )
1459
1490
  return res
1460
1491
 
1461
1492
  @classmethod
@@ -1547,6 +1578,8 @@ class FrontendSiteSettings:
1547
1578
  community_library=parsed.COMMUNITY_LIBRARY,
1548
1579
  community_library_publishing=parsed.COMMUNITY_LIBRARY_PUBLISHING,
1549
1580
  plagiarism_pdf_export_enabled=parsed.PLAGIARISM_PDF_EXPORT_ENABLED,
1581
+ plagiarism_bulk_export_enabled=parsed.PLAGIARISM_BULK_EXPORT_ENABLED,
1582
+ plagiarism_bulk_export_max_cases=parsed.PLAGIARISM_BULK_EXPORT_MAX_CASES,
1550
1583
  )
1551
1584
  res.raw_data = d
1552
1585
  return res
@@ -21,6 +21,10 @@ class GitRepositoryLike:
21
21
  name: "str"
22
22
  #: The URL of the repository.
23
23
  url: "str"
24
+ #: Whether the repository is a template.
25
+ is_template: "bool"
26
+ #: Whether the repository is private.
27
+ is_private: "bool"
24
28
 
25
29
  raw_data: t.Optional[t.Dict[str, t.Any]] = field(init=False, repr=False)
26
30
 
@@ -41,6 +45,16 @@ class GitRepositoryLike:
41
45
  rqa.SimpleValue.str,
42
46
  doc="The URL of the repository.",
43
47
  ),
48
+ rqa.RequiredArgument(
49
+ "is_template",
50
+ rqa.SimpleValue.bool,
51
+ doc="Whether the repository is a template.",
52
+ ),
53
+ rqa.RequiredArgument(
54
+ "is_private",
55
+ rqa.SimpleValue.bool,
56
+ doc="Whether the repository is private.",
57
+ ),
44
58
  ).use_readable_describe(True)
45
59
  )
46
60
 
@@ -49,6 +63,8 @@ class GitRepositoryLike:
49
63
  "id": to_dict(self.id),
50
64
  "name": to_dict(self.name),
51
65
  "url": to_dict(self.url),
66
+ "is_template": to_dict(self.is_template),
67
+ "is_private": to_dict(self.is_private),
52
68
  }
53
69
  return res
54
70
 
@@ -62,6 +78,8 @@ class GitRepositoryLike:
62
78
  id=parsed.id,
63
79
  name=parsed.name,
64
80
  url=parsed.url,
81
+ is_template=parsed.is_template,
82
+ is_private=parsed.is_private,
65
83
  )
66
84
  res.raw_data = d
67
85
  return res
@@ -12,8 +12,12 @@ from cg_maybe.utils import maybe_from_nullable
12
12
 
13
13
  from .. import parsers
14
14
  from ..utils import to_dict
15
- from .webhook_disabled_configuration import WebhookDisabledConfiguration
16
- from .webhook_enabled_configuration import WebhookEnabledConfiguration
15
+ from .webhook_configuration_disabled_as_json import (
16
+ WebhookConfigurationDisabledAsJSON,
17
+ )
18
+ from .webhook_configuration_enabled_as_json import (
19
+ WebhookConfigurationEnabledAsJSON,
20
+ )
17
21
 
18
22
 
19
23
  @dataclass
@@ -26,7 +30,8 @@ class JsonPatchSubmitTypesAssignment:
26
30
  webhook_upload_enabled: Maybe["bool"] = Nothing
27
31
  #: The configuration for the Webhook upload for this assignment
28
32
  webhook_configuration: Maybe[
29
- "t.Union[WebhookEnabledConfiguration, WebhookDisabledConfiguration]"
33
+ "t.Union[WebhookConfigurationEnabledAsJSON,"
34
+ " WebhookConfigurationDisabledAsJSON]"
30
35
  ] = Nothing
31
36
  #: Should students be allowed to make submissions using the editor
32
37
  editor_upload_enabled: Maybe["bool"] = Nothing
@@ -54,8 +59,8 @@ class JsonPatchSubmitTypesAssignment:
54
59
  rqa.OptionalArgument(
55
60
  "webhook_configuration",
56
61
  parsers.make_union(
57
- parsers.ParserFor.make(WebhookEnabledConfiguration),
58
- parsers.ParserFor.make(WebhookDisabledConfiguration),
62
+ parsers.ParserFor.make(WebhookConfigurationEnabledAsJSON),
63
+ parsers.ParserFor.make(WebhookConfigurationDisabledAsJSON),
59
64
  ),
60
65
  doc=(
61
66
  "The configuration for the Webhook upload for this"
@@ -0,0 +1,57 @@
1
+ """The module that defines the ``PlagiarismBulkExportEnabledSetting`` 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 PlagiarismBulkExportEnabledSetting:
16
+ """ """
17
+
18
+ name: "t.Literal['PLAGIARISM_BULK_EXPORT_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("PLAGIARISM_BULK_EXPORT_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["PlagiarismBulkExportEnabledSetting"],
48
+ d: t.Dict[str, t.Any],
49
+ ) -> "PlagiarismBulkExportEnabledSetting":
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 ``PlagiarismBulkExportMaxCasesSetting`` 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 PlagiarismBulkExportMaxCasesSetting:
16
+ """ """
17
+
18
+ name: "t.Literal['PLAGIARISM_BULK_EXPORT_MAX_CASES']"
19
+ value: "t.Optional[int]"
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("PLAGIARISM_BULK_EXPORT_MAX_CASES"),
28
+ doc="",
29
+ ),
30
+ rqa.RequiredArgument(
31
+ "value",
32
+ rqa.Nullable(rqa.SimpleValue.int),
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["PlagiarismBulkExportMaxCasesSetting"],
48
+ d: t.Dict[str, t.Any],
49
+ ) -> "PlagiarismBulkExportMaxCasesSetting":
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