codegrade 16.1.66__tar.gz → 16.1.68__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 (589) hide show
  1. {codegrade-16.1.66 → codegrade-16.1.68}/PKG-INFO +1 -1
  2. {codegrade-16.1.66 → codegrade-16.1.68}/cg_maybe/__init__.py +0 -2
  3. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/__init__.py +1 -1
  4. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/client.py +2 -2
  5. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/__init__.py +9 -0
  6. codegrade-16.1.68/codegrade/models/access_token_modal_warning_time_setting.py +58 -0
  7. codegrade-16.1.68/codegrade/models/access_token_toast_warning_time_setting.py +58 -0
  8. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/all_site_settings.py +15 -0
  9. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/assignment.py +6 -6
  10. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/base_lms_capabilities.py +25 -22
  11. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/frontend_site_settings.py +62 -0
  12. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/result_data_post_login_link_login.py +10 -0
  13. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/result_data_post_user_login.py +10 -0
  14. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/result_data_post_user_register.py +10 -0
  15. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/site_setting_input.py +15 -0
  16. codegrade-16.1.68/codegrade/models/student_payment_main_option_setting.py +56 -0
  17. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/user_login_response.py +10 -0
  18. {codegrade-16.1.66 → codegrade-16.1.68}/pyproject.toml +2 -1
  19. {codegrade-16.1.66 → codegrade-16.1.68}/setup.py +1 -1
  20. {codegrade-16.1.66 → codegrade-16.1.68}/README.md +0 -0
  21. {codegrade-16.1.66 → codegrade-16.1.68}/cg_dt_utils/__init__.py +0 -0
  22. {codegrade-16.1.66 → codegrade-16.1.68}/cg_maybe/_just.py +0 -0
  23. {codegrade-16.1.66 → codegrade-16.1.68}/cg_maybe/_maybe.py +0 -0
  24. {codegrade-16.1.66 → codegrade-16.1.68}/cg_maybe/_nothing.py +0 -0
  25. {codegrade-16.1.66 → codegrade-16.1.68}/cg_maybe/_type_helpers.py +0 -0
  26. {codegrade-16.1.66 → codegrade-16.1.68}/cg_maybe/cg_maybe_plugin.py +0 -0
  27. {codegrade-16.1.66 → codegrade-16.1.68}/cg_maybe/utils.py +0 -0
  28. {codegrade-16.1.66 → codegrade-16.1.68}/cg_request_args/__init__.py +0 -0
  29. {codegrade-16.1.66 → codegrade-16.1.68}/cg_request_args/_any_value.py +0 -0
  30. {codegrade-16.1.66 → codegrade-16.1.68}/cg_request_args/_base.py +0 -0
  31. {codegrade-16.1.66 → codegrade-16.1.68}/cg_request_args/_convert.py +0 -0
  32. {codegrade-16.1.66 → codegrade-16.1.68}/cg_request_args/_enum.py +0 -0
  33. {codegrade-16.1.66 → codegrade-16.1.68}/cg_request_args/_form.py +0 -0
  34. {codegrade-16.1.66 → codegrade-16.1.68}/cg_request_args/_lazy.py +0 -0
  35. {codegrade-16.1.66 → codegrade-16.1.68}/cg_request_args/_list.py +0 -0
  36. {codegrade-16.1.66 → codegrade-16.1.68}/cg_request_args/_literal.py +0 -0
  37. {codegrade-16.1.66 → codegrade-16.1.68}/cg_request_args/_mapping.py +0 -0
  38. {codegrade-16.1.66 → codegrade-16.1.68}/cg_request_args/_multipart.py +0 -0
  39. {codegrade-16.1.66 → codegrade-16.1.68}/cg_request_args/_nullable.py +0 -0
  40. {codegrade-16.1.66 → codegrade-16.1.68}/cg_request_args/_parse_utils.py +0 -0
  41. {codegrade-16.1.66 → codegrade-16.1.68}/cg_request_args/_query.py +0 -0
  42. {codegrade-16.1.66 → codegrade-16.1.68}/cg_request_args/_rich_value.py +0 -0
  43. {codegrade-16.1.66 → codegrade-16.1.68}/cg_request_args/_set.py +0 -0
  44. {codegrade-16.1.66 → codegrade-16.1.68}/cg_request_args/_swagger_utils.py +0 -0
  45. {codegrade-16.1.66 → codegrade-16.1.68}/cg_request_args/_swaggerize.py +0 -0
  46. {codegrade-16.1.66 → codegrade-16.1.68}/cg_request_args/_utils.py +0 -0
  47. {codegrade-16.1.66 → codegrade-16.1.68}/cg_request_args/exceptions.py +0 -0
  48. {codegrade-16.1.66 → codegrade-16.1.68}/cg_request_args/request_args_plugin.py +0 -0
  49. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/__init__.py +0 -0
  50. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/about.py +0 -0
  51. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/assignment.py +0 -0
  52. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/auto_test.py +0 -0
  53. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/comment.py +0 -0
  54. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/course.py +0 -0
  55. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/course_price.py +0 -0
  56. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/file.py +0 -0
  57. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/git_provider.py +0 -0
  58. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/group.py +0 -0
  59. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/group_set.py +0 -0
  60. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/login_link.py +0 -0
  61. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/lti.py +0 -0
  62. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/notification.py +0 -0
  63. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/oauth_provider.py +0 -0
  64. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/oauth_token.py +0 -0
  65. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/permission.py +0 -0
  66. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/plagiarism.py +0 -0
  67. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/role.py +0 -0
  68. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/saml.py +0 -0
  69. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/section.py +0 -0
  70. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/site_settings.py +0 -0
  71. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/snippet.py +0 -0
  72. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/sso_provider.py +0 -0
  73. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/submission.py +0 -0
  74. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/task_result.py +0 -0
  75. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/tenant.py +0 -0
  76. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/transaction.py +0 -0
  77. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/user.py +0 -0
  78. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/user_setting.py +0 -0
  79. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/_api/webhook.py +0 -0
  80. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/errors.py +0 -0
  81. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/_base_price.py +0 -0
  82. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/_saml_ui_logo_info.py +0 -0
  83. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/_submission_rubric_item_data_parser.py +0 -0
  84. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/about.py +0 -0
  85. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/abstract_role.py +0 -0
  86. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/add_users_section_data.py +0 -0
  87. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/ai_assistant_enabled_setting.py +0 -0
  88. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/all_auto_test_results.py +0 -0
  89. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/always_update_pii_with_lti_setting.py +0 -0
  90. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/analytics_enabled_setting.py +0 -0
  91. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/any_auto_test_step_as_json.py +0 -0
  92. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/any_error.py +0 -0
  93. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/any_non_redacted_auto_test_step_as_json.py +0 -0
  94. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/any_redacted_auto_test_step_as_json.py +0 -0
  95. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/api_codes.py +0 -0
  96. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/assignment_anonymization_algo.py +0 -0
  97. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/assignment_default_grading_scale_points_setting.py +0 -0
  98. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/assignment_default_grading_scale_setting.py +0 -0
  99. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/assignment_description_enabled_setting.py +0 -0
  100. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/assignment_description_on_teachers_submissions_page_setting.py +0 -0
  101. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/assignment_done_type.py +0 -0
  102. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/assignment_export_column.py +0 -0
  103. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/assignment_feedback.py +0 -0
  104. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/assignment_grader.py +0 -0
  105. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/assignment_grading_scale_points_enabled_setting.py +0 -0
  106. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/assignment_kind.py +0 -0
  107. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/assignment_login_link.py +0 -0
  108. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/assignment_max_points_enabled_setting.py +0 -0
  109. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/assignment_peer_feedback_connection.py +0 -0
  110. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/assignment_peer_feedback_settings.py +0 -0
  111. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/assignment_percentage_decimals_setting.py +0 -0
  112. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/assignment_percentage_grading_settings.py +0 -0
  113. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/assignment_point_decimals_setting.py +0 -0
  114. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/assignment_points_grading_settings.py +0 -0
  115. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/assignment_section_timeframe.py +0 -0
  116. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/assignment_state_enum.py +0 -0
  117. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/assignment_submission_mode.py +0 -0
  118. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/assignment_template.py +0 -0
  119. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/assignment_timeframes.py +0 -0
  120. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/at_image_caching_enabled_setting.py +0 -0
  121. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test.py +0 -0
  122. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_capture_points_message_setting.py +0 -0
  123. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_checkpoint_message_setting.py +0 -0
  124. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_code_quality_message_setting.py +0 -0
  125. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_enabled_setting.py +0 -0
  126. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_fixture.py +0 -0
  127. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_global_setup_output.py +0 -0
  128. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_global_setup_script.py +0 -0
  129. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_heartbeat_interval_setting.py +0 -0
  130. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_heartbeat_max_missed_setting.py +0 -0
  131. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_io_test_message_setting.py +0 -0
  132. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_io_test_sub_message_setting.py +0 -0
  133. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_max_concurrent_batch_runs_setting.py +0 -0
  134. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_max_global_setup_time_setting.py +0 -0
  135. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_max_jobs_per_runner_setting.py +0 -0
  136. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_max_per_student_setup_time_setting.py +0 -0
  137. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_max_result_not_started_setting.py +0 -0
  138. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_max_time_command_setting.py +0 -0
  139. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_max_unit_test_metadata_length_setting.py +0 -0
  140. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_quality_comment.py +0 -0
  141. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_result.py +0 -0
  142. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_result_state.py +0 -0
  143. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_result_with_extra_data.py +0 -0
  144. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_run.py +0 -0
  145. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_run_program_message_setting.py +0 -0
  146. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_runner.py +0 -0
  147. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_runner_state.py +0 -0
  148. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_set.py +0 -0
  149. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_step_base.py +0 -0
  150. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_step_base_as_json.py +0 -0
  151. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_step_base_input_as_json.py +0 -0
  152. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_step_log_base.py +0 -0
  153. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_step_result.py +0 -0
  154. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_step_result_state.py +0 -0
  155. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_step_validation_exception.py +0 -0
  156. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_suite.py +0 -0
  157. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/auto_test_unit_test_message_setting.py +0 -0
  158. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/automatic_lti1p3_assignment_import_setting.py +0 -0
  159. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/automatic_lti_role_enabled_setting.py +0 -0
  160. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/base_about.py +0 -0
  161. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/base_auto_test_quality_comment.py +0 -0
  162. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/base_comment_base.py +0 -0
  163. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/base_comment_base_with_extended_replies.py +0 -0
  164. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/base_comment_base_with_normal_replies.py +0 -0
  165. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/base_comment_reply.py +0 -0
  166. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/base_course_coupon.py +0 -0
  167. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/base_directory.py +0 -0
  168. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/base_error.py +0 -0
  169. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/base_file.py +0 -0
  170. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/base_lti1p1_provider.py +0 -0
  171. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/base_lti1p3_provider.py +0 -0
  172. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/base_lti_provider.py +0 -0
  173. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/base_notification.py +0 -0
  174. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/base_release_info.py +0 -0
  175. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/base_rubric_item.py +0 -0
  176. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/base_tenant_coupon.py +0 -0
  177. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/blackboard_zip_upload_enabled_setting.py +0 -0
  178. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/bulk_enroll_course_data.py +0 -0
  179. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/canvas_course_id_copying_enabled_setting.py +0 -0
  180. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/cg_ignore_version.py +0 -0
  181. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/change_user_role_course_data.py +0 -0
  182. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/check_points_as_json.py +0 -0
  183. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/check_points_data.py +0 -0
  184. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/check_points_extra.py +0 -0
  185. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/check_points_input_as_json.py +0 -0
  186. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/clone_result.py +0 -0
  187. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/code_editor_output_viewer_title_setting.py +0 -0
  188. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/code_editor_start_on_assignment_description_setting.py +0 -0
  189. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/code_quality_as_json.py +0 -0
  190. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/code_quality_base_data.py +0 -0
  191. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/code_quality_data.py +0 -0
  192. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/code_quality_extra.py +0 -0
  193. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/code_quality_input_as_json.py +0 -0
  194. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/code_quality_penalties.py +0 -0
  195. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/column_range.py +0 -0
  196. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/comment_base.py +0 -0
  197. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/comment_reply.py +0 -0
  198. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/comment_reply_edit.py +0 -0
  199. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/comment_reply_type.py +0 -0
  200. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/comment_type.py +0 -0
  201. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/community_library_publishing_setting.py +0 -0
  202. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/community_library_setting.py +0 -0
  203. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/connect_repository_git_provider_data.py +0 -0
  204. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/copy_auto_test_data.py +0 -0
  205. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/copy_rubric_assignment_data.py +0 -0
  206. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/coupon_data_parser.py +0 -0
  207. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/coupon_with_code.py +0 -0
  208. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/coupon_without_code.py +0 -0
  209. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/course.py +0 -0
  210. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/course_bulk_enroll_result.py +0 -0
  211. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/course_bulk_register_enabled_setting.py +0 -0
  212. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/course_coupon.py +0 -0
  213. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/course_coupon_usage.py +0 -0
  214. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/course_gradebook_enabled_setting.py +0 -0
  215. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/course_gradebook_render_warning_size_setting.py +0 -0
  216. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/course_of_course_price.py +0 -0
  217. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/course_of_tenant_coupon_usage.py +0 -0
  218. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/course_perm_map.py +0 -0
  219. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/course_permission.py +0 -0
  220. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/course_price.py +0 -0
  221. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/course_register_enabled_setting.py +0 -0
  222. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/course_registration_link.py +0 -0
  223. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/course_role.py +0 -0
  224. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/course_role_as_json_with_perms.py +0 -0
  225. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/course_section.py +0 -0
  226. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/course_section_division.py +0 -0
  227. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/course_section_division_connection.py +0 -0
  228. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/course_section_division_user.py +0 -0
  229. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/course_snippet.py +0 -0
  230. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/course_state.py +0 -0
  231. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/course_statistics_as_json.py +0 -0
  232. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/create_assignment_course_data.py +0 -0
  233. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/create_auto_test_data.py +0 -0
  234. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/create_comment_data.py +0 -0
  235. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/create_comment_reply_data.py +0 -0
  236. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/create_course_data.py +0 -0
  237. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/create_division_section_data.py +0 -0
  238. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/create_group_group_set_data.py +0 -0
  239. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/create_group_set_course_data.py +0 -0
  240. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/create_lti_data.py +0 -0
  241. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/create_output_html_proxy_auto_test_data.py +0 -0
  242. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/create_proxy_submission_data.py +0 -0
  243. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/create_repository_git_provider_data.py +0 -0
  244. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/create_role_course_data.py +0 -0
  245. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/create_section_course_data.py +0 -0
  246. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/create_snippet_course_data.py +0 -0
  247. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/create_snippet_data.py +0 -0
  248. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/create_sso_provider_data.py +0 -0
  249. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/create_tenant_data.py +0 -0
  250. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/csv_large_file_limit_setting.py +0 -0
  251. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/csv_too_many_errors_limit_setting.py +0 -0
  252. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/currency.py +0 -0
  253. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/custom_output_as_json.py +0 -0
  254. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/custom_output_data.py +0 -0
  255. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/custom_output_extra.py +0 -0
  256. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/custom_output_input_as_json.py +0 -0
  257. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/custom_output_log.py +0 -0
  258. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/custom_output_log_base.py +0 -0
  259. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/default_course_ta_role_setting.py +0 -0
  260. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/default_course_teacher_role_setting.py +0 -0
  261. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/default_submission_page_tab_setting.py +0 -0
  262. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/deleted_comment_reply.py +0 -0
  263. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/deletion_type.py +0 -0
  264. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/directory_with_children.py +0 -0
  265. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/disabled_setting_exception.py +0 -0
  266. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/display_grades_enabled_setting.py +0 -0
  267. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/editor_enabled_for_teachers_setting.py +0 -0
  268. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/editor_enabled_setting.py +0 -0
  269. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/email_notification_types.py +0 -0
  270. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/email_students_enabled_setting.py +0 -0
  271. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/email_users_course_data.py +0 -0
  272. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/exam_login_max_length_setting.py +0 -0
  273. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/export_assignment_csv_data.py +0 -0
  274. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/export_assignment_data.py +0 -0
  275. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/export_assignment_files_data.py +0 -0
  276. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/extended_auto_test_result.py +0 -0
  277. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/extended_auto_test_run.py +0 -0
  278. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/extended_course.py +0 -0
  279. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/extended_course_registration_link.py +0 -0
  280. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/extended_course_section.py +0 -0
  281. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/extended_group.py +0 -0
  282. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/extended_job.py +0 -0
  283. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/extended_non_deleted_comment_reply.py +0 -0
  284. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/extended_tenant.py +0 -0
  285. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/extended_transaction.py +0 -0
  286. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/extended_user.py +0 -0
  287. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/extended_work.py +0 -0
  288. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/extract_file_tree_directory.py +0 -0
  289. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/extract_file_tree_file.py +0 -0
  290. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/failed_to_send_email_exception.py +0 -0
  291. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/feedback_base.py +0 -0
  292. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/feedback_threads_initially_collapsed_setting.py +0 -0
  293. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/feedback_with_replies.py +0 -0
  294. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/feedback_without_replies.py +0 -0
  295. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/file_deletion.py +0 -0
  296. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/file_rule.py +0 -0
  297. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/file_rule_input_data.py +0 -0
  298. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/file_tree.py +0 -0
  299. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/file_type.py +0 -0
  300. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/finalized_lti1p1_provider.py +0 -0
  301. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/finalized_lti1p3_provider.py +0 -0
  302. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/first_phase_lti_launch_exception.py +0 -0
  303. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/fixed_availability.py +0 -0
  304. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/fixed_grade_availability.py +0 -0
  305. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/fixture_like.py +0 -0
  306. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/fraction.py +0 -0
  307. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/general_feedback_comment_base.py +0 -0
  308. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/general_feedback_comment_base_with_extended_replies.py +0 -0
  309. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/general_feedback_extra.py +0 -0
  310. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/git_repositories_page.py +0 -0
  311. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/git_repository_like.py +0 -0
  312. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/git_user_info.py +0 -0
  313. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/github_template_repo_enabled_setting.py +0 -0
  314. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/global_perm_map.py +0 -0
  315. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/global_permission.py +0 -0
  316. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/grade_history.py +0 -0
  317. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/grade_origin.py +0 -0
  318. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/grading_notifications_enabled_setting.py +0 -0
  319. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/group.py +0 -0
  320. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/group_not_ready_for_submission_exception.py +0 -0
  321. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/group_set.py +0 -0
  322. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/groups_enabled_setting.py +0 -0
  323. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/has_unread_notifcation_json.py +0 -0
  324. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/health_information.py +0 -0
  325. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/hide_code_editor_filetree_controls_with_only_quiz_steps_setting.py +0 -0
  326. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/hide_code_editor_output_viewer_with_only_quiz_steps_setting.py +0 -0
  327. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/hide_empty_rubric_row_description_setting.py +0 -0
  328. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/hide_no_deadline_enabled_setting.py +0 -0
  329. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/hubspot_syncing_enabled_setting.py +0 -0
  330. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/ignore_handling.py +0 -0
  331. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/ignored_files_exception.py +0 -0
  332. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/import_into_assignment_data.py +0 -0
  333. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/import_into_course_data.py +0 -0
  334. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/incremental_rubric_submission_enabled_setting.py +0 -0
  335. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/inline_feedback_comment_base.py +0 -0
  336. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/inline_feedback_comment_base_with_extended_replies.py +0 -0
  337. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/inline_feedback_extra.py +0 -0
  338. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/inline_rubric_viewer_enabled_setting.py +0 -0
  339. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/invalid_group_exception.py +0 -0
  340. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/invalid_io_cases_exception.py +0 -0
  341. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/invalid_options_exception.py +0 -0
  342. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/io_test_as_json.py +0 -0
  343. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/io_test_base_data.py +0 -0
  344. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/io_test_data.py +0 -0
  345. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/io_test_extra.py +0 -0
  346. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/io_test_input_as_json.py +0 -0
  347. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/io_test_input_case.py +0 -0
  348. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/io_test_log.py +0 -0
  349. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/io_test_option.py +0 -0
  350. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/io_test_step_log.py +0 -0
  351. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/io_test_step_log_base.py +0 -0
  352. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/is_admin_permission_enabled_setting.py +0 -0
  353. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/job.py +0 -0
  354. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/json_create_auto_test.py +0 -0
  355. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/json_create_tenant.py +0 -0
  356. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/json_patch_auto_test.py +0 -0
  357. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/json_patch_submit_types_assignment.py +0 -0
  358. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/junit_test_as_json.py +0 -0
  359. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/junit_test_base_data.py +0 -0
  360. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/junit_test_data.py +0 -0
  361. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/junit_test_extra.py +0 -0
  362. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/junit_test_input_as_json.py +0 -0
  363. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/junit_test_log.py +0 -0
  364. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/junit_test_log_base.py +0 -0
  365. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/jwt_access_token_expires_setting.py +0 -0
  366. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/legacy_features.py +0 -0
  367. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/line_range.py +0 -0
  368. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/linters_enabled_setting.py +0 -0
  369. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/lms_capabilities.py +0 -0
  370. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/login_token_before_time_setting.py +0 -0
  371. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/login_user_data.py +0 -0
  372. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/logout_response.py +0 -0
  373. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/logout_user_data.py +0 -0
  374. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/lti1p1_provider.py +0 -0
  375. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/lti1p1_provider_data.py +0 -0
  376. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/lti1p3_nonce_and_state_validation_enabled_setting.py +0 -0
  377. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/lti1p3_parse_most_privileged_role_setting.py +0 -0
  378. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/lti1p3_prevent_nonce_reuse_enabled_setting.py +0 -0
  379. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/lti1p3_provider.py +0 -0
  380. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/lti1p3_provider_data.py +0 -0
  381. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/lti1p3_provider_presentation_as_json.py +0 -0
  382. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/lti1p3_system_role_from_context_role_setting.py +0 -0
  383. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/lti_enabled_setting.py +0 -0
  384. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/lti_first_launch_content_id_enabled_setting.py +0 -0
  385. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/lti_launch_data_logging_setting.py +0 -0
  386. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/lti_lock_date_copying_enabled_setting.py +0 -0
  387. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/lti_provider_base.py +0 -0
  388. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/lti_unset_deadline_lock_date_enabled_setting.py +0 -0
  389. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/max_document_update_size_setting.py +0 -0
  390. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/max_dynamo_file_size_setting.py +0 -0
  391. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/max_dynamo_submission_size_setting.py +0 -0
  392. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/max_file_size_setting.py +0 -0
  393. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/max_large_upload_size_setting.py +0 -0
  394. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/max_lines_setting.py +0 -0
  395. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/max_normal_upload_size_setting.py +0 -0
  396. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/max_number_of_files_setting.py +0 -0
  397. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/max_plagiarism_matches_setting.py +0 -0
  398. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/max_user_setting_amount_setting.py +0 -0
  399. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/min_password_score_setting.py +0 -0
  400. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/mirror_file_result.py +0 -0
  401. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/missing_cookie_error.py +0 -0
  402. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/missing_file.py +0 -0
  403. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/name_and_email_from_nrps_only_setting.py +0 -0
  404. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/new_auto_test_allowed_initial_build_ids_setting.py +0 -0
  405. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/new_auto_test_build_max_command_time_setting.py +0 -0
  406. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/new_auto_test_build_output_limit_setting.py +0 -0
  407. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/new_auto_test_copying_enabled_setting.py +0 -0
  408. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/new_auto_test_current_initial_build_ids_setting.py +0 -0
  409. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/new_auto_test_diff_viewer_enabled_setting.py +0 -0
  410. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/new_auto_test_enabled_setting.py +0 -0
  411. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/new_auto_test_initial_build_id_setting.py +0 -0
  412. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/new_auto_test_max_dynamodb_size_setting.py +0 -0
  413. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/new_auto_test_max_file_size_setting.py +0 -0
  414. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/new_auto_test_max_output_files_size_setting.py +0 -0
  415. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/new_auto_test_max_storage_size_setting.py +0 -0
  416. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/new_auto_test_old_submission_age_setting.py +0 -0
  417. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/new_auto_test_test_max_command_time_setting.py +0 -0
  418. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/new_auto_test_test_output_limit_setting.py +0 -0
  419. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/new_auto_test_uncollapsing_step_output_delay_setting.py +0 -0
  420. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/no_permissions.py +0 -0
  421. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/non_deleted_comment_reply.py +0 -0
  422. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/non_finalized_lti1p1_provider.py +0 -0
  423. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/non_finalized_lti1p3_provider.py +0 -0
  424. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/non_present_preference.py +0 -0
  425. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/notification.py +0 -0
  426. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/notification_comment_reply_notification_as_json.py +0 -0
  427. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/notification_general_feedback_reply_notification_as_json.py +0 -0
  428. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/notification_poll_time_setting.py +0 -0
  429. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/notification_reasons.py +0 -0
  430. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/notification_setting.py +0 -0
  431. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/notification_setting_option.py +0 -0
  432. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/notifications_json.py +0 -0
  433. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/oauth_provider.py +0 -0
  434. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/oauth_token.py +0 -0
  435. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/option.py +0 -0
  436. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/options_input_data.py +0 -0
  437. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/output_viewer_animation_limit_lines_count_setting.py +0 -0
  438. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/parse_api_exception.py +0 -0
  439. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/patch1_p1_provider_lti_data.py +0 -0
  440. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/patch1_p3_provider_lti_data.py +0 -0
  441. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/patch_all_notification_data.py +0 -0
  442. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/patch_assignment_data.py +0 -0
  443. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/patch_auto_test_data.py +0 -0
  444. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/patch_comment_reply_data.py +0 -0
  445. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/patch_course_data.py +0 -0
  446. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/patch_grader_submission_data.py +0 -0
  447. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/patch_notification_data.py +0 -0
  448. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/patch_notification_setting_user_setting_data.py +0 -0
  449. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/patch_provider_lti_data.py +0 -0
  450. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/patch_role_course_data.py +0 -0
  451. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/patch_role_data.py +0 -0
  452. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/patch_role_tenant_data.py +0 -0
  453. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/patch_rubric_category_type_assignment_data.py +0 -0
  454. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/patch_rubric_result_submission_data.py +0 -0
  455. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/patch_section_data.py +0 -0
  456. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/patch_settings_tenant_data.py +0 -0
  457. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/patch_site_settings_data.py +0 -0
  458. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/patch_snippet_course_data.py +0 -0
  459. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/patch_snippet_data.py +0 -0
  460. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/patch_submission_data.py +0 -0
  461. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/patch_submit_types_assignment_data.py +0 -0
  462. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/patch_tenant_data.py +0 -0
  463. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/patch_ui_preference_user_setting_data.py +0 -0
  464. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/patch_user_data.py +0 -0
  465. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/pay_with_coupon_course_price_data.py +0 -0
  466. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/pearson_templates_setting.py +0 -0
  467. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/peer_feedback_enabled_setting.py +0 -0
  468. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/permission_exception.py +0 -0
  469. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/plagiarism_bulk_export_enabled_setting.py +0 -0
  470. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/plagiarism_bulk_export_max_cases_setting.py +0 -0
  471. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/plagiarism_case.py +0 -0
  472. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/plagiarism_pdf_export_enabled_setting.py +0 -0
  473. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/plagiarism_run.py +0 -0
  474. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/plagiarism_run_plagiarism_assignment_as_json.py +0 -0
  475. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/plagiarism_run_plagiarism_course_as_json.py +0 -0
  476. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/plagiarism_state.py +0 -0
  477. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/post_oauth_token_data.py +0 -0
  478. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/present_preference.py +0 -0
  479. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/proxy.py +0 -0
  480. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/put_description_assignment_data.py +0 -0
  481. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/put_enroll_link_course_data.py +0 -0
  482. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/put_price_course_data.py +0 -0
  483. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/put_price_tenant_data.py +0 -0
  484. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/put_rubric_assignment_data.py +0 -0
  485. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/quality_comment_severity.py +0 -0
  486. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/quality_comments_in_code_editor_setting.py +0 -0
  487. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/quality_test_log.py +0 -0
  488. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/quality_test_log_base.py +0 -0
  489. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/register_enabled_setting.py +0 -0
  490. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/register_user_data.py +0 -0
  491. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/register_user_with_link_course_data.py +0 -0
  492. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/release_info.py +0 -0
  493. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/release_message_max_time_setting.py +0 -0
  494. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/removed_permissions.py +0 -0
  495. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/rename_group_group_data.py +0 -0
  496. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/render_html_enabled_setting.py +0 -0
  497. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/repository_connection_limit_reached_exception.py +0 -0
  498. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/reset_token_time_setting.py +0 -0
  499. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/result_data_get_auto_test_get.py +0 -0
  500. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/result_data_get_task_result_get_all.py +0 -0
  501. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/result_data_post_section_create_division.py +0 -0
  502. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/retry_group_submission_grade_passback_enabled_setting.py +0 -0
  503. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/role_as_json_with_perms.py +0 -0
  504. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/root_file_trees_json.py +0 -0
  505. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/rubric_description_type.py +0 -0
  506. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/rubric_enabled_for_teacher_on_submissions_page_setting.py +0 -0
  507. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/rubric_item.py +0 -0
  508. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/rubric_item_input_as_json.py +0 -0
  509. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/rubric_lock_reason.py +0 -0
  510. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/rubric_row_base.py +0 -0
  511. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/rubric_row_base_input_as_json.py +0 -0
  512. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/rubric_row_base_input_base_as_json.py +0 -0
  513. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/rubrics_enabled_setting.py +0 -0
  514. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/rule_type.py +0 -0
  515. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/run_program_as_json.py +0 -0
  516. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/run_program_data.py +0 -0
  517. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/run_program_extra.py +0 -0
  518. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/run_program_input_as_json.py +0 -0
  519. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/run_program_log.py +0 -0
  520. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/saml2_provider_json.py +0 -0
  521. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/saml_ui_info.py +0 -0
  522. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/sections_in_submission_list_enabled_setting.py +0 -0
  523. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/send_registration_email_setting.py +0 -0
  524. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/server_time_correction_enabled_setting.py +0 -0
  525. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/server_time_diff_tolerance_setting.py +0 -0
  526. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/server_time_sync_interval_setting.py +0 -0
  527. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/session_restriction_context.py +0 -0
  528. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/session_restriction_data.py +0 -0
  529. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/setting_token_time_setting.py +0 -0
  530. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/setup_oauth_result.py +0 -0
  531. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/simple_submission_mode_enabled_setting.py +0 -0
  532. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/simple_submission_navigate_to_latest_editor_session_setting.py +0 -0
  533. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/site_email_setting.py +0 -0
  534. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/snippet.py +0 -0
  535. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/sso_infer_global_staff_role_setting.py +0 -0
  536. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/sso_username_decollision_enabled_setting.py +0 -0
  537. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/staged_assignment_importer_enabled_setting.py +0 -0
  538. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/start_payment_course_price_close_tab_data.py +0 -0
  539. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/start_payment_course_price_data.py +0 -0
  540. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/start_payment_course_price_redirect_data.py +0 -0
  541. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/started_transaction.py +0 -0
  542. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/student_payment_enabled_setting.py +0 -0
  543. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/student_view_enabled_setting.py +0 -0
  544. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/submission_validator_input_data.py +0 -0
  545. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/submissions_per_page_enabled_setting.py +0 -0
  546. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/task_result_state.py +0 -0
  547. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/tax_behavior.py +0 -0
  548. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/tenant.py +0 -0
  549. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/tenant_coupon.py +0 -0
  550. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/tenant_coupon_usage.py +0 -0
  551. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/tenant_coupon_with_code.py +0 -0
  552. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/tenant_coupon_without_code.py +0 -0
  553. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/tenant_course_statistics.py +0 -0
  554. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/tenant_of_tenant_price.py +0 -0
  555. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/tenant_permissions.py +0 -0
  556. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/tenant_price.py +0 -0
  557. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/tenant_role_as_json_with_perms.py +0 -0
  558. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/tenant_statistics.py +0 -0
  559. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/test_submission_copying_on_import_enabled_setting.py +0 -0
  560. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/timed_availability.py +0 -0
  561. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/timeframe_like.py +0 -0
  562. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/token_revoked_exception.py +0 -0
  563. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/transaction.py +0 -0
  564. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/transaction_state.py +0 -0
  565. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/types.py +0 -0
  566. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/update_peer_feedback_settings_assignment_data.py +0 -0
  567. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/update_set_auto_test_data.py +0 -0
  568. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/update_suite_auto_test_base_data.py +0 -0
  569. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/update_suite_auto_test_data.py +0 -0
  570. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/upgraded_lti_provider_exception.py +0 -0
  571. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/upload_submission_assignment_data.py +0 -0
  572. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/user.py +0 -0
  573. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/user_course.py +0 -0
  574. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/user_info_with_role.py +0 -0
  575. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/user_input.py +0 -0
  576. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/user_without_group.py +0 -0
  577. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/weak_password_exception.py +0 -0
  578. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/weak_password_feedback.py +0 -0
  579. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/webhook_base.py +0 -0
  580. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/webhook_configuration_disabled_as_json.py +0 -0
  581. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/webhook_configuration_enabled_as_json.py +0 -0
  582. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/work.py +0 -0
  583. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/work_origin.py +0 -0
  584. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/work_rubric_item.py +0 -0
  585. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/work_rubric_result_as_json.py +0 -0
  586. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/models/work_rubric_result_points_as_json.py +0 -0
  587. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/parsers.py +0 -0
  588. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/py.typed +0 -0
  589. {codegrade-16.1.66 → codegrade-16.1.68}/codegrade/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: codegrade
3
- Version: 16.1.66
3
+ Version: 16.1.68
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
@@ -1,6 +1,4 @@
1
1
  """This module implements the ``Maybe`` monad.
2
-
3
-
4
2
  """
5
3
  from . import utils
6
4
  from ._just import Just
@@ -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.66"
10
+ __version__ = "16.1.68"
11
11
 
12
12
 
13
13
  @wraps(AuthenticatedClient.get)
@@ -538,7 +538,7 @@ class Client(_BaseClient):
538
538
  return httpx.Client(
539
539
  base_url=self.base_url,
540
540
  headers={
541
- "User-Agent": "CodeGradeAPI/16.1.66",
541
+ "User-Agent": "CodeGradeAPI/16.1.68",
542
542
  },
543
543
  follow_redirects=True,
544
544
  )
@@ -558,7 +558,7 @@ class AuthenticatedClient(_BaseClient):
558
558
  base_url=self.base_url,
559
559
  headers={
560
560
  "Authorization": f"Bearer {self.token}",
561
- "User-Agent": "CodeGradeAPI/16.1.66",
561
+ "User-Agent": "CodeGradeAPI/16.1.68",
562
562
  },
563
563
  follow_redirects=True,
564
564
  )
@@ -10,6 +10,12 @@ from ._submission_rubric_item_data_parser import (
10
10
  )
11
11
  from .about import About
12
12
  from .abstract_role import AbstractRole
13
+ from .access_token_modal_warning_time_setting import (
14
+ AccessTokenModalWarningTimeSetting,
15
+ )
16
+ from .access_token_toast_warning_time_setting import (
17
+ AccessTokenToastWarningTimeSetting,
18
+ )
13
19
  from .add_users_section_data import AddUsersSectionData
14
20
  from .ai_assistant_enabled_setting import AiAssistantEnabledSetting
15
21
  from .all_auto_test_results import AllAutoTestResults
@@ -675,6 +681,9 @@ from .start_payment_course_price_redirect_data import (
675
681
  )
676
682
  from .started_transaction import StartedTransaction
677
683
  from .student_payment_enabled_setting import StudentPaymentEnabledSetting
684
+ from .student_payment_main_option_setting import (
685
+ StudentPaymentMainOptionSetting,
686
+ )
678
687
  from .student_view_enabled_setting import StudentViewEnabledSetting
679
688
  from .submission_validator_input_data import SubmissionValidatorInputData
680
689
  from .submissions_per_page_enabled_setting import (
@@ -0,0 +1,58 @@
1
+ """The module that defines the ``AccessTokenModalWarningTimeSetting`` model.
2
+
3
+ SPDX-License-Identifier: AGPL-3.0-only OR BSD-3-Clause-Clear
4
+ """
5
+
6
+ import datetime
7
+ import typing as t
8
+ from dataclasses import dataclass, field
9
+
10
+ import cg_request_args as rqa
11
+
12
+ from ..utils import to_dict
13
+
14
+
15
+ @dataclass
16
+ class AccessTokenModalWarningTimeSetting:
17
+ """ """
18
+
19
+ name: "t.Literal['ACCESS_TOKEN_MODAL_WARNING_TIME']"
20
+ value: "t.Optional[datetime.timedelta]"
21
+
22
+ raw_data: t.Optional[t.Dict[str, t.Any]] = field(init=False, repr=False)
23
+
24
+ data_parser: t.ClassVar = rqa.Lazy(
25
+ lambda: rqa.FixedMapping(
26
+ rqa.RequiredArgument(
27
+ "name",
28
+ rqa.StringEnum("ACCESS_TOKEN_MODAL_WARNING_TIME"),
29
+ doc="",
30
+ ),
31
+ rqa.RequiredArgument(
32
+ "value",
33
+ rqa.Nullable(rqa.RichValue.TimeDelta),
34
+ doc="",
35
+ ),
36
+ ).use_readable_describe(True)
37
+ )
38
+
39
+ def to_dict(self) -> t.Dict[str, t.Any]:
40
+ res: t.Dict[str, t.Any] = {
41
+ "name": to_dict(self.name),
42
+ "value": to_dict(self.value),
43
+ }
44
+ return res
45
+
46
+ @classmethod
47
+ def from_dict(
48
+ cls: t.Type["AccessTokenModalWarningTimeSetting"],
49
+ d: t.Dict[str, t.Any],
50
+ ) -> "AccessTokenModalWarningTimeSetting":
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,58 @@
1
+ """The module that defines the ``AccessTokenToastWarningTimeSetting`` model.
2
+
3
+ SPDX-License-Identifier: AGPL-3.0-only OR BSD-3-Clause-Clear
4
+ """
5
+
6
+ import datetime
7
+ import typing as t
8
+ from dataclasses import dataclass, field
9
+
10
+ import cg_request_args as rqa
11
+
12
+ from ..utils import to_dict
13
+
14
+
15
+ @dataclass
16
+ class AccessTokenToastWarningTimeSetting:
17
+ """ """
18
+
19
+ name: "t.Literal['ACCESS_TOKEN_TOAST_WARNING_TIME']"
20
+ value: "t.Optional[datetime.timedelta]"
21
+
22
+ raw_data: t.Optional[t.Dict[str, t.Any]] = field(init=False, repr=False)
23
+
24
+ data_parser: t.ClassVar = rqa.Lazy(
25
+ lambda: rqa.FixedMapping(
26
+ rqa.RequiredArgument(
27
+ "name",
28
+ rqa.StringEnum("ACCESS_TOKEN_TOAST_WARNING_TIME"),
29
+ doc="",
30
+ ),
31
+ rqa.RequiredArgument(
32
+ "value",
33
+ rqa.Nullable(rqa.RichValue.TimeDelta),
34
+ doc="",
35
+ ),
36
+ ).use_readable_describe(True)
37
+ )
38
+
39
+ def to_dict(self) -> t.Dict[str, t.Any]:
40
+ res: t.Dict[str, t.Any] = {
41
+ "name": to_dict(self.name),
42
+ "value": to_dict(self.value),
43
+ }
44
+ return res
45
+
46
+ @classmethod
47
+ def from_dict(
48
+ cls: t.Type["AccessTokenToastWarningTimeSetting"],
49
+ d: t.Dict[str, t.Any],
50
+ ) -> "AccessTokenToastWarningTimeSetting":
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
@@ -706,6 +706,14 @@ class AllSiteSettings(FrontendSiteSettings):
706
706
  res["RESET_TOKEN_TIME"] = to_dict(self.reset_token_time.value)
707
707
  if self.site_email.is_just:
708
708
  res["SITE_EMAIL"] = to_dict(self.site_email.value)
709
+ if self.access_token_toast_warning_time.is_just:
710
+ res["ACCESS_TOKEN_TOAST_WARNING_TIME"] = to_dict(
711
+ self.access_token_toast_warning_time.value
712
+ )
713
+ if self.access_token_modal_warning_time.is_just:
714
+ res["ACCESS_TOKEN_MODAL_WARNING_TIME"] = to_dict(
715
+ self.access_token_modal_warning_time.value
716
+ )
709
717
  if self.max_lines.is_just:
710
718
  res["MAX_LINES"] = to_dict(self.max_lines.value)
711
719
  if self.notification_poll_time.is_just:
@@ -788,6 +796,10 @@ class AllSiteSettings(FrontendSiteSettings):
788
796
  res["STUDENT_PAYMENT_ENABLED"] = to_dict(
789
797
  self.student_payment_enabled.value
790
798
  )
799
+ if self.student_payment_main_option.is_just:
800
+ res["STUDENT_PAYMENT_MAIN_OPTION"] = to_dict(
801
+ self.student_payment_main_option.value
802
+ )
791
803
  if self.editor_enabled.is_just:
792
804
  res["EDITOR_ENABLED"] = to_dict(self.editor_enabled.value)
793
805
  if self.new_auto_test_enabled.is_just:
@@ -1185,6 +1197,8 @@ class AllSiteSettings(FrontendSiteSettings):
1185
1197
  login_token_before_time=parsed.LOGIN_TOKEN_BEFORE_TIME,
1186
1198
  reset_token_time=parsed.RESET_TOKEN_TIME,
1187
1199
  site_email=parsed.SITE_EMAIL,
1200
+ access_token_toast_warning_time=parsed.ACCESS_TOKEN_TOAST_WARNING_TIME,
1201
+ access_token_modal_warning_time=parsed.ACCESS_TOKEN_MODAL_WARNING_TIME,
1188
1202
  max_lines=parsed.MAX_LINES,
1189
1203
  notification_poll_time=parsed.NOTIFICATION_POLL_TIME,
1190
1204
  release_message_max_time=parsed.RELEASE_MESSAGE_MAX_TIME,
@@ -1209,6 +1223,7 @@ class AllSiteSettings(FrontendSiteSettings):
1209
1223
  peer_feedback_enabled=parsed.PEER_FEEDBACK_ENABLED,
1210
1224
  at_image_caching_enabled=parsed.AT_IMAGE_CACHING_ENABLED,
1211
1225
  student_payment_enabled=parsed.STUDENT_PAYMENT_ENABLED,
1226
+ student_payment_main_option=parsed.STUDENT_PAYMENT_MAIN_OPTION,
1212
1227
  editor_enabled=parsed.EDITOR_ENABLED,
1213
1228
  new_auto_test_enabled=parsed.NEW_AUTO_TEST_ENABLED,
1214
1229
  server_time_correction_enabled=parsed.SERVER_TIME_CORRECTION_ENABLED,
@@ -93,7 +93,7 @@ class Assignment(TimeframeLike):
93
93
  #: Can you upload files to this assignment.
94
94
  files_upload_enabled: "bool"
95
95
  #: Can you connect git to this assignment. Deprecated, use
96
- #: `webhook_configuration`\` instead.
96
+ #: `webhook_configuration` instead.
97
97
  webhook_upload_enabled: "bool"
98
98
  #: Settings for the git connection to this assignment.
99
99
  webhook_configuration: "t.Union[WebhookConfigurationEnabledAsJSON, WebhookConfigurationDisabledAsJSON]"
@@ -106,8 +106,8 @@ class Assignment(TimeframeLike):
106
106
  #: `amount_in_cool_off_period` amount.
107
107
  cool_off_period: "datetime.timedelta"
108
108
  #: The maximum amount of time a user can submit within
109
- #: `amount_in_cool_off_period`. This value is always \>= 0, if this value
110
- #: is 0 a user can submit an unlimited amount of time.
109
+ #: `amount_in_cool_off_period`. This value is always greater than or equal
110
+ #: to 0, if this value is 0 a user can submit an unlimited amount of time.
111
111
  amount_in_cool_off_period: "int"
112
112
  #: The moment reminder emails will be sent. This will be `None` if you
113
113
  #: don't have the permission to see this or if it is unset.
@@ -303,7 +303,7 @@ class Assignment(TimeframeLike):
303
303
  rqa.SimpleValue.bool,
304
304
  doc=(
305
305
  "Can you connect git to this assignment. Deprecated,"
306
- " use `webhook_configuration`\\` instead."
306
+ " use `webhook_configuration` instead."
307
307
  ),
308
308
  ),
309
309
  rqa.RequiredArgument(
@@ -346,8 +346,8 @@ class Assignment(TimeframeLike):
346
346
  doc=(
347
347
  "The maximum amount of time a user can submit within"
348
348
  " `amount_in_cool_off_period`. This value is always"
349
- " \\>= 0, if this value is 0 a user can submit an"
350
- " unlimited amount of time."
349
+ " greater than or equal to 0, if this value is 0 a"
350
+ " user can submit an unlimited amount of time."
351
351
  ),
352
352
  ),
353
353
  rqa.RequiredArgument(
@@ -57,20 +57,22 @@ class BaseLMSCapabilities:
57
57
  #: don't want to send replacement variables to an LMS we know it will never
58
58
  #: support. This property contains a list of custom replacement groups
59
59
  #: supported by this LMS. For example: we have a replacement variable
60
- #: called `name'`, this variable will be included (parsed and returned as
61
- #: wanted config), if the `supported_custom_replacement_groups` contains
62
- #: `['$com']`. It will also be included if it contains `['$com',
63
- #: 'custom_lms']`. However, it will not be included if it only contains
64
- #: `custom_lms']` or `['$com', 'other_lms']`.
60
+ #: called `'$com.custom_lms.User.name'`, this variable will be included
61
+ #: (parsed and returned as wanted config), if the
62
+ #: `supported_custom_replacement_groups` contains `['$com']`. It will also
63
+ #: be included if it contains `['$com', 'custom_lms']`. However, it will
64
+ #: not be included if it only contains `['$com.custom_lms']` or `['$com',
65
+ #: 'other_lms']`.
65
66
  supported_custom_replacement_groups: "t.Sequence[t.Sequence[str]]"
66
- #: Should we use the `id` in the url. Some LMSes do not provide both the
67
- #: `iss` and the `client_id` in all launches. This means that finding the
68
- #: correct `LTI1p3Provider` is not always correct (especially as the `iss`
69
- #: often gets used multiple times). For some LMSes therefore it is a better
70
- #: idea to simply include the id of the provider in the launch url, and
71
- #: verify with the given information that the provider could theoretically
72
- #: be the correct one (i.e. all given information matches with the
73
- #: information in the LTI provider that belongs to the `id`).
67
+ #: Should we use the `LTI1p3Provider.id` in the url. Some LMSes do not
68
+ #: provide both the `iss` and the `client_id` in all launches. This means
69
+ #: that finding the correct `LTI1p3Provider` is not always correct
70
+ #: (especially as the `iss` often gets used multiple times). For some LMSes
71
+ #: therefore it is a better idea to simply include the id of the provider
72
+ #: in the launch url, and verify with the given information that the
73
+ #: provider could theoretically be the correct one (i.e. all given
74
+ #: information matches with the information in the LTI provider that
75
+ #: belongs to the `id`).
74
76
  use_id_in_urls: "bool"
75
77
  #: Does this LMS require actual deep linking, where the user inputs a name
76
78
  #: and deadline.
@@ -156,12 +158,13 @@ class BaseLMSCapabilities:
156
158
  " replacement variables to an LMS we know it will never"
157
159
  " support. This property contains a list of custom"
158
160
  " replacement groups supported by this LMS. For example:"
159
- " we have a replacement variable called `name'`, this"
160
- " variable will be included (parsed and returned as wanted"
161
- " config), if the `supported_custom_replacement_groups`"
162
- " contains `['$com']`. It will also be included if it"
163
- " contains `['$com', 'custom_lms']`. However, it will not"
164
- " be included if it only contains `custom_lms']` or"
161
+ " we have a replacement variable called"
162
+ " `'$com.custom_lms.User.name'`, this variable will be"
163
+ " included (parsed and returned as wanted config), if the"
164
+ " `supported_custom_replacement_groups` contains"
165
+ " `['$com']`. It will also be included if it contains"
166
+ " `['$com', 'custom_lms']`. However, it will not be"
167
+ " included if it only contains `['$com.custom_lms']` or"
165
168
  " `['$com', 'other_lms']`."
166
169
  ),
167
170
  ),
@@ -169,9 +172,9 @@ class BaseLMSCapabilities:
169
172
  "use_id_in_urls",
170
173
  rqa.SimpleValue.bool,
171
174
  doc=(
172
- "Should we use the `id` in the url. Some LMSes do not"
173
- " provide both the `iss` and the `client_id` in all"
174
- " launches. This means that finding the correct"
175
+ "Should we use the `LTI1p3Provider.id` in the url. Some"
176
+ " LMSes do not provide both the `iss` and the `client_id`"
177
+ " in all launches. This means that finding the correct"
175
178
  " `LTI1p3Provider` is not always correct (especially as"
176
179
  " the `iss` often gets used multiple times). For some"
177
180
  " LMSes therefore it is a better idea to simply include"
@@ -65,6 +65,12 @@ class FrontendSiteSettings:
65
65
  reset_token_time: Maybe["datetime.timedelta"] = Nothing
66
66
  #: The email shown to users as the email of CodeGrade.
67
67
  site_email: Maybe["str"] = Nothing
68
+ #: The amount of time before an access token expires when we will show a
69
+ #: toast message warning the user that their session is about to expire.
70
+ access_token_toast_warning_time: Maybe["datetime.timedelta"] = Nothing
71
+ #: The amount of time before an access token expires when we will show a
72
+ #: modal with a warning that the user's session is about to expire.
73
+ access_token_modal_warning_time: Maybe["datetime.timedelta"] = Nothing
68
74
  #: The maximum amount of lines that we should in render in one go. If a
69
75
  #: file contains more lines than this we will show a warning asking the
70
76
  #: user what to do.
@@ -140,6 +146,11 @@ class FrontendSiteSettings:
140
146
  #: to enable this deploy config needs to be updated, so don't just enable
141
147
  #: it.
142
148
  student_payment_enabled: Maybe["bool"] = Nothing
149
+ #: Define what will be shown as the main option for student payment, the
150
+ #: default will show stripe as the main payment option.
151
+ student_payment_main_option: Maybe[
152
+ "t.Literal['coupon', 'stripe']"
153
+ ] = Nothing
143
154
  #: Can students submit using the online editor.
144
155
  editor_enabled: Maybe["bool"] = Nothing
145
156
  #: Can AutoTest configurations be created and run using the 2.0
@@ -446,6 +457,24 @@ class FrontendSiteSettings:
446
457
  rqa.SimpleValue.str,
447
458
  doc="The email shown to users as the email of CodeGrade.",
448
459
  ),
460
+ rqa.OptionalArgument(
461
+ "ACCESS_TOKEN_TOAST_WARNING_TIME",
462
+ rqa.RichValue.TimeDelta,
463
+ doc=(
464
+ "The amount of time before an access token expires when we"
465
+ " will show a toast message warning the user that their"
466
+ " session is about to expire."
467
+ ),
468
+ ),
469
+ rqa.OptionalArgument(
470
+ "ACCESS_TOKEN_MODAL_WARNING_TIME",
471
+ rqa.RichValue.TimeDelta,
472
+ doc=(
473
+ "The amount of time before an access token expires when we"
474
+ " will show a modal with a warning that the user's session"
475
+ " is about to expire."
476
+ ),
477
+ ),
449
478
  rqa.OptionalArgument(
450
479
  "MAX_LINES",
451
480
  rqa.SimpleValue.int,
@@ -634,6 +663,15 @@ class FrontendSiteSettings:
634
663
  " be updated, so don't just enable it."
635
664
  ),
636
665
  ),
666
+ rqa.OptionalArgument(
667
+ "STUDENT_PAYMENT_MAIN_OPTION",
668
+ rqa.StringEnum("coupon", "stripe"),
669
+ doc=(
670
+ "Define what will be shown as the main option for student"
671
+ " payment, the default will show stripe as the main"
672
+ " payment option."
673
+ ),
674
+ ),
637
675
  rqa.OptionalArgument(
638
676
  "EDITOR_ENABLED",
639
677
  rqa.SimpleValue.bool,
@@ -1146,6 +1184,12 @@ class FrontendSiteSettings:
1146
1184
  )
1147
1185
  self.reset_token_time = maybe_from_nullable(self.reset_token_time)
1148
1186
  self.site_email = maybe_from_nullable(self.site_email)
1187
+ self.access_token_toast_warning_time = maybe_from_nullable(
1188
+ self.access_token_toast_warning_time
1189
+ )
1190
+ self.access_token_modal_warning_time = maybe_from_nullable(
1191
+ self.access_token_modal_warning_time
1192
+ )
1149
1193
  self.max_lines = maybe_from_nullable(self.max_lines)
1150
1194
  self.notification_poll_time = maybe_from_nullable(
1151
1195
  self.notification_poll_time
@@ -1206,6 +1250,9 @@ class FrontendSiteSettings:
1206
1250
  self.student_payment_enabled = maybe_from_nullable(
1207
1251
  self.student_payment_enabled
1208
1252
  )
1253
+ self.student_payment_main_option = maybe_from_nullable(
1254
+ self.student_payment_main_option
1255
+ )
1209
1256
  self.editor_enabled = maybe_from_nullable(self.editor_enabled)
1210
1257
  self.new_auto_test_enabled = maybe_from_nullable(
1211
1258
  self.new_auto_test_enabled
@@ -1434,6 +1481,14 @@ class FrontendSiteSettings:
1434
1481
  res["RESET_TOKEN_TIME"] = to_dict(self.reset_token_time.value)
1435
1482
  if self.site_email.is_just:
1436
1483
  res["SITE_EMAIL"] = to_dict(self.site_email.value)
1484
+ if self.access_token_toast_warning_time.is_just:
1485
+ res["ACCESS_TOKEN_TOAST_WARNING_TIME"] = to_dict(
1486
+ self.access_token_toast_warning_time.value
1487
+ )
1488
+ if self.access_token_modal_warning_time.is_just:
1489
+ res["ACCESS_TOKEN_MODAL_WARNING_TIME"] = to_dict(
1490
+ self.access_token_modal_warning_time.value
1491
+ )
1437
1492
  if self.max_lines.is_just:
1438
1493
  res["MAX_LINES"] = to_dict(self.max_lines.value)
1439
1494
  if self.notification_poll_time.is_just:
@@ -1516,6 +1571,10 @@ class FrontendSiteSettings:
1516
1571
  res["STUDENT_PAYMENT_ENABLED"] = to_dict(
1517
1572
  self.student_payment_enabled.value
1518
1573
  )
1574
+ if self.student_payment_main_option.is_just:
1575
+ res["STUDENT_PAYMENT_MAIN_OPTION"] = to_dict(
1576
+ self.student_payment_main_option.value
1577
+ )
1519
1578
  if self.editor_enabled.is_just:
1520
1579
  res["EDITOR_ENABLED"] = to_dict(self.editor_enabled.value)
1521
1580
  if self.new_auto_test_enabled.is_just:
@@ -1757,6 +1816,8 @@ class FrontendSiteSettings:
1757
1816
  login_token_before_time=parsed.LOGIN_TOKEN_BEFORE_TIME,
1758
1817
  reset_token_time=parsed.RESET_TOKEN_TIME,
1759
1818
  site_email=parsed.SITE_EMAIL,
1819
+ access_token_toast_warning_time=parsed.ACCESS_TOKEN_TOAST_WARNING_TIME,
1820
+ access_token_modal_warning_time=parsed.ACCESS_TOKEN_MODAL_WARNING_TIME,
1760
1821
  max_lines=parsed.MAX_LINES,
1761
1822
  notification_poll_time=parsed.NOTIFICATION_POLL_TIME,
1762
1823
  release_message_max_time=parsed.RELEASE_MESSAGE_MAX_TIME,
@@ -1781,6 +1842,7 @@ class FrontendSiteSettings:
1781
1842
  peer_feedback_enabled=parsed.PEER_FEEDBACK_ENABLED,
1782
1843
  at_image_caching_enabled=parsed.AT_IMAGE_CACHING_ENABLED,
1783
1844
  student_payment_enabled=parsed.STUDENT_PAYMENT_ENABLED,
1845
+ student_payment_main_option=parsed.STUDENT_PAYMENT_MAIN_OPTION,
1784
1846
  editor_enabled=parsed.EDITOR_ENABLED,
1785
1847
  new_auto_test_enabled=parsed.NEW_AUTO_TEST_ENABLED,
1786
1848
  server_time_correction_enabled=parsed.SERVER_TIME_CORRECTION_ENABLED,
@@ -3,6 +3,7 @@
3
3
  SPDX-License-Identifier: AGPL-3.0-only OR BSD-3-Clause-Clear
4
4
  """
5
5
 
6
+ import datetime
6
7
  import typing as t
7
8
  from dataclasses import dataclass, field
8
9
 
@@ -24,6 +25,8 @@ class ResultDataPostLoginLinkLogin:
24
25
  access_token: "str"
25
26
  #: The restrictions of this access token.
26
27
  restrictions: "SessionRestrictionData"
28
+ #: When this token expires.
29
+ expires_at: "datetime.datetime"
27
30
 
28
31
  raw_data: t.Optional[t.Dict[str, t.Any]] = field(init=False, repr=False)
29
32
 
@@ -47,6 +50,11 @@ class ResultDataPostLoginLinkLogin:
47
50
  parsers.ParserFor.make(SessionRestrictionData),
48
51
  doc="The restrictions of this access token.",
49
52
  ),
53
+ rqa.RequiredArgument(
54
+ "expires_at",
55
+ rqa.RichValue.DateTime,
56
+ doc="When this token expires.",
57
+ ),
50
58
  ).use_readable_describe(True)
51
59
  )
52
60
 
@@ -55,6 +63,7 @@ class ResultDataPostLoginLinkLogin:
55
63
  "user": to_dict(self.user),
56
64
  "access_token": to_dict(self.access_token),
57
65
  "restrictions": to_dict(self.restrictions),
66
+ "expires_at": to_dict(self.expires_at),
58
67
  }
59
68
  return res
60
69
 
@@ -68,6 +77,7 @@ class ResultDataPostLoginLinkLogin:
68
77
  user=parsed.user,
69
78
  access_token=parsed.access_token,
70
79
  restrictions=parsed.restrictions,
80
+ expires_at=parsed.expires_at,
71
81
  )
72
82
  res.raw_data = d
73
83
  return res
@@ -3,6 +3,7 @@
3
3
  SPDX-License-Identifier: AGPL-3.0-only OR BSD-3-Clause-Clear
4
4
  """
5
5
 
6
+ import datetime
6
7
  import typing as t
7
8
  from dataclasses import dataclass, field
8
9
 
@@ -24,6 +25,8 @@ class ResultDataPostUserLogin:
24
25
  access_token: "str"
25
26
  #: The restrictions of this access token.
26
27
  restrictions: "SessionRestrictionData"
28
+ #: When this token expires.
29
+ expires_at: "datetime.datetime"
27
30
 
28
31
  raw_data: t.Optional[t.Dict[str, t.Any]] = field(init=False, repr=False)
29
32
 
@@ -47,6 +50,11 @@ class ResultDataPostUserLogin:
47
50
  parsers.ParserFor.make(SessionRestrictionData),
48
51
  doc="The restrictions of this access token.",
49
52
  ),
53
+ rqa.RequiredArgument(
54
+ "expires_at",
55
+ rqa.RichValue.DateTime,
56
+ doc="When this token expires.",
57
+ ),
50
58
  ).use_readable_describe(True)
51
59
  )
52
60
 
@@ -55,6 +63,7 @@ class ResultDataPostUserLogin:
55
63
  "user": to_dict(self.user),
56
64
  "access_token": to_dict(self.access_token),
57
65
  "restrictions": to_dict(self.restrictions),
66
+ "expires_at": to_dict(self.expires_at),
58
67
  }
59
68
  return res
60
69
 
@@ -68,6 +77,7 @@ class ResultDataPostUserLogin:
68
77
  user=parsed.user,
69
78
  access_token=parsed.access_token,
70
79
  restrictions=parsed.restrictions,
80
+ expires_at=parsed.expires_at,
71
81
  )
72
82
  res.raw_data = d
73
83
  return res
@@ -3,6 +3,7 @@
3
3
  SPDX-License-Identifier: AGPL-3.0-only OR BSD-3-Clause-Clear
4
4
  """
5
5
 
6
+ import datetime
6
7
  import typing as t
7
8
  from dataclasses import dataclass, field
8
9
 
@@ -24,6 +25,8 @@ class ResultDataPostUserRegister:
24
25
  access_token: "str"
25
26
  #: The restrictions of this access token.
26
27
  restrictions: "SessionRestrictionData"
28
+ #: When this token expires.
29
+ expires_at: "datetime.datetime"
27
30
 
28
31
  raw_data: t.Optional[t.Dict[str, t.Any]] = field(init=False, repr=False)
29
32
 
@@ -47,6 +50,11 @@ class ResultDataPostUserRegister:
47
50
  parsers.ParserFor.make(SessionRestrictionData),
48
51
  doc="The restrictions of this access token.",
49
52
  ),
53
+ rqa.RequiredArgument(
54
+ "expires_at",
55
+ rqa.RichValue.DateTime,
56
+ doc="When this token expires.",
57
+ ),
50
58
  ).use_readable_describe(True)
51
59
  )
52
60
 
@@ -55,6 +63,7 @@ class ResultDataPostUserRegister:
55
63
  "user": to_dict(self.user),
56
64
  "access_token": to_dict(self.access_token),
57
65
  "restrictions": to_dict(self.restrictions),
66
+ "expires_at": to_dict(self.expires_at),
58
67
  }
59
68
  return res
60
69
 
@@ -68,6 +77,7 @@ class ResultDataPostUserRegister:
68
77
  user=parsed.user,
69
78
  access_token=parsed.access_token,
70
79
  restrictions=parsed.restrictions,
80
+ expires_at=parsed.expires_at,
71
81
  )
72
82
  res.raw_data = d
73
83
  return res
@@ -10,6 +10,12 @@ import cg_request_args as rqa
10
10
 
11
11
  from ..parsers import ParserFor, make_union
12
12
  from ..utils import to_dict
13
+ from .access_token_modal_warning_time_setting import (
14
+ AccessTokenModalWarningTimeSetting,
15
+ )
16
+ from .access_token_toast_warning_time_setting import (
17
+ AccessTokenToastWarningTimeSetting,
18
+ )
13
19
  from .ai_assistant_enabled_setting import AiAssistantEnabledSetting
14
20
  from .always_update_pii_with_lti_setting import AlwaysUpdatePiiWithLtiSetting
15
21
  from .analytics_enabled_setting import AnalyticsEnabledSetting
@@ -291,6 +297,9 @@ from .staged_assignment_importer_enabled_setting import (
291
297
  StagedAssignmentImporterEnabledSetting,
292
298
  )
293
299
  from .student_payment_enabled_setting import StudentPaymentEnabledSetting
300
+ from .student_payment_main_option_setting import (
301
+ StudentPaymentMainOptionSetting,
302
+ )
294
303
  from .student_view_enabled_setting import StudentViewEnabledSetting
295
304
  from .submissions_per_page_enabled_setting import (
296
305
  SubmissionsPerPageEnabledSetting,
@@ -340,6 +349,8 @@ SiteSettingInput = t.Union[
340
349
  MaxDynamoFileSizeSetting,
341
350
  MaxDocumentUpdateSizeSetting,
342
351
  JwtAccessTokenExpiresSetting,
352
+ AccessTokenToastWarningTimeSetting,
353
+ AccessTokenModalWarningTimeSetting,
343
354
  MaxLinesSetting,
344
355
  NotificationPollTimeSetting,
345
356
  ReleaseMessageMaxTimeSetting,
@@ -364,6 +375,7 @@ SiteSettingInput = t.Union[
364
375
  PeerFeedbackEnabledSetting,
365
376
  AtImageCachingEnabledSetting,
366
377
  StudentPaymentEnabledSetting,
378
+ StudentPaymentMainOptionSetting,
367
379
  EditorEnabledSetting,
368
380
  NewAutoTestEnabledSetting,
369
381
  ServerTimeCorrectionEnabledSetting,
@@ -477,6 +489,8 @@ SiteSettingInputParser = rqa.Lazy(
477
489
  ParserFor.make(MaxDynamoFileSizeSetting),
478
490
  ParserFor.make(MaxDocumentUpdateSizeSetting),
479
491
  ParserFor.make(JwtAccessTokenExpiresSetting),
492
+ ParserFor.make(AccessTokenToastWarningTimeSetting),
493
+ ParserFor.make(AccessTokenModalWarningTimeSetting),
480
494
  ParserFor.make(MaxLinesSetting),
481
495
  ParserFor.make(NotificationPollTimeSetting),
482
496
  ParserFor.make(ReleaseMessageMaxTimeSetting),
@@ -501,6 +515,7 @@ SiteSettingInputParser = rqa.Lazy(
501
515
  ParserFor.make(PeerFeedbackEnabledSetting),
502
516
  ParserFor.make(AtImageCachingEnabledSetting),
503
517
  ParserFor.make(StudentPaymentEnabledSetting),
518
+ ParserFor.make(StudentPaymentMainOptionSetting),
504
519
  ParserFor.make(EditorEnabledSetting),
505
520
  ParserFor.make(NewAutoTestEnabledSetting),
506
521
  ParserFor.make(ServerTimeCorrectionEnabledSetting),