codegrade 16.1.89__tar.gz → 16.1.90__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 (610) hide show
  1. {codegrade-16.1.89 → codegrade-16.1.90}/PKG-INFO +10 -15
  2. {codegrade-16.1.89 → codegrade-16.1.90}/cg_dt_utils/__init__.py +43 -63
  3. codegrade-16.1.90/cg_maybe/__init__.py +9 -0
  4. {codegrade-16.1.89 → codegrade-16.1.90}/cg_maybe/_just.py +22 -24
  5. {codegrade-16.1.89 → codegrade-16.1.90}/cg_maybe/_maybe.py +2 -4
  6. {codegrade-16.1.89 → codegrade-16.1.90}/cg_maybe/_nothing.py +16 -21
  7. codegrade-16.1.90/cg_maybe/_type_helpers.py +34 -0
  8. {codegrade-16.1.89 → codegrade-16.1.90}/cg_maybe/cg_maybe_plugin.py +23 -24
  9. {codegrade-16.1.89 → codegrade-16.1.90}/cg_maybe/utils.py +5 -7
  10. codegrade-16.1.90/cg_request_args/__init__.py +71 -0
  11. {codegrade-16.1.89 → codegrade-16.1.90}/cg_request_args/_any_value.py +7 -9
  12. {codegrade-16.1.89 → codegrade-16.1.90}/cg_request_args/_base.py +67 -71
  13. {codegrade-16.1.89 → codegrade-16.1.90}/cg_request_args/_convert.py +51 -57
  14. {codegrade-16.1.89 → codegrade-16.1.90}/cg_request_args/_enum.py +12 -13
  15. {codegrade-16.1.89 → codegrade-16.1.90}/cg_request_args/_form.py +7 -10
  16. {codegrade-16.1.89 → codegrade-16.1.90}/cg_request_args/_lazy.py +7 -6
  17. {codegrade-16.1.89 → codegrade-16.1.90}/cg_request_args/_list.py +9 -10
  18. {codegrade-16.1.89 → codegrade-16.1.90}/cg_request_args/_literal.py +7 -7
  19. {codegrade-16.1.89 → codegrade-16.1.90}/cg_request_args/_mapping.py +84 -86
  20. {codegrade-16.1.89 → codegrade-16.1.90}/cg_request_args/_multipart.py +17 -17
  21. {codegrade-16.1.89 → codegrade-16.1.90}/cg_request_args/_nullable.py +7 -7
  22. {codegrade-16.1.89 → codegrade-16.1.90}/cg_request_args/_parse_utils.py +11 -13
  23. {codegrade-16.1.89 → codegrade-16.1.90}/cg_request_args/_query.py +5 -5
  24. {codegrade-16.1.89 → codegrade-16.1.90}/cg_request_args/_rich_value.py +61 -61
  25. {codegrade-16.1.89 → codegrade-16.1.90}/cg_request_args/_set.py +7 -7
  26. {codegrade-16.1.89 → codegrade-16.1.90}/cg_request_args/_swagger_utils.py +8 -9
  27. {codegrade-16.1.89 → codegrade-16.1.90}/cg_request_args/_swaggerize.py +30 -35
  28. {codegrade-16.1.89 → codegrade-16.1.90}/cg_request_args/_utils.py +30 -11
  29. {codegrade-16.1.89 → codegrade-16.1.90}/cg_request_args/exceptions.py +21 -20
  30. {codegrade-16.1.89 → codegrade-16.1.90}/cg_request_args/request_args_plugin.py +135 -103
  31. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/__init__.py +52 -11
  32. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/about.py +2 -5
  33. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/assignment.py +38 -111
  34. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/auto_test.py +25 -72
  35. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/comment.py +9 -24
  36. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/course.py +42 -111
  37. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/course_price.py +8 -21
  38. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/file.py +3 -8
  39. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/git_provider.py +6 -15
  40. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/group.py +7 -18
  41. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/group_set.py +6 -15
  42. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/login_link.py +2 -7
  43. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/lti.py +112 -23
  44. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/notification.py +5 -12
  45. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/oauth_provider.py +4 -13
  46. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/oauth_token.py +6 -15
  47. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/permission.py +3 -6
  48. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/plagiarism.py +5 -12
  49. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/role.py +4 -9
  50. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/saml.py +2 -5
  51. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/section.py +8 -21
  52. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/site_settings.py +3 -8
  53. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/snippet.py +6 -15
  54. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/sso_provider.py +3 -6
  55. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/submission.py +14 -35
  56. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/task_result.py +6 -15
  57. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/tenant.py +17 -56
  58. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/transaction.py +4 -9
  59. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/user.py +8 -27
  60. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/user_setting.py +2 -11
  61. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/webhook.py +3 -5
  62. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/client.py +107 -250
  63. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/__init__.py +10 -0
  64. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/about.py +0 -3
  65. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/all_site_settings.py +1 -6
  66. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/any_auto_test_step_as_json.py +0 -2
  67. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/any_non_redacted_auto_test_step_as_json.py +0 -3
  68. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/any_redacted_auto_test_step_as_json.py +0 -3
  69. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/assignment.py +0 -3
  70. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/assignment_grader.py +0 -2
  71. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/assignment_section_timeframe.py +0 -3
  72. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_fixture.py +0 -2
  73. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_quality_comment.py +0 -3
  74. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_result_with_extra_data.py +0 -3
  75. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_step_base_input_as_json.py +0 -2
  76. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_step_validation_exception.py +0 -3
  77. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/base_comment_base_with_extended_replies.py +0 -2
  78. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/base_comment_base_with_normal_replies.py +0 -2
  79. codegrade-16.1.90/codegrade/models/base_launch_data.py +84 -0
  80. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/base_lti1p1_provider.py +0 -3
  81. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/base_lti1p3_provider.py +0 -3
  82. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/check_points_as_json.py +0 -3
  83. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/check_points_input_as_json.py +0 -3
  84. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/code_quality_as_json.py +0 -3
  85. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/code_quality_data.py +0 -3
  86. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/code_quality_input_as_json.py +0 -3
  87. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/coupon_with_code.py +0 -3
  88. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/coupon_without_code.py +0 -3
  89. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/course_price.py +0 -3
  90. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/course_role.py +0 -2
  91. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/course_role_as_json_with_perms.py +0 -3
  92. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/custom_output_as_json.py +0 -3
  93. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/custom_output_input_as_json.py +0 -3
  94. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/custom_output_log.py +0 -3
  95. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/custom_output_log_base.py +0 -2
  96. codegrade-16.1.90/codegrade/models/deep_link_lti_data.py +98 -0
  97. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/deleted_comment_reply.py +0 -3
  98. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/directory_with_children.py +0 -2
  99. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/disabled_setting_exception.py +0 -3
  100. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/extended_auto_test_result.py +0 -3
  101. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/extended_auto_test_run.py +0 -3
  102. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/extended_course.py +0 -3
  103. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/extended_course_registration_link.py +0 -3
  104. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/extended_course_section.py +0 -2
  105. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/extended_group.py +0 -3
  106. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/extended_job.py +0 -3
  107. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/extended_non_deleted_comment_reply.py +0 -3
  108. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/extended_tenant.py +0 -3
  109. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/extended_transaction.py +0 -3
  110. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/extended_user.py +0 -3
  111. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/extended_work.py +0 -3
  112. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/extract_file_tree_directory.py +0 -2
  113. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/failed_to_send_email_exception.py +0 -3
  114. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/feedback_with_replies.py +0 -2
  115. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/feedback_without_replies.py +0 -2
  116. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/finalized_lti1p1_provider.py +0 -3
  117. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/finalized_lti1p3_provider.py +0 -3
  118. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/first_phase_lti_launch_exception.py +0 -3
  119. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/frontend_site_settings.py +1 -3
  120. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/general_feedback_comment_base.py +0 -3
  121. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/general_feedback_comment_base_with_extended_replies.py +0 -3
  122. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/group_not_ready_for_submission_exception.py +0 -3
  123. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/ignored_files_exception.py +0 -3
  124. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/inline_feedback_comment_base.py +0 -3
  125. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/inline_feedback_comment_base_with_extended_replies.py +0 -3
  126. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/invalid_group_exception.py +0 -3
  127. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/invalid_io_cases_exception.py +0 -3
  128. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/invalid_options_exception.py +0 -3
  129. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/io_test_as_json.py +0 -3
  130. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/io_test_data.py +0 -3
  131. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/io_test_input_as_json.py +0 -3
  132. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/io_test_log.py +0 -2
  133. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/io_test_step_log.py +0 -3
  134. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/junit_test_as_json.py +0 -3
  135. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/junit_test_data.py +0 -2
  136. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/junit_test_input_as_json.py +0 -3
  137. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/junit_test_log.py +0 -3
  138. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/junit_test_log_base.py +0 -2
  139. codegrade-16.1.90/codegrade/models/launch_second_phase_lti_data.py +49 -0
  140. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/lms_capabilities.py +0 -2
  141. codegrade-16.1.90/codegrade/models/lti_assignment_launch_data.py +78 -0
  142. codegrade-16.1.90/codegrade/models/lti_deep_link_response.py +58 -0
  143. codegrade-16.1.90/codegrade/models/lti_deep_link_result.py +67 -0
  144. codegrade-16.1.90/codegrade/models/lti_launch_result.py +67 -0
  145. codegrade-16.1.90/codegrade/models/lti_template_preview_launch_data.py +78 -0
  146. codegrade-16.1.90/codegrade/models/lti_version.py +11 -0
  147. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/missing_cookie_error.py +0 -3
  148. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/non_deleted_comment_reply.py +0 -3
  149. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/non_finalized_lti1p1_provider.py +0 -3
  150. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/non_finalized_lti1p3_provider.py +0 -3
  151. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/notification_comment_reply_notification_as_json.py +0 -3
  152. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/notification_general_feedback_reply_notification_as_json.py +0 -3
  153. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/parse_api_exception.py +0 -3
  154. codegrade-16.1.90/codegrade/models/pearson_template.py +67 -0
  155. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/permission_exception.py +0 -3
  156. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/quality_test_log.py +0 -3
  157. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/quality_test_log_base.py +0 -2
  158. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/release_info.py +0 -2
  159. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/repository_connection_limit_reached_exception.py +0 -3
  160. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/role_as_json_with_perms.py +0 -2
  161. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/rubric_item.py +0 -2
  162. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/rubric_item_input_as_json.py +0 -2
  163. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/rubric_row_base_input_as_json.py +0 -3
  164. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/run_program_as_json.py +0 -3
  165. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/run_program_input_as_json.py +0 -3
  166. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/run_program_log.py +0 -2
  167. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/tenant_coupon_with_code.py +0 -3
  168. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/tenant_coupon_without_code.py +0 -3
  169. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/tenant_price.py +0 -3
  170. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/tenant_role_as_json_with_perms.py +0 -2
  171. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/token_revoked_exception.py +0 -3
  172. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/update_suite_auto_test_data.py +0 -3
  173. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/upgraded_lti_provider_exception.py +0 -3
  174. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/user.py +0 -2
  175. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/weak_password_exception.py +0 -3
  176. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/work_rubric_item.py +0 -3
  177. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/parsers.py +3 -3
  178. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/utils.py +2 -3
  179. codegrade-16.1.90/pyproject.toml +58 -0
  180. codegrade-16.1.89/cg_maybe/__init__.py +0 -7
  181. codegrade-16.1.89/cg_maybe/_type_helpers.py +0 -29
  182. codegrade-16.1.89/cg_request_args/__init__.py +0 -27
  183. codegrade-16.1.89/pyproject.toml +0 -61
  184. codegrade-16.1.89/setup.py +0 -39
  185. {codegrade-16.1.89 → codegrade-16.1.90}/README.md +0 -0
  186. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/_api/__init__.py +0 -0
  187. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/errors.py +0 -0
  188. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/_base_price.py +0 -0
  189. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/_saml_ui_logo_info.py +0 -0
  190. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/_submission_rubric_item_data_parser.py +0 -0
  191. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/abstract_role.py +0 -0
  192. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/access_token_modal_warning_time_setting.py +0 -0
  193. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/access_token_toast_warning_time_setting.py +0 -0
  194. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/add_users_section_data.py +0 -0
  195. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/ai_assistant_enabled_setting.py +0 -0
  196. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/all_auto_test_results.py +0 -0
  197. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/always_update_pii_with_lti_setting.py +0 -0
  198. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/analytics_enabled_setting.py +0 -0
  199. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/any_error.py +2 -2
  200. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/api_codes.py +0 -0
  201. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/assignment_anonymization_algo.py +0 -0
  202. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/assignment_default_grading_scale_points_setting.py +0 -0
  203. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/assignment_default_grading_scale_setting.py +0 -0
  204. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/assignment_description_enabled_setting.py +0 -0
  205. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/assignment_description_on_teachers_submissions_page_setting.py +0 -0
  206. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/assignment_done_type.py +0 -0
  207. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/assignment_export_column.py +0 -0
  208. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/assignment_feedback.py +0 -0
  209. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/assignment_grading_scale_points_enabled_setting.py +0 -0
  210. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/assignment_kind.py +0 -0
  211. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/assignment_login_link.py +0 -0
  212. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/assignment_max_points_enabled_setting.py +0 -0
  213. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/assignment_peer_feedback_connection.py +0 -0
  214. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/assignment_peer_feedback_settings.py +0 -0
  215. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/assignment_percentage_decimals_setting.py +0 -0
  216. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/assignment_percentage_grading_settings.py +0 -0
  217. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/assignment_point_decimals_setting.py +0 -0
  218. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/assignment_points_grading_settings.py +0 -0
  219. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/assignment_state_enum.py +0 -0
  220. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/assignment_submission_mode.py +0 -0
  221. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/assignment_template.py +0 -0
  222. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/assignment_timeframes.py +0 -0
  223. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/assistant_tools_enabled_setting.py +0 -0
  224. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/at_image_caching_enabled_setting.py +0 -0
  225. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test.py +0 -0
  226. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_capture_points_message_setting.py +0 -0
  227. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_checkpoint_message_setting.py +0 -0
  228. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_code_quality_message_setting.py +0 -0
  229. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_enabled_setting.py +0 -0
  230. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_global_setup_output.py +0 -0
  231. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_global_setup_script.py +0 -0
  232. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_heartbeat_interval_setting.py +0 -0
  233. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_heartbeat_max_missed_setting.py +0 -0
  234. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_io_test_message_setting.py +0 -0
  235. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_io_test_sub_message_setting.py +0 -0
  236. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_max_concurrent_batch_runs_setting.py +0 -0
  237. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_max_global_setup_time_setting.py +0 -0
  238. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_max_jobs_per_runner_setting.py +0 -0
  239. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_max_per_student_setup_time_setting.py +0 -0
  240. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_max_result_not_started_setting.py +0 -0
  241. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_max_time_command_setting.py +0 -0
  242. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_max_unit_test_metadata_length_setting.py +0 -0
  243. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_result.py +0 -0
  244. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_result_state.py +0 -0
  245. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_run.py +0 -0
  246. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_run_program_message_setting.py +0 -0
  247. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_runner.py +0 -0
  248. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_runner_state.py +0 -0
  249. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_set.py +0 -0
  250. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_step_base.py +0 -0
  251. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_step_base_as_json.py +0 -0
  252. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_step_log_base.py +0 -0
  253. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_step_result.py +0 -0
  254. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_step_result_state.py +0 -0
  255. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_suite.py +0 -0
  256. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/auto_test_unit_test_message_setting.py +0 -0
  257. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/automatic_lti1p3_assignment_import_setting.py +0 -0
  258. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/automatic_lti_role_enabled_setting.py +0 -0
  259. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/base_about.py +0 -0
  260. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/base_auto_test_quality_comment.py +0 -0
  261. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/base_comment_base.py +0 -0
  262. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/base_comment_reply.py +0 -0
  263. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/base_course_coupon.py +0 -0
  264. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/base_directory.py +0 -0
  265. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/base_error.py +0 -0
  266. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/base_file.py +0 -0
  267. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/base_lms_capabilities.py +0 -0
  268. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/base_lti_provider.py +0 -0
  269. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/base_notification.py +0 -0
  270. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/base_release_info.py +0 -0
  271. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/base_rubric_item.py +0 -0
  272. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/base_tenant_coupon.py +0 -0
  273. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/blackboard_zip_upload_enabled_setting.py +0 -0
  274. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/bulk_enroll_course_data.py +0 -0
  275. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/canvas_course_id_copying_enabled_setting.py +0 -0
  276. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/cg_ignore_version.py +0 -0
  277. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/change_user_role_course_data.py +0 -0
  278. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/check_points_data.py +0 -0
  279. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/check_points_extra.py +0 -0
  280. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/clone_result.py +0 -0
  281. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/code_editor_output_viewer_title_setting.py +0 -0
  282. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/code_editor_start_on_assignment_description_setting.py +0 -0
  283. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/code_quality_base_data.py +0 -0
  284. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/code_quality_extra.py +0 -0
  285. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/code_quality_penalties.py +0 -0
  286. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/column_range.py +0 -0
  287. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/comment_base.py +0 -0
  288. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/comment_reply.py +0 -0
  289. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/comment_reply_edit.py +0 -0
  290. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/comment_reply_type.py +0 -0
  291. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/comment_type.py +0 -0
  292. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/community_library_publishing_setting.py +0 -0
  293. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/community_library_setting.py +0 -0
  294. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/connect_repository_git_provider_data.py +0 -0
  295. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/copy_auto_test_data.py +0 -0
  296. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/copy_rubric_assignment_data.py +0 -0
  297. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/coupon_data_parser.py +0 -0
  298. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/course.py +0 -0
  299. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/course_bulk_enroll_result.py +0 -0
  300. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/course_bulk_register_enabled_setting.py +0 -0
  301. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/course_coupon.py +0 -0
  302. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/course_coupon_usage.py +0 -0
  303. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/course_gradebook_enabled_setting.py +0 -0
  304. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/course_gradebook_render_warning_size_setting.py +0 -0
  305. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/course_of_course_price.py +0 -0
  306. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/course_of_tenant_coupon_usage.py +0 -0
  307. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/course_perm_map.py +0 -0
  308. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/course_permission.py +0 -0
  309. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/course_register_enabled_setting.py +0 -0
  310. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/course_registration_link.py +0 -0
  311. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/course_section.py +0 -0
  312. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/course_section_division.py +0 -0
  313. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/course_section_division_connection.py +0 -0
  314. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/course_section_division_user.py +0 -0
  315. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/course_snippet.py +0 -0
  316. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/course_state.py +0 -0
  317. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/course_statistics_as_json.py +0 -0
  318. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/create_assignment_course_data.py +0 -0
  319. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/create_auto_test_data.py +0 -0
  320. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/create_comment_data.py +0 -0
  321. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/create_comment_reply_data.py +0 -0
  322. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/create_course_data.py +0 -0
  323. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/create_division_section_data.py +0 -0
  324. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/create_group_group_set_data.py +0 -0
  325. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/create_group_set_course_data.py +0 -0
  326. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/create_lti_data.py +0 -0
  327. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/create_output_html_proxy_auto_test_data.py +0 -0
  328. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/create_proxy_submission_data.py +0 -0
  329. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/create_repository_git_provider_data.py +0 -0
  330. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/create_role_course_data.py +0 -0
  331. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/create_section_course_data.py +0 -0
  332. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/create_snippet_course_data.py +0 -0
  333. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/create_snippet_data.py +0 -0
  334. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/create_sso_provider_data.py +0 -0
  335. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/create_tenant_data.py +0 -0
  336. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/csv_large_file_limit_setting.py +0 -0
  337. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/csv_too_many_errors_limit_setting.py +0 -0
  338. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/currency.py +0 -0
  339. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/custom_output_data.py +0 -0
  340. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/custom_output_extra.py +0 -0
  341. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/default_course_ta_role_setting.py +0 -0
  342. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/default_course_teacher_role_setting.py +0 -0
  343. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/default_submission_page_tab_setting.py +0 -0
  344. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/deletion_type.py +0 -0
  345. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/display_grades_enabled_setting.py +0 -0
  346. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/editor_enabled_for_teachers_setting.py +0 -0
  347. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/editor_enabled_setting.py +0 -0
  348. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/email_notification_types.py +0 -0
  349. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/email_students_enabled_setting.py +0 -0
  350. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/email_users_course_data.py +0 -0
  351. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/exam_login_max_length_setting.py +0 -0
  352. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/export_assignment_csv_data.py +0 -0
  353. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/export_assignment_data.py +0 -0
  354. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/export_assignment_files_data.py +0 -0
  355. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/extract_file_tree_file.py +0 -0
  356. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/feedback_base.py +0 -0
  357. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/feedback_threads_initially_collapsed_setting.py +0 -0
  358. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/file_deletion.py +0 -0
  359. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/file_rule.py +0 -0
  360. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/file_rule_input_data.py +0 -0
  361. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/file_tree.py +0 -0
  362. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/file_type.py +0 -0
  363. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/first_day_of_week_from_locale_setting.py +0 -0
  364. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/fixed_availability.py +0 -0
  365. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/fixed_grade_availability.py +0 -0
  366. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/fixture_like.py +0 -0
  367. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/fraction.py +0 -0
  368. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/general_feedback_extra.py +0 -0
  369. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/git_repositories_page.py +0 -0
  370. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/git_repository_like.py +0 -0
  371. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/git_user_info.py +0 -0
  372. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/github_template_repo_enabled_setting.py +0 -0
  373. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/global_perm_map.py +0 -0
  374. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/global_permission.py +0 -0
  375. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/grade_history.py +0 -0
  376. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/grade_origin.py +0 -0
  377. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/grading_notifications_enabled_setting.py +0 -0
  378. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/group.py +0 -0
  379. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/group_set.py +0 -0
  380. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/groups_enabled_setting.py +0 -0
  381. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/has_unread_notifcation_json.py +0 -0
  382. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/health_information.py +0 -0
  383. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/hide_code_editor_filetree_controls_with_only_quiz_steps_setting.py +0 -0
  384. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/hide_code_editor_output_viewer_with_only_quiz_steps_setting.py +0 -0
  385. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/hide_empty_rubric_row_description_setting.py +0 -0
  386. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/hide_no_deadline_enabled_setting.py +0 -0
  387. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/hubspot_syncing_enabled_setting.py +0 -0
  388. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/ignore_handling.py +0 -0
  389. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/import_into_assignment_data.py +0 -0
  390. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/import_into_course_data.py +0 -0
  391. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/incremental_rubric_submission_enabled_setting.py +0 -0
  392. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/inline_feedback_extra.py +0 -0
  393. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/inline_feedback_on_quizzes_enabled_setting.py +0 -0
  394. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/inline_rubric_viewer_enabled_setting.py +0 -0
  395. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/io_test_base_data.py +0 -0
  396. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/io_test_extra.py +0 -0
  397. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/io_test_input_case.py +0 -0
  398. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/io_test_option.py +0 -0
  399. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/io_test_step_log_base.py +0 -0
  400. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/is_admin_permission_enabled_setting.py +0 -0
  401. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/is_pearson_setting.py +0 -0
  402. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/job.py +0 -0
  403. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/json_create_auto_test.py +0 -0
  404. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/json_create_tenant.py +0 -0
  405. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/json_patch_auto_test.py +0 -0
  406. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/json_patch_submit_types_assignment.py +0 -0
  407. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/junit_test_base_data.py +0 -0
  408. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/junit_test_extra.py +0 -0
  409. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/jupyter_notebook_editor_enabled_setting.py +0 -0
  410. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/jupyter_notebook_running_enabled_setting.py +0 -0
  411. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/jwt_access_token_expires_setting.py +0 -0
  412. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/legacy_features.py +0 -0
  413. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/line_range.py +0 -0
  414. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/linters_enabled_setting.py +0 -0
  415. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/login_token_before_time_setting.py +0 -0
  416. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/login_user_data.py +0 -0
  417. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/logout_response.py +0 -0
  418. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/logout_user_data.py +0 -0
  419. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/lti1p1_provider.py +0 -0
  420. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/lti1p1_provider_data.py +0 -0
  421. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/lti1p3_nonce_and_state_validation_enabled_setting.py +0 -0
  422. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/lti1p3_parse_most_privileged_role_setting.py +0 -0
  423. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/lti1p3_prevent_nonce_reuse_enabled_setting.py +0 -0
  424. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/lti1p3_provider.py +0 -0
  425. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/lti1p3_provider_data.py +0 -0
  426. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/lti1p3_provider_presentation_as_json.py +0 -0
  427. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/lti1p3_system_role_from_context_role_setting.py +0 -0
  428. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/lti_enabled_setting.py +0 -0
  429. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/lti_launch_data_logging_setting.py +0 -0
  430. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/lti_lock_date_copying_enabled_setting.py +0 -0
  431. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/lti_provider_base.py +0 -0
  432. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/lti_unset_deadline_lock_date_enabled_setting.py +0 -0
  433. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/max_document_update_size_setting.py +0 -0
  434. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/max_dynamo_file_size_setting.py +0 -0
  435. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/max_dynamo_submission_size_setting.py +0 -0
  436. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/max_file_size_setting.py +0 -0
  437. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/max_large_upload_size_setting.py +0 -0
  438. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/max_lines_setting.py +0 -0
  439. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/max_normal_upload_size_setting.py +0 -0
  440. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/max_number_of_files_setting.py +0 -0
  441. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/max_plagiarism_matches_setting.py +0 -0
  442. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/max_user_setting_amount_setting.py +0 -0
  443. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/min_password_score_setting.py +0 -0
  444. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/mirror_file_result.py +0 -0
  445. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/missing_file.py +0 -0
  446. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/name_and_email_from_nrps_only_setting.py +0 -0
  447. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/new_auto_test_allowed_initial_build_ids_setting.py +0 -0
  448. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/new_auto_test_build_max_command_time_setting.py +0 -0
  449. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/new_auto_test_build_output_limit_setting.py +0 -0
  450. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/new_auto_test_copying_enabled_setting.py +0 -0
  451. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/new_auto_test_current_initial_build_ids_setting.py +0 -0
  452. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/new_auto_test_diff_viewer_enabled_setting.py +0 -0
  453. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/new_auto_test_enabled_setting.py +0 -0
  454. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/new_auto_test_initial_build_id_setting.py +0 -0
  455. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/new_auto_test_max_dynamodb_size_setting.py +0 -0
  456. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/new_auto_test_max_file_size_setting.py +0 -0
  457. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/new_auto_test_max_output_files_size_setting.py +0 -0
  458. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/new_auto_test_max_storage_size_setting.py +0 -0
  459. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/new_auto_test_old_submission_age_setting.py +0 -0
  460. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/new_auto_test_test_max_command_time_setting.py +0 -0
  461. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/new_auto_test_test_output_limit_setting.py +0 -0
  462. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/new_auto_test_uncollapsing_step_output_delay_setting.py +0 -0
  463. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/no_permissions.py +0 -0
  464. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/non_present_preference.py +0 -0
  465. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/notification.py +0 -0
  466. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/notification_poll_time_setting.py +0 -0
  467. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/notification_reasons.py +0 -0
  468. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/notification_setting.py +0 -0
  469. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/notification_setting_option.py +0 -0
  470. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/notifications_json.py +0 -0
  471. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/oauth_provider.py +0 -0
  472. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/oauth_token.py +0 -0
  473. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/option.py +0 -0
  474. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/options_input_data.py +0 -0
  475. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/output_viewer_animation_limit_lines_count_setting.py +0 -0
  476. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/output_viewer_auto_expand_failed_steps_setting.py +0 -0
  477. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/patch1_p1_provider_lti_data.py +0 -0
  478. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/patch1_p3_provider_lti_data.py +0 -0
  479. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/patch_all_notification_data.py +0 -0
  480. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/patch_assignment_data.py +0 -0
  481. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/patch_auto_test_data.py +0 -0
  482. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/patch_comment_reply_data.py +0 -0
  483. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/patch_course_data.py +0 -0
  484. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/patch_grader_submission_data.py +0 -0
  485. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/patch_notification_data.py +0 -0
  486. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/patch_notification_setting_user_setting_data.py +0 -0
  487. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/patch_provider_lti_data.py +0 -0
  488. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/patch_role_course_data.py +0 -0
  489. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/patch_role_data.py +0 -0
  490. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/patch_role_tenant_data.py +0 -0
  491. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/patch_rubric_category_type_assignment_data.py +0 -0
  492. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/patch_rubric_result_submission_data.py +0 -0
  493. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/patch_section_data.py +0 -0
  494. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/patch_settings_tenant_data.py +0 -0
  495. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/patch_site_settings_data.py +0 -0
  496. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/patch_snippet_course_data.py +0 -0
  497. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/patch_snippet_data.py +0 -0
  498. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/patch_submission_data.py +0 -0
  499. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/patch_submit_types_assignment_data.py +0 -0
  500. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/patch_tenant_data.py +0 -0
  501. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/patch_ui_preference_user_setting_data.py +0 -0
  502. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/patch_user_data.py +0 -0
  503. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/pay_with_coupon_course_price_data.py +0 -0
  504. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/pearson_templates_setting.py +0 -0
  505. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/pearson_try_out_coding_question_enabled_setting.py +0 -0
  506. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/peer_feedback_enabled_setting.py +0 -0
  507. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/plagiarism_bulk_export_enabled_setting.py +0 -0
  508. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/plagiarism_bulk_export_max_cases_setting.py +0 -0
  509. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/plagiarism_case.py +0 -0
  510. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/plagiarism_pdf_export_enabled_setting.py +0 -0
  511. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/plagiarism_run.py +0 -0
  512. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/plagiarism_run_plagiarism_assignment_as_json.py +0 -0
  513. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/plagiarism_run_plagiarism_course_as_json.py +0 -0
  514. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/plagiarism_state.py +0 -0
  515. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/post_oauth_token_data.py +0 -0
  516. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/present_preference.py +0 -0
  517. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/prompt_engineering_step_enabled_setting.py +0 -0
  518. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/proxy.py +0 -0
  519. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/put_description_assignment_data.py +0 -0
  520. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/put_enroll_link_course_data.py +0 -0
  521. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/put_price_course_data.py +0 -0
  522. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/put_price_tenant_data.py +0 -0
  523. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/put_rubric_assignment_data.py +0 -0
  524. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/quality_comment_severity.py +0 -0
  525. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/quality_comments_in_code_editor_setting.py +0 -0
  526. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/quiz_single_question_mode_hide_run_button_enabled_setting.py +0 -0
  527. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/register_enabled_setting.py +0 -0
  528. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/register_user_data.py +0 -0
  529. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/register_user_with_link_course_data.py +0 -0
  530. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/release_message_max_time_setting.py +0 -0
  531. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/removed_permissions.py +0 -0
  532. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/rename_group_group_data.py +0 -0
  533. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/render_html_enabled_setting.py +0 -0
  534. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/reset_token_time_setting.py +0 -0
  535. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/result_data_get_auto_test_get.py +0 -0
  536. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/result_data_get_task_result_get_all.py +0 -0
  537. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/result_data_post_section_create_division.py +0 -0
  538. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/retry_group_submission_grade_passback_enabled_setting.py +0 -0
  539. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/root_file_trees_json.py +0 -0
  540. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/rubric_description_type.py +0 -0
  541. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/rubric_enabled_for_teacher_on_submissions_page_setting.py +0 -0
  542. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/rubric_lock_reason.py +0 -0
  543. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/rubric_row_base.py +0 -0
  544. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/rubric_row_base_input_base_as_json.py +0 -0
  545. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/rubrics_enabled_setting.py +0 -0
  546. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/rule_type.py +0 -0
  547. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/run_program_data.py +0 -0
  548. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/run_program_extra.py +0 -0
  549. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/saml2_provider_json.py +0 -0
  550. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/saml_ui_info.py +0 -0
  551. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/sections_in_submission_list_enabled_setting.py +0 -0
  552. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/send_registration_email_setting.py +0 -0
  553. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/server_time_correction_enabled_setting.py +0 -0
  554. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/server_time_diff_tolerance_setting.py +0 -0
  555. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/server_time_sync_interval_setting.py +0 -0
  556. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/session_restriction_context.py +0 -0
  557. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/session_restriction_data.py +0 -0
  558. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/setting_token_time_setting.py +0 -0
  559. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/setup_oauth_result.py +0 -0
  560. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/simple_submission_mode_enabled_setting.py +0 -0
  561. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/simple_submission_navigate_to_latest_editor_session_setting.py +0 -0
  562. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/site_email_setting.py +0 -0
  563. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/site_setting_input.py +0 -0
  564. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/snippet.py +0 -0
  565. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/sso_infer_global_staff_role_setting.py +0 -0
  566. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/sso_username_decollision_enabled_setting.py +0 -0
  567. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/staged_assignment_importer_enabled_setting.py +0 -0
  568. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/start_payment_course_price_close_tab_data.py +0 -0
  569. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/start_payment_course_price_data.py +0 -0
  570. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/start_payment_course_price_redirect_data.py +0 -0
  571. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/started_transaction.py +0 -0
  572. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/student_payment_enabled_setting.py +0 -0
  573. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/student_payment_main_option_setting.py +0 -0
  574. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/student_view_enabled_setting.py +0 -0
  575. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/submission_validator_input_data.py +0 -0
  576. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/submissions_per_page_enabled_setting.py +0 -0
  577. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/task_result_state.py +0 -0
  578. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/tax_behavior.py +0 -0
  579. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/tenant.py +0 -0
  580. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/tenant_coupon.py +0 -0
  581. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/tenant_coupon_usage.py +0 -0
  582. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/tenant_course_statistics.py +0 -0
  583. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/tenant_of_tenant_price.py +0 -0
  584. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/tenant_permissions.py +0 -0
  585. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/tenant_statistics.py +0 -0
  586. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/test_submission_copying_on_import_enabled_setting.py +0 -0
  587. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/timed_availability.py +0 -0
  588. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/timeframe_like.py +0 -0
  589. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/transaction.py +0 -0
  590. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/transaction_state.py +0 -0
  591. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/types.py +0 -0
  592. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/update_peer_feedback_settings_assignment_data.py +0 -0
  593. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/update_set_auto_test_data.py +0 -0
  594. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/update_suite_auto_test_base_data.py +0 -0
  595. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/upload_submission_assignment_data.py +0 -0
  596. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/user_course.py +0 -0
  597. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/user_info_with_role.py +0 -0
  598. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/user_input.py +0 -0
  599. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/user_login_response.py +0 -0
  600. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/user_without_group.py +0 -0
  601. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/warning_for_missing_newline_enabled_setting.py +0 -0
  602. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/weak_password_feedback.py +0 -0
  603. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/webhook_base.py +0 -0
  604. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/webhook_configuration_disabled_as_json.py +0 -0
  605. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/webhook_configuration_enabled_as_json.py +0 -0
  606. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/work.py +0 -0
  607. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/work_origin.py +0 -0
  608. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/work_rubric_result_as_json.py +0 -0
  609. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/models/work_rubric_result_points_as_json.py +0 -0
  610. {codegrade-16.1.89 → codegrade-16.1.90}/codegrade/py.typed +0 -0
@@ -1,20 +1,15 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: codegrade
3
- Version: 16.1.89
3
+ Version: 16.1.90
4
4
  Summary: A client library for accessing CodeGrade
5
- License: AGPL-3.0-only OR BSD-3-Clause-Clear
6
- Requires-Python: >=3.9.0,<4.0
7
- Classifier: License :: Other/Proprietary License
8
- Classifier: Programming Language :: Python :: 3
9
- Classifier: Programming Language :: Python :: 3.9
10
- Classifier: Programming Language :: Python :: 3.10
11
- Classifier: Programming Language :: Python :: 3.11
12
- Requires-Dist: httpx (>=0.19.0,<1.0.0)
13
- Requires-Dist: python-dateutil (>=2.8.1,<3.0.0)
14
- Requires-Dist: structlog (>=20.1.0,<21.0.0)
15
- Requires-Dist: typing-extensions (>=4.0.0.0,<5.0.0.0)
16
- Requires-Dist: validate-email (>=1.3,<2.0)
17
5
  Project-URL: Documentation, https://python.api.codegrade.com
6
+ License-Expression: AGPL-3.0-only OR BSD-3-Clause-Clear
7
+ Requires-Python: <4.0,>=3.8.0
8
+ Requires-Dist: httpx<1.0.0,>=0.19.0
9
+ Requires-Dist: python-dateutil<3,>=2.8.1
10
+ Requires-Dist: structlog<21,>=20.1.0
11
+ Requires-Dist: typing-extensions<5,>=4.13.2
12
+ Requires-Dist: validate-email~=1.3
18
13
  Description-Content-Type: text/markdown
19
14
 
20
15
  # CodeGrade API
@@ -79,4 +74,4 @@ month. To upgrade simply run `pip install --upgrade codegrade`.
79
74
  We support python 3.6 and above, `pypy` is currently not tested but should work
80
75
  just fine.
81
76
  ## License
82
- The library is licensed under AGPL-3.0-only or BSD-3-Clause-Clear.
77
+ The library is licensed under AGPL-3.0-only or BSD-3-Clause-Clear.
@@ -1,76 +1,71 @@
1
- """This module defines functions and methods to work with datetime objects.
1
+ """This module defines functions and methods to work with datetime objects."""
2
2
 
3
-
4
- """
3
+ import datetime
5
4
  import enum
6
5
  import time
7
6
  import typing as t
8
- import datetime
9
7
 
10
- __all__ = ['DatetimeWithTimezone', 'now']
8
+ # ruff: noqa: D101, D102
9
+
10
+ __all__ = ('DatetimeWithTimezone', 'Months')
11
11
 
12
12
  if t.TYPE_CHECKING: # pragma: no cover
13
13
 
14
- # pylint: disable=all
15
14
  class DatetimeWithTimezone:
16
15
  max: t.ClassVar['DatetimeWithTimezone']
17
16
 
18
17
  @classmethod
19
- def utcfromtimestamp(cls, timestamp: float) -> 'DatetimeWithTimezone':
20
- ...
18
+ def utcfromtimestamp(
19
+ cls, timestamp: float
20
+ ) -> 'DatetimeWithTimezone': ...
21
21
 
22
22
  @classmethod
23
- def utcnow(cls) -> 'DatetimeWithTimezone':
24
- ...
23
+ def utcnow(cls) -> 'DatetimeWithTimezone': ...
25
24
 
26
25
  @t.overload
27
- def __sub__(self, other: 'DatetimeWithTimezone') -> datetime.timedelta:
28
- ...
26
+ def __sub__(
27
+ self, other: 'DatetimeWithTimezone'
28
+ ) -> datetime.timedelta: ...
29
29
 
30
30
  @t.overload
31
- def __sub__(self, other: datetime.timedelta) -> 'DatetimeWithTimezone':
32
- ...
31
+ def __sub__(
32
+ self, other: datetime.timedelta
33
+ ) -> 'DatetimeWithTimezone': ...
33
34
 
34
- def __sub__(self, other: t.Any) -> t.Any:
35
- ...
35
+ def __sub__(self, other: t.Any) -> t.Any: ...
36
36
 
37
- def __add__(self, other: datetime.timedelta) -> 'DatetimeWithTimezone':
38
- ...
37
+ def __add__(
38
+ self, other: datetime.timedelta
39
+ ) -> 'DatetimeWithTimezone': ...
39
40
 
40
- def __lt__(self, other: 'DatetimeWithTimezone') -> bool:
41
- ...
41
+ def __lt__(self, other: 'DatetimeWithTimezone') -> bool: ...
42
42
 
43
- def __ge__(self, other: 'DatetimeWithTimezone') -> bool:
44
- ...
43
+ def __ge__(self, other: 'DatetimeWithTimezone') -> bool: ...
45
44
 
46
45
  def isoformat(
47
46
  self,
48
47
  *,
49
- timespec: t.Literal['auto', 'microseconds', 'milliseconds',
50
- 'seconds'] = 'auto'
51
- ) -> str:
52
- ...
48
+ timespec: t.Literal[
49
+ 'auto', 'microseconds', 'milliseconds', 'seconds'
50
+ ] = 'auto',
51
+ ) -> str: ...
53
52
 
54
- def timestamp(self) -> float:
55
- ...
53
+ def timestamp(self) -> float: ...
56
54
 
57
55
  @classmethod
58
- def fromisoformat(cls, isoformat: str) -> 'DatetimeWithTimezone':
59
- ...
56
+ def fromisoformat(cls, isoformat: str) -> 'DatetimeWithTimezone': ...
60
57
 
61
58
  @classmethod
62
59
  def from_datetime(
63
60
  cls, dt: datetime.datetime, default_tz: datetime.timezone
64
- ) -> 'DatetimeWithTimezone':
65
- ...
61
+ ) -> 'DatetimeWithTimezone': ...
66
62
 
67
63
  @classmethod
68
64
  def parse_isoformat(
69
65
  cls,
70
66
  isoformat: str,
71
67
  default_tz: datetime.timezone = ...,
72
- ) -> 'DatetimeWithTimezone':
73
- ...
68
+ ) -> 'DatetimeWithTimezone': ...
74
69
 
75
70
  @classmethod
76
71
  def combine(
@@ -78,35 +73,27 @@ if t.TYPE_CHECKING: # pragma: no cover
78
73
  date: datetime.date,
79
74
  time: datetime.time,
80
75
  default_tz: datetime.timezone = ...,
81
- ) -> 'DatetimeWithTimezone':
82
- ...
76
+ ) -> 'DatetimeWithTimezone': ...
83
77
 
84
78
  @staticmethod
85
- def as_datetime(dt: 'DatetimeWithTimezone') -> datetime.datetime:
86
- ...
79
+ def as_datetime(dt: 'DatetimeWithTimezone') -> datetime.datetime: ...
87
80
 
88
81
  @property
89
- def year(self) -> int:
90
- ...
82
+ def year(self) -> int: ...
91
83
 
92
84
  @property
93
- def month(self) -> int:
94
- ...
85
+ def month(self) -> int: ...
95
86
 
96
87
  @property
97
- def day(self) -> int:
98
- ...
88
+ def day(self) -> int: ...
99
89
 
100
90
  @property
101
- def hour(self) -> int:
102
- ...
91
+ def hour(self) -> int: ...
103
92
 
104
93
  @property
105
- def minute(self) -> int:
106
- ...
94
+ def minute(self) -> int: ...
107
95
 
108
- def weekday(self) -> int:
109
- ...
96
+ def weekday(self) -> int: ...
110
97
 
111
98
  def replace(
112
99
  self,
@@ -119,26 +106,18 @@ if t.TYPE_CHECKING: # pragma: no cover
119
106
  second: int = ...,
120
107
  microsecond: int = ...,
121
108
  fold: int = ...,
122
- ) -> 'DatetimeWithTimezone':
123
- ...
109
+ ) -> 'DatetimeWithTimezone': ...
124
110
 
125
- def strftime(self, format: str) -> str:
126
- ...
111
+ def strftime(self, format: str) -> str: ...
127
112
 
128
- # pylint: enable=all
129
113
  else:
130
-
131
114
  # Warning, this class is not actually used during runtime, and is only
132
115
  # present for type checking (to make sure we only use dates with a timezone
133
116
  # attached). So do not instantiate it, as this could make it easy to do a
134
117
  # `isinstance` check, but feel free to implement real static methods.
135
118
 
136
- # pylint: disable=invalid-name
137
119
  _utc = datetime.timezone.utc
138
- _utcfromtimestamp = datetime.datetime.utcfromtimestamp
139
-
140
- # pylint: enable=invalid-name
141
-
120
+ _fromtimestamp = datetime.datetime.fromtimestamp
142
121
 
143
122
  class DatetimeWithTimezone(datetime.datetime):
144
123
  @staticmethod
@@ -154,7 +133,7 @@ else:
154
133
 
155
134
  @staticmethod
156
135
  def utcfromtimestamp(timestamp: float) -> 'DatetimeWithTimezone':
157
- return _utcfromtimestamp(timestamp).replace(tzinfo=_utc)
136
+ return _fromtimestamp(timestamp, tz=_utc)
158
137
 
159
138
  @classmethod
160
139
  def parse_isoformat(
@@ -162,7 +141,8 @@ else:
162
141
  isoformat: str,
163
142
  default_tz: datetime.timezone = _utc,
164
143
  ) -> 'DatetimeWithTimezone':
165
- import dateutil.parser # pylint: disable=import-outside-toplevel
144
+ import dateutil.parser
145
+
166
146
  dt = dateutil.parser.isoparse(isoformat)
167
147
  return cls.from_datetime(dt, default_tz=default_tz)
168
148
 
@@ -0,0 +1,9 @@
1
+ """This module implements the ``Maybe`` monad."""
2
+
3
+ from . import utils as utils
4
+ from ._just import Just as Just
5
+ from ._maybe import Maybe as Maybe
6
+ from ._nothing import Nothing as Nothing
7
+ from ._nothing import _Nothing as _Nothing
8
+ from .utils import from_nullable as from_nullable
9
+ from .utils import of as of
@@ -1,27 +1,26 @@
1
- """This module implements the ``Just`` part of the ``Maybe`` monad.
2
- """
1
+ """This module implements the ``Just`` part of the ``Maybe`` monad."""
2
+
3
3
  import os
4
4
  import typing as t
5
5
 
6
6
  from ._nothing import Nothing, _Nothing
7
7
  from ._type_helpers import Final, Literal
8
- from ._type_helpers import SupportsLessThan as _SupportsLessThan
9
8
  from ._type_helpers import SupportsGreaterOrEqual as _SupportsGreaterOrEqual
9
+ from ._type_helpers import SupportsLessThan as _SupportsLessThan
10
10
 
11
11
  if t.TYPE_CHECKING or os.getenv('CG_GENERATING_DOCS'): # pragma: no cover
12
- # pylint: disable=unused-import,invalid-name
13
12
  import cg_maybe
14
13
 
15
14
  _T = t.TypeVar('_T', covariant=True)
16
- _TT = t.TypeVar('_TT', covariant=True) # pylint: disable=invalid-name
15
+ _TT = t.TypeVar('_TT', covariant=True)
17
16
  _Y = t.TypeVar('_Y')
18
17
  _Z = t.TypeVar('_Z')
19
18
 
20
19
 
21
20
  class Just(t.Generic[_T]):
22
- """The just part of the Maybe monad.
23
- """
24
- __slots__ = ('value', )
21
+ """The just part of the Maybe monad."""
22
+
23
+ __slots__ = ('value',)
25
24
 
26
25
  is_just: Literal[True] = True
27
26
  is_nothing: Literal[False] = False
@@ -47,7 +46,7 @@ class Just(t.Generic[_T]):
47
46
  def map_or_default(
48
47
  self,
49
48
  mapper: t.Callable[[_T], _Y],
50
- default: _Z, # pylint: disable=unused-argument
49
+ default: _Z,
51
50
  ) -> _Y:
52
51
  """Transform this just by applying ``mapper`` to its argument and
53
52
  return the result.
@@ -105,8 +104,8 @@ class Just(t.Generic[_T]):
105
104
  :param chainer: The function that will be called if this method is
106
105
  called on ``Just``. It should return a Optional value.
107
106
  """
108
- # pylint: disable=import-outside-toplevel
109
107
  from .utils import from_nullable
108
+
110
109
  return from_nullable(chainer(self.value))
111
110
 
112
111
  def __repr__(self) -> str:
@@ -117,7 +116,7 @@ class Just(t.Generic[_T]):
117
116
 
118
117
  def alt(
119
118
  self,
120
- alternative: 'cg_maybe._maybe.Maybe[_T]', # pylint: disable=unused-argument
119
+ alternative: 'cg_maybe._maybe.Maybe[_T]',
121
120
  ) -> 'cg_maybe._maybe.Maybe[_T]':
122
121
  """Return the given ``alternative`` if called on a ``Nothing``,
123
122
  otherwise the method returns the value it is called on.
@@ -135,7 +134,7 @@ class Just(t.Generic[_T]):
135
134
 
136
135
  def alt_lazy(
137
136
  self,
138
- maker: t.Callable[[], 'cg_maybe._maybe.Maybe[_Y]'], # pylint: disable=unused-argument
137
+ maker: t.Callable[[], 'cg_maybe._maybe.Maybe[_Y]'],
139
138
  ) -> 'cg_maybe._maybe.Maybe[t.Union[_Y, _T]]':
140
139
  """Return the result of ``maker`` if called on a ``Nothing``, otherwise
141
140
  the method returns the value it is called on.
@@ -165,7 +164,7 @@ class Just(t.Generic[_T]):
165
164
  """
166
165
  return self.value
167
166
 
168
- def or_default_lazy(self, producer: t.Callable[[], _Y]) -> _T: # pylint: disable=unused-argument
167
+ def or_default_lazy(self, producer: t.Callable[[], _Y]) -> _T:
169
168
  """Get the value from a ``Just``, or return the given a default as
170
169
  produced by the given function.
171
170
 
@@ -181,7 +180,7 @@ class Just(t.Generic[_T]):
181
180
  """
182
181
  return self.value
183
182
 
184
- def or_default(self, value: _Y) -> _T: # pylint: disable=unused-argument
183
+ def or_default(self, value: _Y) -> _T:
185
184
  """Get the value from a ``Just``, or return the given default value.
186
185
 
187
186
  >>> from cg_maybe import Just, Nothing
@@ -210,7 +209,7 @@ class Just(t.Generic[_T]):
210
209
  self,
211
210
  *,
212
211
  just: t.Callable[[_T], _TT],
213
- nothing: t.Callable[[], _TT], # pylint: disable=unused-argument
212
+ nothing: t.Callable[[], _TT],
214
213
  ) -> _TT:
215
214
  """A poor mans version of pattern matching.
216
215
 
@@ -250,7 +249,7 @@ class Just(t.Generic[_T]):
250
249
  callback(self.value)
251
250
  return self
252
251
 
253
- def if_nothing(self, callback: t.Callable[[], object]) -> 'Just[_T]': # pylint: disable=unused-argument
252
+ def if_nothing(self, callback: t.Callable[[], object]) -> 'Just[_T]':
254
253
  """Call the given callback if this value is a ``Nothing``, otherwise do
255
254
  nothing.
256
255
 
@@ -267,7 +266,7 @@ class Just(t.Generic[_T]):
267
266
 
268
267
  def try_extract(
269
268
  self,
270
- make_exception: t.Union[t.Callable[[], Exception], Exception], # pylint: disable=unused-argument
269
+ make_exception: t.Union[t.Callable[[], Exception], Exception],
271
270
  ) -> _T:
272
271
  """Try to extract the value, raising an exception created by the given
273
272
  argument if the value is ``Nothing``.
@@ -292,9 +291,9 @@ class Just(t.Generic[_T]):
292
291
  return self.value
293
292
 
294
293
  def __bool__(self) -> Literal[False]:
295
- raise Exception('Do not check Just for boolean value') # pylint: disable=broad-exception-raised
294
+ raise Exception('Do not check Just for boolean value')
296
295
 
297
- def attr(self, attr: str) -> object:
296
+ def attr(self, attr: str) -> 'Just[object]':
298
297
  """Get the given attribute from the value in the just and wrap the
299
298
  result in a just.
300
299
 
@@ -306,7 +305,7 @@ class Just(t.Generic[_T]):
306
305
  return Just(getattr(self.value, attr))
307
306
 
308
307
  def join(
309
- self: 'Just[cg_maybe._maybe.Maybe[_Y]]'
308
+ self: 'Just[cg_maybe._maybe.Maybe[_Y]]',
310
309
  ) -> 'cg_maybe._maybe.Maybe[_Y]':
311
310
  """Join a ``Just`` of a ``Maybe``.
312
311
 
@@ -349,8 +348,7 @@ class Just(t.Generic[_T]):
349
348
  return False
350
349
  return NotImplemented
351
350
 
352
-
353
- def ne( # pylint: disable=invalid-name
351
+ def ne(
354
352
  self: 'Just[_Y]',
355
353
  val: _Y,
356
354
  ) -> bool:
@@ -363,7 +361,7 @@ class Just(t.Generic[_T]):
363
361
  """
364
362
  return self.value != val
365
363
 
366
- def lt( # pylint: disable=invalid-name
364
+ def lt(
367
365
  self: 'Just[_SupportsLessThan[_T]]',
368
366
  val: _SupportsLessThan[_T],
369
367
  ) -> bool:
@@ -389,7 +387,7 @@ class Just(t.Generic[_T]):
389
387
  """
390
388
  return self.value <= val
391
389
 
392
- def gt( # pylint: disable=invalid-name
390
+ def gt(
393
391
  self: 'Just[_SupportsLessThan[_T]]',
394
392
  val: _SupportsLessThan[_T],
395
393
  ) -> bool:
@@ -1,13 +1,11 @@
1
- """This module combines ``Just`` and ``Nothing`` into ``Maybe``.
1
+ """This module combines ``Just`` and ``Nothing`` into ``Maybe``."""
2
2
 
3
-
4
- """
5
3
  import typing as t
6
4
 
7
5
  from ._just import Just
8
6
  from ._nothing import _Nothing
9
7
 
10
- _Nothing._set_doc() # pylint: disable=protected-access
8
+ _Nothing._set_doc() # noqa: SLF001
11
9
 
12
10
  _T = t.TypeVar('_T', covariant=True)
13
11
 
@@ -1,27 +1,24 @@
1
- """This module implements the ``Nothing`` part of the ``Maybe`` monad.
1
+ """This module implements the ``Nothing`` part of the ``Maybe`` monad."""
2
2
 
3
-
4
- """
5
3
  import os
6
4
  import typing as t
7
5
 
8
6
  from ._type_helpers import Literal
9
- from ._type_helpers import SupportsLessThan as _SupportsLessThan
10
7
  from ._type_helpers import SupportsGreaterOrEqual as _SupportsGreaterOrEqual
8
+ from ._type_helpers import SupportsLessThan as _SupportsLessThan
11
9
 
12
10
  if t.TYPE_CHECKING or os.getenv('CG_GENERATING_DOCS'): # pragma: no cover
13
- # pylint: disable=unused-import,invalid-name
14
11
  import cg_maybe
15
12
 
16
13
  _T = t.TypeVar('_T', covariant=True)
17
- _TT = t.TypeVar('_TT', covariant=True) # pylint: disable=invalid-name
14
+ _TT = t.TypeVar('_TT', covariant=True)
18
15
  _Y = t.TypeVar('_Y')
19
16
  _Z = t.TypeVar('_Z')
20
17
 
21
18
 
22
19
  class _Nothing(t.Generic[_T]):
23
- """Singleton class to represent the ``Nothing`` part of a ``Maybe``.
24
- """
20
+ """Singleton class to represent the ``Nothing`` part of a ``Maybe``."""
21
+
25
22
  __slots__ = ()
26
23
 
27
24
  def __hash__(self) -> int:
@@ -32,17 +29,17 @@ class _Nothing(t.Generic[_T]):
32
29
 
33
30
  @classmethod
34
31
  def _set_doc(cls) -> None:
35
- # pylint: disable=import-outside-toplevel
36
32
  from ._just import Just
33
+
37
34
  for attr in dir(cls):
38
35
  value = getattr(cls, attr)
39
36
  if (
40
- not attr.startswith('_') and hasattr(Just, attr) and
41
- not value.__doc__
37
+ not attr.startswith('_')
38
+ and hasattr(Just, attr)
39
+ and not value.__doc__
42
40
  ):
43
41
  value.__doc__ = getattr(Just, attr).__doc__
44
42
 
45
- # pylint: disable=no-self-use,missing-function-docstring,unused-argument
46
43
  def map(self, mapper: t.Callable[[_T], _TT]) -> '_Nothing[_TT]':
47
44
  return Nothing
48
45
 
@@ -56,7 +53,6 @@ class _Nothing(t.Generic[_T]):
56
53
  def chain_nullable(
57
54
  self, chainer: t.Callable[[_T], t.Optional['_TT']]
58
55
  ) -> '_Nothing[_TT]':
59
- # pylint: disable=import-outside-toplevel
60
56
  return Nothing
61
57
 
62
58
  def chain(
@@ -119,7 +115,8 @@ class _Nothing(t.Generic[_T]):
119
115
  def __lt__(self, other: object) -> bool:
120
116
  if isinstance(other, _Nothing):
121
117
  return False
122
- from ._just import Just # pylint: disable=import-outside-toplevel
118
+ from ._just import Just
119
+
123
120
  if isinstance(other, Just):
124
121
  return True
125
122
  return NotImplemented
@@ -159,9 +156,9 @@ class _Nothing(t.Generic[_T]):
159
156
  return obj is Nothing or isinstance(obj, cls)
160
157
 
161
158
  def __bool__(self) -> Literal[False]:
162
- raise Exception('Do not check Nothing for boolean value') # pylint: disable=broad-exception-raised
159
+ raise Exception('Do not check Nothing for boolean value')
163
160
 
164
- def attr(self, attr: str) -> object:
161
+ def attr(self, attr: str) -> '_Nothing[object]':
165
162
  return Nothing
166
163
 
167
164
  def join(self: '_Nothing[cg_maybe._maybe.Maybe[_Y]]') -> '_Nothing[_Y]':
@@ -176,9 +173,9 @@ class _Nothing(t.Generic[_T]):
176
173
  ) -> Literal[False]:
177
174
  return False
178
175
 
179
- ne = eq # pylint: disable=invalid-name
176
+ ne = eq
180
177
 
181
- def lt( # pylint: disable=invalid-name
178
+ def lt(
182
179
  self: '_Nothing[_SupportsLessThan[_T]]',
183
180
  val: _SupportsLessThan[_T],
184
181
  ) -> Literal[False]:
@@ -190,7 +187,7 @@ class _Nothing(t.Generic[_T]):
190
187
  ) -> Literal[False]:
191
188
  return False
192
189
 
193
- def gt( # pylint: disable=invalid-name
190
+ def gt(
194
191
  self: '_Nothing[_SupportsLessThan[_T]]',
195
192
  val: _SupportsLessThan[_T],
196
193
  ) -> Literal[False]:
@@ -202,7 +199,5 @@ class _Nothing(t.Generic[_T]):
202
199
  ) -> Literal[False]:
203
200
  return False
204
201
 
205
- # pylint: enable=no-self-use,missing-function-docstring,unused-argument
206
-
207
202
 
208
203
  Nothing: _Nothing[t.Any] = _Nothing()
@@ -0,0 +1,34 @@
1
+ """Type helpers for ``cg_maybe``."""
2
+
3
+ import sys
4
+ import typing as t
5
+
6
+ if sys.version_info >= (3, 8):
7
+ from typing import Final as Final
8
+ from typing import Literal as Literal
9
+ from typing import Protocol as Protocol
10
+ else: # pragma: no cover
11
+ from typing_extensions import (
12
+ Final as Final,
13
+ )
14
+ from typing_extensions import (
15
+ Literal as Literal,
16
+ )
17
+ from typing_extensions import (
18
+ Protocol as Protocol,
19
+ )
20
+
21
+ _T = t.TypeVar('_T', covariant=True)
22
+ _TT = t.TypeVar('_TT')
23
+
24
+
25
+ class SupportsLessThan(Protocol[_T]):
26
+ """A type that supports the `<` operator."""
27
+
28
+ def __lt__(self: _TT, other: _TT) -> bool: ...
29
+
30
+
31
+ class SupportsGreaterOrEqual(Protocol[_T]):
32
+ """A type that supports the `>=` operator."""
33
+
34
+ def __ge__(self: _TT, other: _TT) -> bool: ...
@@ -1,19 +1,17 @@
1
1
  """
2
2
  Plugin to fix the type of certain methods on ``Just`` and ``Nothing`` objects.
3
-
4
-
5
3
  """
4
+
6
5
  import typing as t
7
6
 
8
- from mypy.types import Type, Instance, LiteralType
9
- from mypy.plugin import Plugin, MethodContext
10
7
  from mypy.checkmember import analyze_member_access
8
+ from mypy.plugin import MethodContext, Plugin
9
+ from mypy.types import Instance, LiteralType, Type
11
10
 
12
11
 
13
- def attr_callback(ctx: MethodContext, typ: str) -> Type:
14
- """Callback to determine type for a ``.attr`` call on a ``Maybe``.
15
- """
16
- (attr, ), = ctx.arg_types
12
+ def attr_callback(ctx: MethodContext) -> Type:
13
+ """Callback to determine type for a ``.attr`` call on a ``Maybe``."""
14
+ ((attr,),) = ctx.arg_types
17
15
  attr_maybe_value: t.Optional[Type] = attr
18
16
  if isinstance(attr, Instance):
19
17
  attr_maybe_value = attr.last_known_value
@@ -31,9 +29,11 @@ def attr_callback(ctx: MethodContext, typ: str) -> Type:
31
29
  return ctx.default_return_type
32
30
 
33
31
  assert isinstance(ctx.type, Instance)
34
- base, = ctx.type.args
35
- assert isinstance(base, Instance)
36
- if not base.type.has_readable_member(attr_value):
32
+ (base,) = ctx.type.args
33
+ if not (
34
+ isinstance(base, Instance)
35
+ and base.type.has_readable_member(attr_value)
36
+ ):
37
37
  ctx.api.fail(
38
38
  'The {} has no attribute named {}'.format(base, attr_value),
39
39
  ctx.context,
@@ -48,34 +48,33 @@ def attr_callback(ctx: MethodContext, typ: str) -> Type:
48
48
  ctx.context,
49
49
  is_lvalue=False,
50
50
  is_super=False,
51
- is_operator=True,
51
+ is_operator=False,
52
52
  msg=checker.msg,
53
53
  original_type=base,
54
54
  chk=checker.chk,
55
55
  in_literal_context=checker.is_literal_context(),
56
56
  )
57
- return ctx.api.named_generic_type(typ, [member])
57
+ assert isinstance(ctx.default_return_type, Instance)
58
+ return ctx.default_return_type.copy_modified(args=[member])
58
59
 
59
60
 
60
61
  class CgMaybePlugin(Plugin):
61
- """Mypy plugin definition.
62
- """
62
+ """Mypy plugin definition."""
63
63
 
64
- def get_method_hook( # pylint: disable=no-self-use
64
+ def get_method_hook(
65
65
  self,
66
66
  fullname: str,
67
67
  ) -> t.Optional[t.Callable[[MethodContext], Type]]:
68
- """Get the function to be called by mypy.
69
- """
70
- if fullname == 'cg_maybe._just.Just.attr':
71
- return lambda ctx: attr_callback(ctx, 'cg_maybe.Just')
72
- elif fullname == 'cg_maybe._nothing._Nothing.attr':
73
- return lambda ctx: attr_callback(ctx, 'cg_maybe._Nothing')
68
+ """Get the function to be called by mypy."""
69
+ if fullname in (
70
+ 'cg_maybe._just.Just.attr',
71
+ 'cg_maybe._nothing._Nothing.attr',
72
+ ):
73
+ return lambda ctx: attr_callback(ctx)
74
74
  return None
75
75
 
76
76
 
77
77
  def plugin(_: str) -> t.Type[CgMaybePlugin]:
78
- """Get the mypy plugin definition.
79
- """
78
+ """Get the mypy plugin definition."""
80
79
  # ignore version argument if the plugin works with all mypy versions.
81
80
  return CgMaybePlugin