codegrade 16.1.66__tar.gz → 16.1.67__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 (588) hide show
  1. {codegrade-16.1.66 → codegrade-16.1.67}/PKG-INFO +1 -1
  2. {codegrade-16.1.66 → codegrade-16.1.67}/cg_maybe/__init__.py +0 -2
  3. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/__init__.py +1 -1
  4. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/client.py +2 -2
  5. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/__init__.py +6 -0
  6. codegrade-16.1.67/codegrade/models/access_token_modal_warning_time_setting.py +58 -0
  7. codegrade-16.1.67/codegrade/models/access_token_toast_warning_time_setting.py +58 -0
  8. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/all_site_settings.py +10 -0
  9. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/assignment.py +6 -6
  10. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/base_lms_capabilities.py +25 -22
  11. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/frontend_site_settings.py +40 -0
  12. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/result_data_post_login_link_login.py +10 -0
  13. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/result_data_post_user_login.py +10 -0
  14. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/result_data_post_user_register.py +10 -0
  15. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/site_setting_input.py +10 -0
  16. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/user_login_response.py +10 -0
  17. {codegrade-16.1.66 → codegrade-16.1.67}/pyproject.toml +2 -1
  18. {codegrade-16.1.66 → codegrade-16.1.67}/setup.py +1 -1
  19. {codegrade-16.1.66 → codegrade-16.1.67}/README.md +0 -0
  20. {codegrade-16.1.66 → codegrade-16.1.67}/cg_dt_utils/__init__.py +0 -0
  21. {codegrade-16.1.66 → codegrade-16.1.67}/cg_maybe/_just.py +0 -0
  22. {codegrade-16.1.66 → codegrade-16.1.67}/cg_maybe/_maybe.py +0 -0
  23. {codegrade-16.1.66 → codegrade-16.1.67}/cg_maybe/_nothing.py +0 -0
  24. {codegrade-16.1.66 → codegrade-16.1.67}/cg_maybe/_type_helpers.py +0 -0
  25. {codegrade-16.1.66 → codegrade-16.1.67}/cg_maybe/cg_maybe_plugin.py +0 -0
  26. {codegrade-16.1.66 → codegrade-16.1.67}/cg_maybe/utils.py +0 -0
  27. {codegrade-16.1.66 → codegrade-16.1.67}/cg_request_args/__init__.py +0 -0
  28. {codegrade-16.1.66 → codegrade-16.1.67}/cg_request_args/_any_value.py +0 -0
  29. {codegrade-16.1.66 → codegrade-16.1.67}/cg_request_args/_base.py +0 -0
  30. {codegrade-16.1.66 → codegrade-16.1.67}/cg_request_args/_convert.py +0 -0
  31. {codegrade-16.1.66 → codegrade-16.1.67}/cg_request_args/_enum.py +0 -0
  32. {codegrade-16.1.66 → codegrade-16.1.67}/cg_request_args/_form.py +0 -0
  33. {codegrade-16.1.66 → codegrade-16.1.67}/cg_request_args/_lazy.py +0 -0
  34. {codegrade-16.1.66 → codegrade-16.1.67}/cg_request_args/_list.py +0 -0
  35. {codegrade-16.1.66 → codegrade-16.1.67}/cg_request_args/_literal.py +0 -0
  36. {codegrade-16.1.66 → codegrade-16.1.67}/cg_request_args/_mapping.py +0 -0
  37. {codegrade-16.1.66 → codegrade-16.1.67}/cg_request_args/_multipart.py +0 -0
  38. {codegrade-16.1.66 → codegrade-16.1.67}/cg_request_args/_nullable.py +0 -0
  39. {codegrade-16.1.66 → codegrade-16.1.67}/cg_request_args/_parse_utils.py +0 -0
  40. {codegrade-16.1.66 → codegrade-16.1.67}/cg_request_args/_query.py +0 -0
  41. {codegrade-16.1.66 → codegrade-16.1.67}/cg_request_args/_rich_value.py +0 -0
  42. {codegrade-16.1.66 → codegrade-16.1.67}/cg_request_args/_set.py +0 -0
  43. {codegrade-16.1.66 → codegrade-16.1.67}/cg_request_args/_swagger_utils.py +0 -0
  44. {codegrade-16.1.66 → codegrade-16.1.67}/cg_request_args/_swaggerize.py +0 -0
  45. {codegrade-16.1.66 → codegrade-16.1.67}/cg_request_args/_utils.py +0 -0
  46. {codegrade-16.1.66 → codegrade-16.1.67}/cg_request_args/exceptions.py +0 -0
  47. {codegrade-16.1.66 → codegrade-16.1.67}/cg_request_args/request_args_plugin.py +0 -0
  48. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/__init__.py +0 -0
  49. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/about.py +0 -0
  50. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/assignment.py +0 -0
  51. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/auto_test.py +0 -0
  52. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/comment.py +0 -0
  53. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/course.py +0 -0
  54. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/course_price.py +0 -0
  55. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/file.py +0 -0
  56. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/git_provider.py +0 -0
  57. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/group.py +0 -0
  58. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/group_set.py +0 -0
  59. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/login_link.py +0 -0
  60. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/lti.py +0 -0
  61. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/notification.py +0 -0
  62. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/oauth_provider.py +0 -0
  63. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/oauth_token.py +0 -0
  64. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/permission.py +0 -0
  65. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/plagiarism.py +0 -0
  66. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/role.py +0 -0
  67. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/saml.py +0 -0
  68. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/section.py +0 -0
  69. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/site_settings.py +0 -0
  70. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/snippet.py +0 -0
  71. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/sso_provider.py +0 -0
  72. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/submission.py +0 -0
  73. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/task_result.py +0 -0
  74. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/tenant.py +0 -0
  75. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/transaction.py +0 -0
  76. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/user.py +0 -0
  77. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/user_setting.py +0 -0
  78. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/_api/webhook.py +0 -0
  79. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/errors.py +0 -0
  80. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/_base_price.py +0 -0
  81. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/_saml_ui_logo_info.py +0 -0
  82. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/_submission_rubric_item_data_parser.py +0 -0
  83. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/about.py +0 -0
  84. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/abstract_role.py +0 -0
  85. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/add_users_section_data.py +0 -0
  86. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/ai_assistant_enabled_setting.py +0 -0
  87. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/all_auto_test_results.py +0 -0
  88. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/always_update_pii_with_lti_setting.py +0 -0
  89. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/analytics_enabled_setting.py +0 -0
  90. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/any_auto_test_step_as_json.py +0 -0
  91. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/any_error.py +0 -0
  92. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/any_non_redacted_auto_test_step_as_json.py +0 -0
  93. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/any_redacted_auto_test_step_as_json.py +0 -0
  94. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/api_codes.py +0 -0
  95. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/assignment_anonymization_algo.py +0 -0
  96. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/assignment_default_grading_scale_points_setting.py +0 -0
  97. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/assignment_default_grading_scale_setting.py +0 -0
  98. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/assignment_description_enabled_setting.py +0 -0
  99. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/assignment_description_on_teachers_submissions_page_setting.py +0 -0
  100. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/assignment_done_type.py +0 -0
  101. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/assignment_export_column.py +0 -0
  102. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/assignment_feedback.py +0 -0
  103. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/assignment_grader.py +0 -0
  104. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/assignment_grading_scale_points_enabled_setting.py +0 -0
  105. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/assignment_kind.py +0 -0
  106. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/assignment_login_link.py +0 -0
  107. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/assignment_max_points_enabled_setting.py +0 -0
  108. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/assignment_peer_feedback_connection.py +0 -0
  109. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/assignment_peer_feedback_settings.py +0 -0
  110. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/assignment_percentage_decimals_setting.py +0 -0
  111. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/assignment_percentage_grading_settings.py +0 -0
  112. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/assignment_point_decimals_setting.py +0 -0
  113. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/assignment_points_grading_settings.py +0 -0
  114. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/assignment_section_timeframe.py +0 -0
  115. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/assignment_state_enum.py +0 -0
  116. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/assignment_submission_mode.py +0 -0
  117. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/assignment_template.py +0 -0
  118. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/assignment_timeframes.py +0 -0
  119. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/at_image_caching_enabled_setting.py +0 -0
  120. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test.py +0 -0
  121. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_capture_points_message_setting.py +0 -0
  122. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_checkpoint_message_setting.py +0 -0
  123. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_code_quality_message_setting.py +0 -0
  124. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_enabled_setting.py +0 -0
  125. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_fixture.py +0 -0
  126. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_global_setup_output.py +0 -0
  127. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_global_setup_script.py +0 -0
  128. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_heartbeat_interval_setting.py +0 -0
  129. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_heartbeat_max_missed_setting.py +0 -0
  130. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_io_test_message_setting.py +0 -0
  131. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_io_test_sub_message_setting.py +0 -0
  132. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_max_concurrent_batch_runs_setting.py +0 -0
  133. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_max_global_setup_time_setting.py +0 -0
  134. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_max_jobs_per_runner_setting.py +0 -0
  135. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_max_per_student_setup_time_setting.py +0 -0
  136. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_max_result_not_started_setting.py +0 -0
  137. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_max_time_command_setting.py +0 -0
  138. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_max_unit_test_metadata_length_setting.py +0 -0
  139. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_quality_comment.py +0 -0
  140. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_result.py +0 -0
  141. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_result_state.py +0 -0
  142. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_result_with_extra_data.py +0 -0
  143. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_run.py +0 -0
  144. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_run_program_message_setting.py +0 -0
  145. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_runner.py +0 -0
  146. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_runner_state.py +0 -0
  147. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_set.py +0 -0
  148. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_step_base.py +0 -0
  149. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_step_base_as_json.py +0 -0
  150. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_step_base_input_as_json.py +0 -0
  151. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_step_log_base.py +0 -0
  152. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_step_result.py +0 -0
  153. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_step_result_state.py +0 -0
  154. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_step_validation_exception.py +0 -0
  155. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_suite.py +0 -0
  156. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/auto_test_unit_test_message_setting.py +0 -0
  157. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/automatic_lti1p3_assignment_import_setting.py +0 -0
  158. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/automatic_lti_role_enabled_setting.py +0 -0
  159. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/base_about.py +0 -0
  160. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/base_auto_test_quality_comment.py +0 -0
  161. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/base_comment_base.py +0 -0
  162. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/base_comment_base_with_extended_replies.py +0 -0
  163. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/base_comment_base_with_normal_replies.py +0 -0
  164. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/base_comment_reply.py +0 -0
  165. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/base_course_coupon.py +0 -0
  166. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/base_directory.py +0 -0
  167. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/base_error.py +0 -0
  168. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/base_file.py +0 -0
  169. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/base_lti1p1_provider.py +0 -0
  170. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/base_lti1p3_provider.py +0 -0
  171. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/base_lti_provider.py +0 -0
  172. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/base_notification.py +0 -0
  173. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/base_release_info.py +0 -0
  174. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/base_rubric_item.py +0 -0
  175. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/base_tenant_coupon.py +0 -0
  176. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/blackboard_zip_upload_enabled_setting.py +0 -0
  177. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/bulk_enroll_course_data.py +0 -0
  178. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/canvas_course_id_copying_enabled_setting.py +0 -0
  179. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/cg_ignore_version.py +0 -0
  180. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/change_user_role_course_data.py +0 -0
  181. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/check_points_as_json.py +0 -0
  182. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/check_points_data.py +0 -0
  183. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/check_points_extra.py +0 -0
  184. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/check_points_input_as_json.py +0 -0
  185. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/clone_result.py +0 -0
  186. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/code_editor_output_viewer_title_setting.py +0 -0
  187. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/code_editor_start_on_assignment_description_setting.py +0 -0
  188. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/code_quality_as_json.py +0 -0
  189. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/code_quality_base_data.py +0 -0
  190. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/code_quality_data.py +0 -0
  191. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/code_quality_extra.py +0 -0
  192. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/code_quality_input_as_json.py +0 -0
  193. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/code_quality_penalties.py +0 -0
  194. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/column_range.py +0 -0
  195. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/comment_base.py +0 -0
  196. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/comment_reply.py +0 -0
  197. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/comment_reply_edit.py +0 -0
  198. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/comment_reply_type.py +0 -0
  199. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/comment_type.py +0 -0
  200. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/community_library_publishing_setting.py +0 -0
  201. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/community_library_setting.py +0 -0
  202. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/connect_repository_git_provider_data.py +0 -0
  203. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/copy_auto_test_data.py +0 -0
  204. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/copy_rubric_assignment_data.py +0 -0
  205. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/coupon_data_parser.py +0 -0
  206. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/coupon_with_code.py +0 -0
  207. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/coupon_without_code.py +0 -0
  208. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/course.py +0 -0
  209. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/course_bulk_enroll_result.py +0 -0
  210. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/course_bulk_register_enabled_setting.py +0 -0
  211. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/course_coupon.py +0 -0
  212. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/course_coupon_usage.py +0 -0
  213. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/course_gradebook_enabled_setting.py +0 -0
  214. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/course_gradebook_render_warning_size_setting.py +0 -0
  215. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/course_of_course_price.py +0 -0
  216. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/course_of_tenant_coupon_usage.py +0 -0
  217. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/course_perm_map.py +0 -0
  218. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/course_permission.py +0 -0
  219. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/course_price.py +0 -0
  220. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/course_register_enabled_setting.py +0 -0
  221. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/course_registration_link.py +0 -0
  222. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/course_role.py +0 -0
  223. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/course_role_as_json_with_perms.py +0 -0
  224. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/course_section.py +0 -0
  225. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/course_section_division.py +0 -0
  226. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/course_section_division_connection.py +0 -0
  227. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/course_section_division_user.py +0 -0
  228. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/course_snippet.py +0 -0
  229. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/course_state.py +0 -0
  230. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/course_statistics_as_json.py +0 -0
  231. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/create_assignment_course_data.py +0 -0
  232. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/create_auto_test_data.py +0 -0
  233. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/create_comment_data.py +0 -0
  234. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/create_comment_reply_data.py +0 -0
  235. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/create_course_data.py +0 -0
  236. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/create_division_section_data.py +0 -0
  237. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/create_group_group_set_data.py +0 -0
  238. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/create_group_set_course_data.py +0 -0
  239. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/create_lti_data.py +0 -0
  240. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/create_output_html_proxy_auto_test_data.py +0 -0
  241. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/create_proxy_submission_data.py +0 -0
  242. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/create_repository_git_provider_data.py +0 -0
  243. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/create_role_course_data.py +0 -0
  244. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/create_section_course_data.py +0 -0
  245. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/create_snippet_course_data.py +0 -0
  246. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/create_snippet_data.py +0 -0
  247. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/create_sso_provider_data.py +0 -0
  248. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/create_tenant_data.py +0 -0
  249. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/csv_large_file_limit_setting.py +0 -0
  250. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/csv_too_many_errors_limit_setting.py +0 -0
  251. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/currency.py +0 -0
  252. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/custom_output_as_json.py +0 -0
  253. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/custom_output_data.py +0 -0
  254. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/custom_output_extra.py +0 -0
  255. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/custom_output_input_as_json.py +0 -0
  256. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/custom_output_log.py +0 -0
  257. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/custom_output_log_base.py +0 -0
  258. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/default_course_ta_role_setting.py +0 -0
  259. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/default_course_teacher_role_setting.py +0 -0
  260. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/default_submission_page_tab_setting.py +0 -0
  261. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/deleted_comment_reply.py +0 -0
  262. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/deletion_type.py +0 -0
  263. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/directory_with_children.py +0 -0
  264. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/disabled_setting_exception.py +0 -0
  265. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/display_grades_enabled_setting.py +0 -0
  266. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/editor_enabled_for_teachers_setting.py +0 -0
  267. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/editor_enabled_setting.py +0 -0
  268. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/email_notification_types.py +0 -0
  269. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/email_students_enabled_setting.py +0 -0
  270. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/email_users_course_data.py +0 -0
  271. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/exam_login_max_length_setting.py +0 -0
  272. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/export_assignment_csv_data.py +0 -0
  273. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/export_assignment_data.py +0 -0
  274. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/export_assignment_files_data.py +0 -0
  275. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/extended_auto_test_result.py +0 -0
  276. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/extended_auto_test_run.py +0 -0
  277. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/extended_course.py +0 -0
  278. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/extended_course_registration_link.py +0 -0
  279. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/extended_course_section.py +0 -0
  280. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/extended_group.py +0 -0
  281. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/extended_job.py +0 -0
  282. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/extended_non_deleted_comment_reply.py +0 -0
  283. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/extended_tenant.py +0 -0
  284. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/extended_transaction.py +0 -0
  285. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/extended_user.py +0 -0
  286. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/extended_work.py +0 -0
  287. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/extract_file_tree_directory.py +0 -0
  288. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/extract_file_tree_file.py +0 -0
  289. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/failed_to_send_email_exception.py +0 -0
  290. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/feedback_base.py +0 -0
  291. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/feedback_threads_initially_collapsed_setting.py +0 -0
  292. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/feedback_with_replies.py +0 -0
  293. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/feedback_without_replies.py +0 -0
  294. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/file_deletion.py +0 -0
  295. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/file_rule.py +0 -0
  296. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/file_rule_input_data.py +0 -0
  297. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/file_tree.py +0 -0
  298. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/file_type.py +0 -0
  299. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/finalized_lti1p1_provider.py +0 -0
  300. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/finalized_lti1p3_provider.py +0 -0
  301. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/first_phase_lti_launch_exception.py +0 -0
  302. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/fixed_availability.py +0 -0
  303. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/fixed_grade_availability.py +0 -0
  304. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/fixture_like.py +0 -0
  305. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/fraction.py +0 -0
  306. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/general_feedback_comment_base.py +0 -0
  307. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/general_feedback_comment_base_with_extended_replies.py +0 -0
  308. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/general_feedback_extra.py +0 -0
  309. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/git_repositories_page.py +0 -0
  310. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/git_repository_like.py +0 -0
  311. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/git_user_info.py +0 -0
  312. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/github_template_repo_enabled_setting.py +0 -0
  313. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/global_perm_map.py +0 -0
  314. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/global_permission.py +0 -0
  315. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/grade_history.py +0 -0
  316. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/grade_origin.py +0 -0
  317. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/grading_notifications_enabled_setting.py +0 -0
  318. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/group.py +0 -0
  319. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/group_not_ready_for_submission_exception.py +0 -0
  320. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/group_set.py +0 -0
  321. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/groups_enabled_setting.py +0 -0
  322. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/has_unread_notifcation_json.py +0 -0
  323. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/health_information.py +0 -0
  324. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/hide_code_editor_filetree_controls_with_only_quiz_steps_setting.py +0 -0
  325. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/hide_code_editor_output_viewer_with_only_quiz_steps_setting.py +0 -0
  326. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/hide_empty_rubric_row_description_setting.py +0 -0
  327. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/hide_no_deadline_enabled_setting.py +0 -0
  328. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/hubspot_syncing_enabled_setting.py +0 -0
  329. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/ignore_handling.py +0 -0
  330. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/ignored_files_exception.py +0 -0
  331. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/import_into_assignment_data.py +0 -0
  332. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/import_into_course_data.py +0 -0
  333. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/incremental_rubric_submission_enabled_setting.py +0 -0
  334. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/inline_feedback_comment_base.py +0 -0
  335. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/inline_feedback_comment_base_with_extended_replies.py +0 -0
  336. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/inline_feedback_extra.py +0 -0
  337. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/inline_rubric_viewer_enabled_setting.py +0 -0
  338. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/invalid_group_exception.py +0 -0
  339. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/invalid_io_cases_exception.py +0 -0
  340. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/invalid_options_exception.py +0 -0
  341. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/io_test_as_json.py +0 -0
  342. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/io_test_base_data.py +0 -0
  343. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/io_test_data.py +0 -0
  344. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/io_test_extra.py +0 -0
  345. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/io_test_input_as_json.py +0 -0
  346. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/io_test_input_case.py +0 -0
  347. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/io_test_log.py +0 -0
  348. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/io_test_option.py +0 -0
  349. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/io_test_step_log.py +0 -0
  350. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/io_test_step_log_base.py +0 -0
  351. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/is_admin_permission_enabled_setting.py +0 -0
  352. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/job.py +0 -0
  353. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/json_create_auto_test.py +0 -0
  354. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/json_create_tenant.py +0 -0
  355. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/json_patch_auto_test.py +0 -0
  356. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/json_patch_submit_types_assignment.py +0 -0
  357. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/junit_test_as_json.py +0 -0
  358. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/junit_test_base_data.py +0 -0
  359. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/junit_test_data.py +0 -0
  360. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/junit_test_extra.py +0 -0
  361. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/junit_test_input_as_json.py +0 -0
  362. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/junit_test_log.py +0 -0
  363. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/junit_test_log_base.py +0 -0
  364. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/jwt_access_token_expires_setting.py +0 -0
  365. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/legacy_features.py +0 -0
  366. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/line_range.py +0 -0
  367. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/linters_enabled_setting.py +0 -0
  368. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/lms_capabilities.py +0 -0
  369. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/login_token_before_time_setting.py +0 -0
  370. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/login_user_data.py +0 -0
  371. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/logout_response.py +0 -0
  372. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/logout_user_data.py +0 -0
  373. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/lti1p1_provider.py +0 -0
  374. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/lti1p1_provider_data.py +0 -0
  375. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/lti1p3_nonce_and_state_validation_enabled_setting.py +0 -0
  376. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/lti1p3_parse_most_privileged_role_setting.py +0 -0
  377. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/lti1p3_prevent_nonce_reuse_enabled_setting.py +0 -0
  378. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/lti1p3_provider.py +0 -0
  379. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/lti1p3_provider_data.py +0 -0
  380. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/lti1p3_provider_presentation_as_json.py +0 -0
  381. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/lti1p3_system_role_from_context_role_setting.py +0 -0
  382. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/lti_enabled_setting.py +0 -0
  383. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/lti_first_launch_content_id_enabled_setting.py +0 -0
  384. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/lti_launch_data_logging_setting.py +0 -0
  385. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/lti_lock_date_copying_enabled_setting.py +0 -0
  386. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/lti_provider_base.py +0 -0
  387. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/lti_unset_deadline_lock_date_enabled_setting.py +0 -0
  388. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/max_document_update_size_setting.py +0 -0
  389. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/max_dynamo_file_size_setting.py +0 -0
  390. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/max_dynamo_submission_size_setting.py +0 -0
  391. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/max_file_size_setting.py +0 -0
  392. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/max_large_upload_size_setting.py +0 -0
  393. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/max_lines_setting.py +0 -0
  394. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/max_normal_upload_size_setting.py +0 -0
  395. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/max_number_of_files_setting.py +0 -0
  396. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/max_plagiarism_matches_setting.py +0 -0
  397. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/max_user_setting_amount_setting.py +0 -0
  398. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/min_password_score_setting.py +0 -0
  399. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/mirror_file_result.py +0 -0
  400. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/missing_cookie_error.py +0 -0
  401. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/missing_file.py +0 -0
  402. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/name_and_email_from_nrps_only_setting.py +0 -0
  403. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/new_auto_test_allowed_initial_build_ids_setting.py +0 -0
  404. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/new_auto_test_build_max_command_time_setting.py +0 -0
  405. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/new_auto_test_build_output_limit_setting.py +0 -0
  406. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/new_auto_test_copying_enabled_setting.py +0 -0
  407. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/new_auto_test_current_initial_build_ids_setting.py +0 -0
  408. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/new_auto_test_diff_viewer_enabled_setting.py +0 -0
  409. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/new_auto_test_enabled_setting.py +0 -0
  410. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/new_auto_test_initial_build_id_setting.py +0 -0
  411. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/new_auto_test_max_dynamodb_size_setting.py +0 -0
  412. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/new_auto_test_max_file_size_setting.py +0 -0
  413. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/new_auto_test_max_output_files_size_setting.py +0 -0
  414. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/new_auto_test_max_storage_size_setting.py +0 -0
  415. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/new_auto_test_old_submission_age_setting.py +0 -0
  416. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/new_auto_test_test_max_command_time_setting.py +0 -0
  417. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/new_auto_test_test_output_limit_setting.py +0 -0
  418. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/new_auto_test_uncollapsing_step_output_delay_setting.py +0 -0
  419. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/no_permissions.py +0 -0
  420. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/non_deleted_comment_reply.py +0 -0
  421. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/non_finalized_lti1p1_provider.py +0 -0
  422. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/non_finalized_lti1p3_provider.py +0 -0
  423. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/non_present_preference.py +0 -0
  424. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/notification.py +0 -0
  425. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/notification_comment_reply_notification_as_json.py +0 -0
  426. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/notification_general_feedback_reply_notification_as_json.py +0 -0
  427. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/notification_poll_time_setting.py +0 -0
  428. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/notification_reasons.py +0 -0
  429. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/notification_setting.py +0 -0
  430. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/notification_setting_option.py +0 -0
  431. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/notifications_json.py +0 -0
  432. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/oauth_provider.py +0 -0
  433. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/oauth_token.py +0 -0
  434. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/option.py +0 -0
  435. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/options_input_data.py +0 -0
  436. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/output_viewer_animation_limit_lines_count_setting.py +0 -0
  437. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/parse_api_exception.py +0 -0
  438. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/patch1_p1_provider_lti_data.py +0 -0
  439. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/patch1_p3_provider_lti_data.py +0 -0
  440. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/patch_all_notification_data.py +0 -0
  441. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/patch_assignment_data.py +0 -0
  442. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/patch_auto_test_data.py +0 -0
  443. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/patch_comment_reply_data.py +0 -0
  444. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/patch_course_data.py +0 -0
  445. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/patch_grader_submission_data.py +0 -0
  446. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/patch_notification_data.py +0 -0
  447. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/patch_notification_setting_user_setting_data.py +0 -0
  448. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/patch_provider_lti_data.py +0 -0
  449. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/patch_role_course_data.py +0 -0
  450. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/patch_role_data.py +0 -0
  451. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/patch_role_tenant_data.py +0 -0
  452. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/patch_rubric_category_type_assignment_data.py +0 -0
  453. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/patch_rubric_result_submission_data.py +0 -0
  454. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/patch_section_data.py +0 -0
  455. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/patch_settings_tenant_data.py +0 -0
  456. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/patch_site_settings_data.py +0 -0
  457. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/patch_snippet_course_data.py +0 -0
  458. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/patch_snippet_data.py +0 -0
  459. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/patch_submission_data.py +0 -0
  460. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/patch_submit_types_assignment_data.py +0 -0
  461. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/patch_tenant_data.py +0 -0
  462. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/patch_ui_preference_user_setting_data.py +0 -0
  463. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/patch_user_data.py +0 -0
  464. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/pay_with_coupon_course_price_data.py +0 -0
  465. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/pearson_templates_setting.py +0 -0
  466. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/peer_feedback_enabled_setting.py +0 -0
  467. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/permission_exception.py +0 -0
  468. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/plagiarism_bulk_export_enabled_setting.py +0 -0
  469. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/plagiarism_bulk_export_max_cases_setting.py +0 -0
  470. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/plagiarism_case.py +0 -0
  471. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/plagiarism_pdf_export_enabled_setting.py +0 -0
  472. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/plagiarism_run.py +0 -0
  473. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/plagiarism_run_plagiarism_assignment_as_json.py +0 -0
  474. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/plagiarism_run_plagiarism_course_as_json.py +0 -0
  475. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/plagiarism_state.py +0 -0
  476. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/post_oauth_token_data.py +0 -0
  477. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/present_preference.py +0 -0
  478. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/proxy.py +0 -0
  479. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/put_description_assignment_data.py +0 -0
  480. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/put_enroll_link_course_data.py +0 -0
  481. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/put_price_course_data.py +0 -0
  482. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/put_price_tenant_data.py +0 -0
  483. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/put_rubric_assignment_data.py +0 -0
  484. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/quality_comment_severity.py +0 -0
  485. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/quality_comments_in_code_editor_setting.py +0 -0
  486. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/quality_test_log.py +0 -0
  487. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/quality_test_log_base.py +0 -0
  488. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/register_enabled_setting.py +0 -0
  489. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/register_user_data.py +0 -0
  490. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/register_user_with_link_course_data.py +0 -0
  491. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/release_info.py +0 -0
  492. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/release_message_max_time_setting.py +0 -0
  493. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/removed_permissions.py +0 -0
  494. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/rename_group_group_data.py +0 -0
  495. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/render_html_enabled_setting.py +0 -0
  496. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/repository_connection_limit_reached_exception.py +0 -0
  497. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/reset_token_time_setting.py +0 -0
  498. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/result_data_get_auto_test_get.py +0 -0
  499. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/result_data_get_task_result_get_all.py +0 -0
  500. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/result_data_post_section_create_division.py +0 -0
  501. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/retry_group_submission_grade_passback_enabled_setting.py +0 -0
  502. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/role_as_json_with_perms.py +0 -0
  503. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/root_file_trees_json.py +0 -0
  504. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/rubric_description_type.py +0 -0
  505. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/rubric_enabled_for_teacher_on_submissions_page_setting.py +0 -0
  506. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/rubric_item.py +0 -0
  507. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/rubric_item_input_as_json.py +0 -0
  508. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/rubric_lock_reason.py +0 -0
  509. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/rubric_row_base.py +0 -0
  510. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/rubric_row_base_input_as_json.py +0 -0
  511. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/rubric_row_base_input_base_as_json.py +0 -0
  512. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/rubrics_enabled_setting.py +0 -0
  513. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/rule_type.py +0 -0
  514. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/run_program_as_json.py +0 -0
  515. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/run_program_data.py +0 -0
  516. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/run_program_extra.py +0 -0
  517. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/run_program_input_as_json.py +0 -0
  518. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/run_program_log.py +0 -0
  519. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/saml2_provider_json.py +0 -0
  520. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/saml_ui_info.py +0 -0
  521. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/sections_in_submission_list_enabled_setting.py +0 -0
  522. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/send_registration_email_setting.py +0 -0
  523. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/server_time_correction_enabled_setting.py +0 -0
  524. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/server_time_diff_tolerance_setting.py +0 -0
  525. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/server_time_sync_interval_setting.py +0 -0
  526. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/session_restriction_context.py +0 -0
  527. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/session_restriction_data.py +0 -0
  528. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/setting_token_time_setting.py +0 -0
  529. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/setup_oauth_result.py +0 -0
  530. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/simple_submission_mode_enabled_setting.py +0 -0
  531. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/simple_submission_navigate_to_latest_editor_session_setting.py +0 -0
  532. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/site_email_setting.py +0 -0
  533. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/snippet.py +0 -0
  534. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/sso_infer_global_staff_role_setting.py +0 -0
  535. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/sso_username_decollision_enabled_setting.py +0 -0
  536. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/staged_assignment_importer_enabled_setting.py +0 -0
  537. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/start_payment_course_price_close_tab_data.py +0 -0
  538. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/start_payment_course_price_data.py +0 -0
  539. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/start_payment_course_price_redirect_data.py +0 -0
  540. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/started_transaction.py +0 -0
  541. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/student_payment_enabled_setting.py +0 -0
  542. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/student_view_enabled_setting.py +0 -0
  543. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/submission_validator_input_data.py +0 -0
  544. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/submissions_per_page_enabled_setting.py +0 -0
  545. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/task_result_state.py +0 -0
  546. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/tax_behavior.py +0 -0
  547. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/tenant.py +0 -0
  548. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/tenant_coupon.py +0 -0
  549. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/tenant_coupon_usage.py +0 -0
  550. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/tenant_coupon_with_code.py +0 -0
  551. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/tenant_coupon_without_code.py +0 -0
  552. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/tenant_course_statistics.py +0 -0
  553. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/tenant_of_tenant_price.py +0 -0
  554. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/tenant_permissions.py +0 -0
  555. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/tenant_price.py +0 -0
  556. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/tenant_role_as_json_with_perms.py +0 -0
  557. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/tenant_statistics.py +0 -0
  558. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/test_submission_copying_on_import_enabled_setting.py +0 -0
  559. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/timed_availability.py +0 -0
  560. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/timeframe_like.py +0 -0
  561. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/token_revoked_exception.py +0 -0
  562. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/transaction.py +0 -0
  563. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/transaction_state.py +0 -0
  564. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/types.py +0 -0
  565. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/update_peer_feedback_settings_assignment_data.py +0 -0
  566. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/update_set_auto_test_data.py +0 -0
  567. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/update_suite_auto_test_base_data.py +0 -0
  568. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/update_suite_auto_test_data.py +0 -0
  569. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/upgraded_lti_provider_exception.py +0 -0
  570. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/upload_submission_assignment_data.py +0 -0
  571. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/user.py +0 -0
  572. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/user_course.py +0 -0
  573. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/user_info_with_role.py +0 -0
  574. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/user_input.py +0 -0
  575. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/user_without_group.py +0 -0
  576. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/weak_password_exception.py +0 -0
  577. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/weak_password_feedback.py +0 -0
  578. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/webhook_base.py +0 -0
  579. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/webhook_configuration_disabled_as_json.py +0 -0
  580. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/webhook_configuration_enabled_as_json.py +0 -0
  581. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/work.py +0 -0
  582. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/work_origin.py +0 -0
  583. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/work_rubric_item.py +0 -0
  584. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/work_rubric_result_as_json.py +0 -0
  585. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/models/work_rubric_result_points_as_json.py +0 -0
  586. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/parsers.py +0 -0
  587. {codegrade-16.1.66 → codegrade-16.1.67}/codegrade/py.typed +0 -0
  588. {codegrade-16.1.66 → codegrade-16.1.67}/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.67
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.67"
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.67",
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.67",
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
@@ -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:
@@ -1185,6 +1193,8 @@ class AllSiteSettings(FrontendSiteSettings):
1185
1193
  login_token_before_time=parsed.LOGIN_TOKEN_BEFORE_TIME,
1186
1194
  reset_token_time=parsed.RESET_TOKEN_TIME,
1187
1195
  site_email=parsed.SITE_EMAIL,
1196
+ access_token_toast_warning_time=parsed.ACCESS_TOKEN_TOAST_WARNING_TIME,
1197
+ access_token_modal_warning_time=parsed.ACCESS_TOKEN_MODAL_WARNING_TIME,
1188
1198
  max_lines=parsed.MAX_LINES,
1189
1199
  notification_poll_time=parsed.NOTIFICATION_POLL_TIME,
1190
1200
  release_message_max_time=parsed.RELEASE_MESSAGE_MAX_TIME,
@@ -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.
@@ -446,6 +452,24 @@ class FrontendSiteSettings:
446
452
  rqa.SimpleValue.str,
447
453
  doc="The email shown to users as the email of CodeGrade.",
448
454
  ),
455
+ rqa.OptionalArgument(
456
+ "ACCESS_TOKEN_TOAST_WARNING_TIME",
457
+ rqa.RichValue.TimeDelta,
458
+ doc=(
459
+ "The amount of time before an access token expires when we"
460
+ " will show a toast message warning the user that their"
461
+ " session is about to expire."
462
+ ),
463
+ ),
464
+ rqa.OptionalArgument(
465
+ "ACCESS_TOKEN_MODAL_WARNING_TIME",
466
+ rqa.RichValue.TimeDelta,
467
+ doc=(
468
+ "The amount of time before an access token expires when we"
469
+ " will show a modal with a warning that the user's session"
470
+ " is about to expire."
471
+ ),
472
+ ),
449
473
  rqa.OptionalArgument(
450
474
  "MAX_LINES",
451
475
  rqa.SimpleValue.int,
@@ -1146,6 +1170,12 @@ class FrontendSiteSettings:
1146
1170
  )
1147
1171
  self.reset_token_time = maybe_from_nullable(self.reset_token_time)
1148
1172
  self.site_email = maybe_from_nullable(self.site_email)
1173
+ self.access_token_toast_warning_time = maybe_from_nullable(
1174
+ self.access_token_toast_warning_time
1175
+ )
1176
+ self.access_token_modal_warning_time = maybe_from_nullable(
1177
+ self.access_token_modal_warning_time
1178
+ )
1149
1179
  self.max_lines = maybe_from_nullable(self.max_lines)
1150
1180
  self.notification_poll_time = maybe_from_nullable(
1151
1181
  self.notification_poll_time
@@ -1434,6 +1464,14 @@ class FrontendSiteSettings:
1434
1464
  res["RESET_TOKEN_TIME"] = to_dict(self.reset_token_time.value)
1435
1465
  if self.site_email.is_just:
1436
1466
  res["SITE_EMAIL"] = to_dict(self.site_email.value)
1467
+ if self.access_token_toast_warning_time.is_just:
1468
+ res["ACCESS_TOKEN_TOAST_WARNING_TIME"] = to_dict(
1469
+ self.access_token_toast_warning_time.value
1470
+ )
1471
+ if self.access_token_modal_warning_time.is_just:
1472
+ res["ACCESS_TOKEN_MODAL_WARNING_TIME"] = to_dict(
1473
+ self.access_token_modal_warning_time.value
1474
+ )
1437
1475
  if self.max_lines.is_just:
1438
1476
  res["MAX_LINES"] = to_dict(self.max_lines.value)
1439
1477
  if self.notification_poll_time.is_just:
@@ -1757,6 +1795,8 @@ class FrontendSiteSettings:
1757
1795
  login_token_before_time=parsed.LOGIN_TOKEN_BEFORE_TIME,
1758
1796
  reset_token_time=parsed.RESET_TOKEN_TIME,
1759
1797
  site_email=parsed.SITE_EMAIL,
1798
+ access_token_toast_warning_time=parsed.ACCESS_TOKEN_TOAST_WARNING_TIME,
1799
+ access_token_modal_warning_time=parsed.ACCESS_TOKEN_MODAL_WARNING_TIME,
1760
1800
  max_lines=parsed.MAX_LINES,
1761
1801
  notification_poll_time=parsed.NOTIFICATION_POLL_TIME,
1762
1802
  release_message_max_time=parsed.RELEASE_MESSAGE_MAX_TIME,
@@ -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
@@ -340,6 +346,8 @@ SiteSettingInput = t.Union[
340
346
  MaxDynamoFileSizeSetting,
341
347
  MaxDocumentUpdateSizeSetting,
342
348
  JwtAccessTokenExpiresSetting,
349
+ AccessTokenToastWarningTimeSetting,
350
+ AccessTokenModalWarningTimeSetting,
343
351
  MaxLinesSetting,
344
352
  NotificationPollTimeSetting,
345
353
  ReleaseMessageMaxTimeSetting,
@@ -477,6 +485,8 @@ SiteSettingInputParser = rqa.Lazy(
477
485
  ParserFor.make(MaxDynamoFileSizeSetting),
478
486
  ParserFor.make(MaxDocumentUpdateSizeSetting),
479
487
  ParserFor.make(JwtAccessTokenExpiresSetting),
488
+ ParserFor.make(AccessTokenToastWarningTimeSetting),
489
+ ParserFor.make(AccessTokenModalWarningTimeSetting),
480
490
  ParserFor.make(MaxLinesSetting),
481
491
  ParserFor.make(NotificationPollTimeSetting),
482
492
  ParserFor.make(ReleaseMessageMaxTimeSetting),
@@ -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 UserLoginResponse:
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 UserLoginResponse:
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 UserLoginResponse:
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 UserLoginResponse:
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
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "codegrade"
3
- version = "16.1.66"
3
+ version = "16.1.67"
4
4
  description = "A client library for accessing CodeGrade"
5
5
  license = "AGPL-3.0-only OR BSD-3-Clause-Clear"
6
6
  authors = []
@@ -27,6 +27,7 @@ mypy = "^1.3.0"
27
27
  sphinx = "^6.2.1"
28
28
  sphinx-autodoc-typehints = "^1.23.0"
29
29
  m2r2 = "^0.3.1"
30
+ setuptools = "^74.1.2"
30
31
  # Is needed because of https://github.com/CrossNox/m2r2/issues/40 or
31
32
  # https://github.com/miyakogi/m2r/issues/66
32
33
  mistune = '<2.0.0'
@@ -21,7 +21,7 @@ install_requires = \
21
21
 
22
22
  setup_kwargs = {
23
23
  'name': 'codegrade',
24
- 'version': '16.1.66',
24
+ 'version': '16.1.67',
25
25
  'description': 'A client library for accessing CodeGrade',
26
26
  'long_description': '# CodeGrade API\n\nThis library makes it easier to use the CodeGrade API. Its API allows you to\nautomate your usage of CodeGrade. We are currently still busy documenting the\nentire API, but everything that is possible in the UI of CodeGrade is also\npossible through the API.\n## Installation\nYou can install the library through [pypi](https://pypi.org/), simply run\n`python3 -m pip install codegrade`. If you want to get a dev version with support\nfor the latest features, simply email [support@codegrade.com](mailto:support@codegrade.com)\nand we\'ll provide you with a dev version.\n## Usage\nFirst, create a client:\n\n```python\nimport codegrade\n\n# Don\'t store your password in your code!\nwith codegrade.login(\n username=\'my-username\',\n password=os.getenv(\'CG_PASSWORD\'),\n tenant=\'My University\',\n) as client:\n pass\n\n# Or supply information interactively.\nwith codegrade.login_from_cli() as client:\n pass\n```\n\nNow call your endpoint and use your models:\n\n```python\nfrom codegrade.models import PatchCourseData\n\ncourses = client.course.get_all()\nfor course in courses:\n client.course.patch(\n PatchCourseData(name=course.name + \' (NEW)\'),\n course_id=course.id,\n )\n\n# Or, simply use dictionaries.\nfor course in courses:\n client.course.patch(\n {"name": course.name + \' (NEW)\'},\n course_id=course.id,\n )\n```\n\nFor the complete documentation go to\nhttps://python.api.codegrade.com.\n## Backwards compatibility\nCodeGrade is constantly upgrading its API, but we try to minimize backwards\nincompatible changes. We\'ll announce every backwards incompatible change in the\n[changelog](http://codegrade.com/changelog). A new version of the API\nclient is released with every release of CodeGrade, which is approximately every\nmonth. To upgrade simply run `pip install --upgrade codegrade`.\n## Supported python versions\nWe support python 3.6 and above, `pypy` is currently not tested but should work\njust fine.\n## License\nThe library is licensed under AGPL-3.0-only or BSD-3-Clause-Clear.',
27
27
  'author': 'None',
File without changes