codegrade 16.1.48__tar.gz → 16.1.51__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {codegrade-16.1.48 → codegrade-16.1.51}/PKG-INFO +1 -1
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/__init__.py +1 -1
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/client.py +2 -2
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/__init__.py +10 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/all_site_settings.py +89 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_perm_map.py +15 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_permission.py +1 -0
- codegrade-16.1.51/codegrade/models/default_course_ta_role_setting.py +56 -0
- codegrade-16.1.51/codegrade/models/default_course_teacher_role_setting.py +58 -0
- codegrade-16.1.51/codegrade/models/lti1p3_nonce_and_state_validation_enabled_setting.py +57 -0
- codegrade-16.1.51/codegrade/models/lti1p3_prevent_nonce_reuse_enabled_setting.py +57 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/site_setting_input.py +18 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/pyproject.toml +1 -1
- {codegrade-16.1.48 → codegrade-16.1.51}/setup.py +1 -1
- {codegrade-16.1.48 → codegrade-16.1.51}/README.md +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/cg_dt_utils/__init__.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/cg_maybe/__init__.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/cg_maybe/_just.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/cg_maybe/_maybe.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/cg_maybe/_nothing.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/cg_maybe/_type_helpers.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/cg_maybe/cg_maybe_plugin.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/cg_maybe/utils.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/__init__.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_any_value.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_base.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_convert.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_enum.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_form.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_lazy.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_list.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_literal.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_mapping.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_multipart.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_nullable.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_parse_utils.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_query.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_rich_value.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_swagger_utils.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_swaggerize.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/_utils.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/exceptions.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/cg_request_args/request_args_plugin.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/__init__.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/about.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/assignment.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/auto_test.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/comment.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/course.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/course_price.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/file.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/git_provider.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/group.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/group_set.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/login_link.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/lti.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/notification.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/oauth_provider.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/oauth_token.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/permission.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/plagiarism.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/role.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/section.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/site_settings.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/snippet.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/sso_provider.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/submission.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/task_result.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/tenant.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/transaction.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/user.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/user_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/_api/webhook.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/errors.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/_base_price.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/_saml_ui_logo_info.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/_submission_rubric_item_data_parser.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/about.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/abstract_role.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/add_users_section_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/all_auto_test_results.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/any_auto_test_step_as_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/any_error.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/any_non_redacted_auto_test_step_as_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/any_redacted_auto_test_step_as_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/api_codes.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_anonymization_algo.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_default_grading_scale_points_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_default_grading_scale_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_description_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_description_on_teachers_submissions_page_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_done_type.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_export_column.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_feedback.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_grader.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_grading_scale_points_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_kind.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_login_link.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_max_points_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_peer_feedback_connection.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_peer_feedback_settings.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_percentage_decimals_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_percentage_grading_settings.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_point_decimals_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_points_grading_settings.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_section_timeframe.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_state_enum.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_submission_mode.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_template.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/assignment_timeframes.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/at_image_caching_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_capture_points_message_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_checkpoint_message_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_code_quality_message_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_fixture.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_global_setup_output.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_global_setup_script.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_heartbeat_interval_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_heartbeat_max_missed_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_io_test_message_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_io_test_sub_message_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_max_concurrent_batch_runs_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_max_global_setup_time_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_max_jobs_per_runner_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_max_per_student_setup_time_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_max_result_not_started_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_max_time_command_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_max_unit_test_metadata_length_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_quality_comment.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_result.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_result_state.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_result_with_extra_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_run.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_run_program_message_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_runner.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_runner_state.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_set.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_step_base.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_step_base_as_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_step_base_input_as_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_step_log_base.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_step_result.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_step_result_state.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_step_validation_exception.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_suite.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/auto_test_unit_test_message_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/automatic_lti1p3_assignment_import_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/automatic_lti_role_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_about.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_auto_test_quality_comment.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_comment_base.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_comment_base_with_extended_replies.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_comment_base_with_normal_replies.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_comment_reply.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_course_coupon.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_directory.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_error.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_file.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_lms_capabilities.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_lti1p1_provider.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_lti1p3_provider.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_lti_provider.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_notification.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_release_info.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_rubric_item.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/base_tenant_coupon.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/blackboard_zip_upload_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/bulk_enroll_course_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/canvas_course_id_copying_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/cg_ignore_version.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/change_user_role_course_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/check_points_as_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/check_points_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/check_points_extra.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/check_points_input_as_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/clone_result.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/code_editor_output_viewer_title_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/code_quality_as_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/code_quality_base_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/code_quality_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/code_quality_extra.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/code_quality_input_as_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/code_quality_penalties.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/column_range.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/comment_base.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/comment_reply.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/comment_reply_edit.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/comment_reply_type.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/comment_type.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/community_library_publishing_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/community_library_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/connect_repository_git_provider_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/copy_auto_test_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/copy_rubric_assignment_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/coupon_data_parser.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/coupon_with_code.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/coupon_without_code.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_bulk_enroll_result.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_bulk_register_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_coupon.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_coupon_usage.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_gradebook_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_gradebook_render_warning_size_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_of_course_price.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_of_tenant_coupon_usage.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_price.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_register_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_register_response.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_registration_link.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_role.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_role_as_json_with_perms.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_section.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_section_division.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_section_division_connection.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_section_division_user.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_snippet.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_state.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/course_statistics_as_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_assignment_course_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_auto_test_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_comment_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_comment_reply_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_course_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_division_section_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_group_group_set_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_group_set_course_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_lti_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_output_html_proxy_auto_test_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_proxy_submission_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_repository_git_provider_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_role_course_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_section_course_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_snippet_course_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_snippet_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_sso_provider_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/create_tenant_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/csv_large_file_limit_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/csv_too_many_errors_limit_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/currency.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/custom_output_as_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/custom_output_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/custom_output_extra.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/custom_output_input_as_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/custom_output_log.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/custom_output_log_base.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/deleted_comment_reply.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/deletion_type.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/directory_with_children.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/disabled_setting_exception.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/editor_enabled_for_teachers_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/editor_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/email_notification_types.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/email_students_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/email_users_course_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/exam_login_max_length_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/export_assignment_csv_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/export_assignment_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/export_assignment_files_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/extended_auto_test_result.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/extended_auto_test_run.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/extended_course.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/extended_course_registration_link.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/extended_course_section.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/extended_group.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/extended_job.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/extended_non_deleted_comment_reply.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/extended_tenant.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/extended_transaction.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/extended_user.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/extended_work.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/extract_file_tree_directory.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/extract_file_tree_file.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/failed_to_send_email_exception.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/feedback_base.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/feedback_threads_initially_collapsed_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/feedback_with_replies.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/feedback_without_replies.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/file_deletion.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/file_rule.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/file_rule_input_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/file_tree.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/file_type.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/finalized_lti1p1_provider.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/finalized_lti1p3_provider.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/first_phase_lti_launch_exception.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/fixed_availability.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/fixed_grade_availability.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/fixture_like.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/fraction.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/frontend_site_settings.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/general_feedback_comment_base.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/general_feedback_comment_base_with_extended_replies.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/general_feedback_extra.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/git_repositories_page.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/git_repository_like.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/git_user_info.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/github_template_repo_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/global_perm_map.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/global_permission.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/grade_history.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/grade_origin.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/grade_viewer_and_editor_on_submission_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/grading_notifications_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/group.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/group_not_ready_for_submission_exception.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/group_set.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/groups_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/has_unread_notifcation_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/health_information.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/hide_code_editor_output_viewer_with_only_quiz_steps_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/hide_empty_rubric_row_description_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/ignore_handling.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/ignored_files_exception.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/import_into_assignment_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/import_into_course_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/incremental_rubric_submission_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/inline_feedback_comment_base.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/inline_feedback_comment_base_with_extended_replies.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/inline_feedback_extra.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/inline_rubric_viewer_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/invalid_group_exception.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/invalid_io_cases_exception.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/invalid_options_exception.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/io_test_as_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/io_test_base_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/io_test_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/io_test_extra.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/io_test_input_as_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/io_test_input_case.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/io_test_log.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/io_test_option.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/io_test_step_log.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/io_test_step_log_base.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/is_admin_permission_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/job.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/json_create_auto_test.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/json_create_tenant.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/json_patch_auto_test.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/json_patch_submit_types_assignment.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/junit_test_as_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/junit_test_base_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/junit_test_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/junit_test_extra.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/junit_test_input_as_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/junit_test_log.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/junit_test_log_base.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/jwt_access_token_expires_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/legacy_features.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/line_range.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/linter_comment.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/linters_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/lms_capabilities.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/login_token_before_time_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/login_user_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/logout_response.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/logout_user_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/lti1p1_provider.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/lti1p1_provider_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/lti1p3_parse_most_privileged_role_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/lti1p3_provider.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/lti1p3_provider_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/lti1p3_provider_presentation_as_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/lti1p3_system_role_from_context_role_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/lti_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/lti_first_launch_content_id_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/lti_launch_data_logging_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/lti_lock_date_copying_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/lti_provider_base.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/lti_unset_deadline_lock_date_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/max_document_update_size_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/max_dynamo_file_size_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/max_dynamo_submission_size_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/max_file_size_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/max_large_upload_size_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/max_lines_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/max_mirror_file_age_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/max_normal_upload_size_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/max_number_of_files_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/max_plagiarism_matches_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/max_user_setting_amount_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/min_password_score_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/mirror_file_result.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/missing_cookie_error.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/missing_file.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_allowed_initial_build_ids_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_build_max_command_time_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_build_output_limit_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_copying_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_current_initial_build_ids_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_diff_viewer_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_initial_build_id_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_max_dynamodb_size_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_max_file_size_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_max_output_files_size_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_max_storage_size_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_old_submission_age_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_test_max_command_time_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_test_output_limit_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/new_auto_test_uncollapsing_step_output_delay_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/no_permissions.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/non_deleted_comment_reply.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/non_finalized_lti1p1_provider.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/non_finalized_lti1p3_provider.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/non_present_preference.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/notification.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/notification_comment_reply_notification_as_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/notification_general_feedback_reply_notification_as_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/notification_poll_time_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/notification_reasons.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/notification_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/notification_setting_option.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/notifications_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/oauth_provider.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/oauth_token.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/option.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/options_input_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/output_viewer_animation_limit_lines_count_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/parse_api_exception.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch1_p1_provider_lti_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch1_p3_provider_lti_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_all_notification_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_assignment_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_auto_test_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_comment_reply_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_course_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_grader_submission_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_notification_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_notification_setting_user_setting_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_provider_lti_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_role_course_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_role_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_role_tenant_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_rubric_category_type_assignment_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_rubric_result_submission_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_section_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_settings_tenant_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_site_settings_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_snippet_course_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_snippet_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_submission_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_submit_types_assignment_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_tenant_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_ui_preference_user_setting_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/patch_user_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/pay_with_coupon_course_price_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/pearson_templates_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/peer_feedback_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/permission_exception.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/plagiarism_bulk_export_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/plagiarism_bulk_export_max_cases_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/plagiarism_case.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/plagiarism_pdf_export_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/plagiarism_run.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/plagiarism_run_plagiarism_assignment_as_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/plagiarism_run_plagiarism_course_as_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/plagiarism_state.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/post_oauth_token_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/present_preference.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/proxy.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/put_description_assignment_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/put_enroll_link_course_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/put_price_course_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/put_price_tenant_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/put_rubric_assignment_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/quality_comment_severity.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/quality_comments_in_code_editor_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/quality_test_log.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/quality_test_log_base.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/register_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/register_user_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/register_user_with_link_course_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/release_info.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/release_message_max_time_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/rename_group_group_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/render_html_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/repository_connection_limit_reached_exception.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/reset_token_time_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/result_data_get_auto_test_get.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/result_data_get_task_result_get_all.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/result_data_post_login_link_login.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/result_data_post_section_create_division.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/result_data_post_user_login.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/result_data_post_user_register.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/role_as_json_with_perms.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/root_file_trees_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/rubric_description_type.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/rubric_enabled_for_teacher_on_submissions_page_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/rubric_item.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/rubric_item_input_as_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/rubric_lock_reason.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/rubric_row_base.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/rubric_row_base_input_as_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/rubric_row_base_input_base_as_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/rubrics_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/rule_type.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/run_program_as_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/run_program_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/run_program_extra.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/run_program_input_as_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/run_program_log.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/saml2_provider_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/saml_ui_info.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/sections_in_submission_list_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/send_registration_email_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/server_time_correction_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/server_time_diff_tolerance_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/server_time_sync_interval_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/setting_token_time_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/setup_oauth_result.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/simple_submission_mode_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/simple_submission_navigate_to_latest_editor_session_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/site_email_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/snippet.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/sso_infer_global_staff_role_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/sso_username_decollision_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/staged_assignment_importer_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/start_payment_course_price_close_tab_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/start_payment_course_price_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/start_payment_course_price_redirect_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/started_transaction.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/student_payment_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/submission_validator_input_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/submissions_page_v2_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/submissions_per_page_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/task_result_state.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/tax_behavior.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/tenant.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/tenant_coupon.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/tenant_coupon_usage.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/tenant_coupon_with_code.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/tenant_coupon_without_code.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/tenant_course_statistics.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/tenant_of_tenant_price.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/tenant_permissions.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/tenant_price.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/tenant_role_as_json_with_perms.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/tenant_statistics.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/test_submission_copying_on_import_enabled_setting.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/timed_availability.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/timeframe_like.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/token_revoked_exception.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/transaction.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/transaction_state.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/types.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/update_peer_feedback_settings_assignment_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/update_set_auto_test_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/update_suite_auto_test_base_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/update_suite_auto_test_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/upgraded_lti_provider_exception.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/upload_submission_assignment_data.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/user.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/user_course.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/user_info_with_role.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/user_input.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/user_without_group.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/weak_password_exception.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/weak_password_feedback.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/webhook_base.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/webhook_configuration_disabled_as_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/webhook_configuration_enabled_as_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/work.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/work_origin.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/work_rubric_item.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/work_rubric_result_as_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/models/work_rubric_result_points_as_json.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/parsers.py +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/py.typed +0 -0
- {codegrade-16.1.48 → codegrade-16.1.51}/codegrade/utils.py +0 -0
|
@@ -526,7 +526,7 @@ class Client(_BaseClient):
|
|
|
526
526
|
return httpx.Client(
|
|
527
527
|
base_url=self.base_url,
|
|
528
528
|
headers={
|
|
529
|
-
"User-Agent": "CodeGradeAPI/16.1.
|
|
529
|
+
"User-Agent": "CodeGradeAPI/16.1.51",
|
|
530
530
|
},
|
|
531
531
|
follow_redirects=True,
|
|
532
532
|
)
|
|
@@ -546,7 +546,7 @@ class AuthenticatedClient(_BaseClient):
|
|
|
546
546
|
base_url=self.base_url,
|
|
547
547
|
headers={
|
|
548
548
|
"Authorization": f"Bearer {self.token}",
|
|
549
|
-
"User-Agent": "CodeGradeAPI/16.1.
|
|
549
|
+
"User-Agent": "CodeGradeAPI/16.1.51",
|
|
550
550
|
},
|
|
551
551
|
follow_redirects=True,
|
|
552
552
|
)
|
|
@@ -255,6 +255,10 @@ from .custom_output_extra import CustomOutputExtra
|
|
|
255
255
|
from .custom_output_input_as_json import CustomOutputInputAsJSON
|
|
256
256
|
from .custom_output_log import CustomOutputLog
|
|
257
257
|
from .custom_output_log_base import CustomOutputLogBase
|
|
258
|
+
from .default_course_ta_role_setting import DefaultCourseTaRoleSetting
|
|
259
|
+
from .default_course_teacher_role_setting import (
|
|
260
|
+
DefaultCourseTeacherRoleSetting,
|
|
261
|
+
)
|
|
258
262
|
from .deleted_comment_reply import DeletedCommentReply
|
|
259
263
|
from .deletion_type import DeletionType
|
|
260
264
|
from .directory_with_children import DirectoryWithChildren
|
|
@@ -394,9 +398,15 @@ from .logout_response import LogoutResponse
|
|
|
394
398
|
from .logout_user_data import LogoutUserData
|
|
395
399
|
from .lti1p1_provider import LTI1p1Provider
|
|
396
400
|
from .lti1p1_provider_data import LTI1p1ProviderData
|
|
401
|
+
from .lti1p3_nonce_and_state_validation_enabled_setting import (
|
|
402
|
+
Lti1p3NonceAndStateValidationEnabledSetting,
|
|
403
|
+
)
|
|
397
404
|
from .lti1p3_parse_most_privileged_role_setting import (
|
|
398
405
|
Lti1p3ParseMostPrivilegedRoleSetting,
|
|
399
406
|
)
|
|
407
|
+
from .lti1p3_prevent_nonce_reuse_enabled_setting import (
|
|
408
|
+
Lti1p3PreventNonceReuseEnabledSetting,
|
|
409
|
+
)
|
|
400
410
|
from .lti1p3_provider import LTI1p3Provider
|
|
401
411
|
from .lti1p3_provider_data import LTI1p3ProviderData
|
|
402
412
|
from .lti1p3_provider_presentation_as_json import (
|
|
@@ -131,6 +131,25 @@ class AllSiteSettings(FrontendSiteSettings):
|
|
|
131
131
|
lti_launch_data_logging: Maybe["bool"] = Nothing
|
|
132
132
|
#: Whether or not pearson templates should be enabled.
|
|
133
133
|
pearson_templates: Maybe["bool"] = Nothing
|
|
134
|
+
#: The teacher role to be used for teachers in new courses. Existing
|
|
135
|
+
#: courses will not be affected.
|
|
136
|
+
default_course_teacher_role: Maybe[
|
|
137
|
+
"t.Literal['Full Teacher', 'Non-Editing Teacher']"
|
|
138
|
+
] = Nothing
|
|
139
|
+
#: The TA role to be used for TAs in new courses. Existing courses will not
|
|
140
|
+
#: be affected.
|
|
141
|
+
default_course_ta_role: Maybe[
|
|
142
|
+
"t.Literal['Full TA', 'Non-Editing TA']"
|
|
143
|
+
] = Nothing
|
|
144
|
+
#: Whether LTI 1.3 launches using cookies (and sessions) should check for
|
|
145
|
+
#: correct nonce and state. When disabling this feature flag, please be
|
|
146
|
+
#: mindful. These validations protect us from certain attacks. If unsure,
|
|
147
|
+
#: consult with the Security Officer before disabling.
|
|
148
|
+
lti_1p3_nonce_and_state_validation_enabled: Maybe["bool"] = Nothing
|
|
149
|
+
#: Whether LTI 1.3 launches should check nonces against the cached value.
|
|
150
|
+
#: Enabling this prevents replay attacks. If unsure, consult with the
|
|
151
|
+
#: Security Officer before disabling.
|
|
152
|
+
lti_1p3_prevent_nonce_reuse_enabled: Maybe["bool"] = Nothing
|
|
134
153
|
|
|
135
154
|
raw_data: t.Optional[t.Dict[str, t.Any]] = field(init=False, repr=False)
|
|
136
155
|
|
|
@@ -447,6 +466,44 @@ class AllSiteSettings(FrontendSiteSettings):
|
|
|
447
466
|
rqa.SimpleValue.bool,
|
|
448
467
|
doc="Whether or not pearson templates should be enabled.",
|
|
449
468
|
),
|
|
469
|
+
rqa.OptionalArgument(
|
|
470
|
+
"DEFAULT_COURSE_TEACHER_ROLE",
|
|
471
|
+
rqa.StringEnum("Full Teacher", "Non-Editing Teacher"),
|
|
472
|
+
doc=(
|
|
473
|
+
"The teacher role to be used for teachers in new"
|
|
474
|
+
" courses. Existing courses will not be affected."
|
|
475
|
+
),
|
|
476
|
+
),
|
|
477
|
+
rqa.OptionalArgument(
|
|
478
|
+
"DEFAULT_COURSE_TA_ROLE",
|
|
479
|
+
rqa.StringEnum("Full TA", "Non-Editing TA"),
|
|
480
|
+
doc=(
|
|
481
|
+
"The TA role to be used for TAs in new courses."
|
|
482
|
+
" Existing courses will not be affected."
|
|
483
|
+
),
|
|
484
|
+
),
|
|
485
|
+
rqa.OptionalArgument(
|
|
486
|
+
"LTI_1P3_NONCE_AND_STATE_VALIDATION_ENABLED",
|
|
487
|
+
rqa.SimpleValue.bool,
|
|
488
|
+
doc=(
|
|
489
|
+
"Whether LTI 1.3 launches using cookies (and sessions)"
|
|
490
|
+
" should check for correct nonce and state. When"
|
|
491
|
+
" disabling this feature flag, please be mindful."
|
|
492
|
+
" These validations protect us from certain attacks."
|
|
493
|
+
" If unsure, consult with the Security Officer before"
|
|
494
|
+
" disabling."
|
|
495
|
+
),
|
|
496
|
+
),
|
|
497
|
+
rqa.OptionalArgument(
|
|
498
|
+
"LTI_1P3_PREVENT_NONCE_REUSE_ENABLED",
|
|
499
|
+
rqa.SimpleValue.bool,
|
|
500
|
+
doc=(
|
|
501
|
+
"Whether LTI 1.3 launches should check nonces against"
|
|
502
|
+
" the cached value. Enabling this prevents replay"
|
|
503
|
+
" attacks. If unsure, consult with the Security"
|
|
504
|
+
" Officer before disabling."
|
|
505
|
+
),
|
|
506
|
+
),
|
|
450
507
|
)
|
|
451
508
|
).use_readable_describe(True)
|
|
452
509
|
)
|
|
@@ -550,6 +607,18 @@ class AllSiteSettings(FrontendSiteSettings):
|
|
|
550
607
|
self.lti_launch_data_logging
|
|
551
608
|
)
|
|
552
609
|
self.pearson_templates = maybe_from_nullable(self.pearson_templates)
|
|
610
|
+
self.default_course_teacher_role = maybe_from_nullable(
|
|
611
|
+
self.default_course_teacher_role
|
|
612
|
+
)
|
|
613
|
+
self.default_course_ta_role = maybe_from_nullable(
|
|
614
|
+
self.default_course_ta_role
|
|
615
|
+
)
|
|
616
|
+
self.lti_1p3_nonce_and_state_validation_enabled = maybe_from_nullable(
|
|
617
|
+
self.lti_1p3_nonce_and_state_validation_enabled
|
|
618
|
+
)
|
|
619
|
+
self.lti_1p3_prevent_nonce_reuse_enabled = maybe_from_nullable(
|
|
620
|
+
self.lti_1p3_prevent_nonce_reuse_enabled
|
|
621
|
+
)
|
|
553
622
|
|
|
554
623
|
def to_dict(self) -> t.Dict[str, t.Any]:
|
|
555
624
|
res: t.Dict[str, t.Any] = {}
|
|
@@ -1013,6 +1082,22 @@ class AllSiteSettings(FrontendSiteSettings):
|
|
|
1013
1082
|
)
|
|
1014
1083
|
if self.pearson_templates.is_just:
|
|
1015
1084
|
res["PEARSON_TEMPLATES"] = to_dict(self.pearson_templates.value)
|
|
1085
|
+
if self.default_course_teacher_role.is_just:
|
|
1086
|
+
res["DEFAULT_COURSE_TEACHER_ROLE"] = to_dict(
|
|
1087
|
+
self.default_course_teacher_role.value
|
|
1088
|
+
)
|
|
1089
|
+
if self.default_course_ta_role.is_just:
|
|
1090
|
+
res["DEFAULT_COURSE_TA_ROLE"] = to_dict(
|
|
1091
|
+
self.default_course_ta_role.value
|
|
1092
|
+
)
|
|
1093
|
+
if self.lti_1p3_nonce_and_state_validation_enabled.is_just:
|
|
1094
|
+
res["LTI_1P3_NONCE_AND_STATE_VALIDATION_ENABLED"] = to_dict(
|
|
1095
|
+
self.lti_1p3_nonce_and_state_validation_enabled.value
|
|
1096
|
+
)
|
|
1097
|
+
if self.lti_1p3_prevent_nonce_reuse_enabled.is_just:
|
|
1098
|
+
res["LTI_1P3_PREVENT_NONCE_REUSE_ENABLED"] = to_dict(
|
|
1099
|
+
self.lti_1p3_prevent_nonce_reuse_enabled.value
|
|
1100
|
+
)
|
|
1016
1101
|
return res
|
|
1017
1102
|
|
|
1018
1103
|
@classmethod
|
|
@@ -1143,6 +1228,10 @@ class AllSiteSettings(FrontendSiteSettings):
|
|
|
1143
1228
|
lti_first_launch_content_id_enabled=parsed.LTI_FIRST_LAUNCH_CONTENT_ID_ENABLED,
|
|
1144
1229
|
lti_launch_data_logging=parsed.LTI_LAUNCH_DATA_LOGGING,
|
|
1145
1230
|
pearson_templates=parsed.PEARSON_TEMPLATES,
|
|
1231
|
+
default_course_teacher_role=parsed.DEFAULT_COURSE_TEACHER_ROLE,
|
|
1232
|
+
default_course_ta_role=parsed.DEFAULT_COURSE_TA_ROLE,
|
|
1233
|
+
lti_1p3_nonce_and_state_validation_enabled=parsed.LTI_1P3_NONCE_AND_STATE_VALIDATION_ENABLED,
|
|
1234
|
+
lti_1p3_prevent_nonce_reuse_enabled=parsed.LTI_1P3_PREVENT_NONCE_REUSE_ENABLED,
|
|
1146
1235
|
)
|
|
1147
1236
|
res.raw_data = d
|
|
1148
1237
|
return res
|
|
@@ -280,6 +280,9 @@ class CoursePermMap:
|
|
|
280
280
|
#: Users with this permission can create test submissions in the
|
|
281
281
|
#: assignments of this course.
|
|
282
282
|
can_create_test_submissions: "bool"
|
|
283
|
+
#: Users with this permission are allowed to see the details of Pearson
|
|
284
|
+
#: templates in a course (context).
|
|
285
|
+
can_view_pearson_context_templates: "bool"
|
|
283
286
|
|
|
284
287
|
raw_data: t.Optional[t.Dict[str, t.Any]] = field(init=False, repr=False)
|
|
285
288
|
|
|
@@ -1006,6 +1009,14 @@ class CoursePermMap:
|
|
|
1006
1009
|
" the assignments of this course."
|
|
1007
1010
|
),
|
|
1008
1011
|
),
|
|
1012
|
+
rqa.RequiredArgument(
|
|
1013
|
+
"can_view_pearson_context_templates",
|
|
1014
|
+
rqa.SimpleValue.bool,
|
|
1015
|
+
doc=(
|
|
1016
|
+
"Users with this permission are allowed to see the details"
|
|
1017
|
+
" of Pearson templates in a course (context)."
|
|
1018
|
+
),
|
|
1019
|
+
),
|
|
1009
1020
|
).use_readable_describe(True)
|
|
1010
1021
|
)
|
|
1011
1022
|
|
|
@@ -1174,6 +1185,9 @@ class CoursePermMap:
|
|
|
1174
1185
|
"can_create_test_submissions": to_dict(
|
|
1175
1186
|
self.can_create_test_submissions
|
|
1176
1187
|
),
|
|
1188
|
+
"can_view_pearson_context_templates": to_dict(
|
|
1189
|
+
self.can_view_pearson_context_templates
|
|
1190
|
+
),
|
|
1177
1191
|
}
|
|
1178
1192
|
return res
|
|
1179
1193
|
|
|
@@ -1269,6 +1283,7 @@ class CoursePermMap:
|
|
|
1269
1283
|
can_view_own_course_section_members=parsed.can_view_own_course_section_members,
|
|
1270
1284
|
can_view_all_assignment_timeframes=parsed.can_view_all_assignment_timeframes,
|
|
1271
1285
|
can_create_test_submissions=parsed.can_create_test_submissions,
|
|
1286
|
+
can_view_pearson_context_templates=parsed.can_view_pearson_context_templates,
|
|
1272
1287
|
)
|
|
1273
1288
|
res.raw_data = d
|
|
1274
1289
|
return res
|
|
@@ -105,3 +105,4 @@ class CoursePermission(str, Enum):
|
|
|
105
105
|
can_view_own_course_section_members = "can_view_own_course_section_members"
|
|
106
106
|
can_view_all_assignment_timeframes = "can_view_all_assignment_timeframes"
|
|
107
107
|
can_create_test_submissions = "can_create_test_submissions"
|
|
108
|
+
can_view_pearson_context_templates = "can_view_pearson_context_templates"
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"""The module that defines the ``DefaultCourseTaRoleSetting`` model.
|
|
2
|
+
|
|
3
|
+
SPDX-License-Identifier: AGPL-3.0-only OR BSD-3-Clause-Clear
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import typing as t
|
|
7
|
+
from dataclasses import dataclass, field
|
|
8
|
+
|
|
9
|
+
import cg_request_args as rqa
|
|
10
|
+
|
|
11
|
+
from ..utils import to_dict
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@dataclass
|
|
15
|
+
class DefaultCourseTaRoleSetting:
|
|
16
|
+
""" """
|
|
17
|
+
|
|
18
|
+
name: "t.Literal['DEFAULT_COURSE_TA_ROLE']"
|
|
19
|
+
value: "t.Optional[t.Literal['Full TA', 'Non-Editing TA']]"
|
|
20
|
+
|
|
21
|
+
raw_data: t.Optional[t.Dict[str, t.Any]] = field(init=False, repr=False)
|
|
22
|
+
|
|
23
|
+
data_parser: t.ClassVar = rqa.Lazy(
|
|
24
|
+
lambda: rqa.FixedMapping(
|
|
25
|
+
rqa.RequiredArgument(
|
|
26
|
+
"name",
|
|
27
|
+
rqa.StringEnum("DEFAULT_COURSE_TA_ROLE"),
|
|
28
|
+
doc="",
|
|
29
|
+
),
|
|
30
|
+
rqa.RequiredArgument(
|
|
31
|
+
"value",
|
|
32
|
+
rqa.Nullable(rqa.StringEnum("Full TA", "Non-Editing TA")),
|
|
33
|
+
doc="",
|
|
34
|
+
),
|
|
35
|
+
).use_readable_describe(True)
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
def to_dict(self) -> t.Dict[str, t.Any]:
|
|
39
|
+
res: t.Dict[str, t.Any] = {
|
|
40
|
+
"name": to_dict(self.name),
|
|
41
|
+
"value": to_dict(self.value),
|
|
42
|
+
}
|
|
43
|
+
return res
|
|
44
|
+
|
|
45
|
+
@classmethod
|
|
46
|
+
def from_dict(
|
|
47
|
+
cls: t.Type["DefaultCourseTaRoleSetting"], d: t.Dict[str, t.Any]
|
|
48
|
+
) -> "DefaultCourseTaRoleSetting":
|
|
49
|
+
parsed = cls.data_parser.try_parse(d)
|
|
50
|
+
|
|
51
|
+
res = cls(
|
|
52
|
+
name=parsed.name,
|
|
53
|
+
value=parsed.value,
|
|
54
|
+
)
|
|
55
|
+
res.raw_data = d
|
|
56
|
+
return res
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"""The module that defines the ``DefaultCourseTeacherRoleSetting`` model.
|
|
2
|
+
|
|
3
|
+
SPDX-License-Identifier: AGPL-3.0-only OR BSD-3-Clause-Clear
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import typing as t
|
|
7
|
+
from dataclasses import dataclass, field
|
|
8
|
+
|
|
9
|
+
import cg_request_args as rqa
|
|
10
|
+
|
|
11
|
+
from ..utils import to_dict
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@dataclass
|
|
15
|
+
class DefaultCourseTeacherRoleSetting:
|
|
16
|
+
""" """
|
|
17
|
+
|
|
18
|
+
name: "t.Literal['DEFAULT_COURSE_TEACHER_ROLE']"
|
|
19
|
+
value: "t.Optional[t.Literal['Full Teacher', 'Non-Editing Teacher']]"
|
|
20
|
+
|
|
21
|
+
raw_data: t.Optional[t.Dict[str, t.Any]] = field(init=False, repr=False)
|
|
22
|
+
|
|
23
|
+
data_parser: t.ClassVar = rqa.Lazy(
|
|
24
|
+
lambda: rqa.FixedMapping(
|
|
25
|
+
rqa.RequiredArgument(
|
|
26
|
+
"name",
|
|
27
|
+
rqa.StringEnum("DEFAULT_COURSE_TEACHER_ROLE"),
|
|
28
|
+
doc="",
|
|
29
|
+
),
|
|
30
|
+
rqa.RequiredArgument(
|
|
31
|
+
"value",
|
|
32
|
+
rqa.Nullable(
|
|
33
|
+
rqa.StringEnum("Full Teacher", "Non-Editing Teacher")
|
|
34
|
+
),
|
|
35
|
+
doc="",
|
|
36
|
+
),
|
|
37
|
+
).use_readable_describe(True)
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
def to_dict(self) -> t.Dict[str, t.Any]:
|
|
41
|
+
res: t.Dict[str, t.Any] = {
|
|
42
|
+
"name": to_dict(self.name),
|
|
43
|
+
"value": to_dict(self.value),
|
|
44
|
+
}
|
|
45
|
+
return res
|
|
46
|
+
|
|
47
|
+
@classmethod
|
|
48
|
+
def from_dict(
|
|
49
|
+
cls: t.Type["DefaultCourseTeacherRoleSetting"], d: t.Dict[str, t.Any]
|
|
50
|
+
) -> "DefaultCourseTeacherRoleSetting":
|
|
51
|
+
parsed = cls.data_parser.try_parse(d)
|
|
52
|
+
|
|
53
|
+
res = cls(
|
|
54
|
+
name=parsed.name,
|
|
55
|
+
value=parsed.value,
|
|
56
|
+
)
|
|
57
|
+
res.raw_data = d
|
|
58
|
+
return res
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"""The module that defines the ``Lti1p3NonceAndStateValidationEnabledSetting`` model.
|
|
2
|
+
|
|
3
|
+
SPDX-License-Identifier: AGPL-3.0-only OR BSD-3-Clause-Clear
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import typing as t
|
|
7
|
+
from dataclasses import dataclass, field
|
|
8
|
+
|
|
9
|
+
import cg_request_args as rqa
|
|
10
|
+
|
|
11
|
+
from ..utils import to_dict
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@dataclass
|
|
15
|
+
class Lti1p3NonceAndStateValidationEnabledSetting:
|
|
16
|
+
""" """
|
|
17
|
+
|
|
18
|
+
name: "t.Literal['LTI_1P3_NONCE_AND_STATE_VALIDATION_ENABLED']"
|
|
19
|
+
value: "t.Optional[bool]"
|
|
20
|
+
|
|
21
|
+
raw_data: t.Optional[t.Dict[str, t.Any]] = field(init=False, repr=False)
|
|
22
|
+
|
|
23
|
+
data_parser: t.ClassVar = rqa.Lazy(
|
|
24
|
+
lambda: rqa.FixedMapping(
|
|
25
|
+
rqa.RequiredArgument(
|
|
26
|
+
"name",
|
|
27
|
+
rqa.StringEnum("LTI_1P3_NONCE_AND_STATE_VALIDATION_ENABLED"),
|
|
28
|
+
doc="",
|
|
29
|
+
),
|
|
30
|
+
rqa.RequiredArgument(
|
|
31
|
+
"value",
|
|
32
|
+
rqa.Nullable(rqa.SimpleValue.bool),
|
|
33
|
+
doc="",
|
|
34
|
+
),
|
|
35
|
+
).use_readable_describe(True)
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
def to_dict(self) -> t.Dict[str, t.Any]:
|
|
39
|
+
res: t.Dict[str, t.Any] = {
|
|
40
|
+
"name": to_dict(self.name),
|
|
41
|
+
"value": to_dict(self.value),
|
|
42
|
+
}
|
|
43
|
+
return res
|
|
44
|
+
|
|
45
|
+
@classmethod
|
|
46
|
+
def from_dict(
|
|
47
|
+
cls: t.Type["Lti1p3NonceAndStateValidationEnabledSetting"],
|
|
48
|
+
d: t.Dict[str, t.Any],
|
|
49
|
+
) -> "Lti1p3NonceAndStateValidationEnabledSetting":
|
|
50
|
+
parsed = cls.data_parser.try_parse(d)
|
|
51
|
+
|
|
52
|
+
res = cls(
|
|
53
|
+
name=parsed.name,
|
|
54
|
+
value=parsed.value,
|
|
55
|
+
)
|
|
56
|
+
res.raw_data = d
|
|
57
|
+
return res
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"""The module that defines the ``Lti1p3PreventNonceReuseEnabledSetting`` model.
|
|
2
|
+
|
|
3
|
+
SPDX-License-Identifier: AGPL-3.0-only OR BSD-3-Clause-Clear
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import typing as t
|
|
7
|
+
from dataclasses import dataclass, field
|
|
8
|
+
|
|
9
|
+
import cg_request_args as rqa
|
|
10
|
+
|
|
11
|
+
from ..utils import to_dict
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@dataclass
|
|
15
|
+
class Lti1p3PreventNonceReuseEnabledSetting:
|
|
16
|
+
""" """
|
|
17
|
+
|
|
18
|
+
name: "t.Literal['LTI_1P3_PREVENT_NONCE_REUSE_ENABLED']"
|
|
19
|
+
value: "t.Optional[bool]"
|
|
20
|
+
|
|
21
|
+
raw_data: t.Optional[t.Dict[str, t.Any]] = field(init=False, repr=False)
|
|
22
|
+
|
|
23
|
+
data_parser: t.ClassVar = rqa.Lazy(
|
|
24
|
+
lambda: rqa.FixedMapping(
|
|
25
|
+
rqa.RequiredArgument(
|
|
26
|
+
"name",
|
|
27
|
+
rqa.StringEnum("LTI_1P3_PREVENT_NONCE_REUSE_ENABLED"),
|
|
28
|
+
doc="",
|
|
29
|
+
),
|
|
30
|
+
rqa.RequiredArgument(
|
|
31
|
+
"value",
|
|
32
|
+
rqa.Nullable(rqa.SimpleValue.bool),
|
|
33
|
+
doc="",
|
|
34
|
+
),
|
|
35
|
+
).use_readable_describe(True)
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
def to_dict(self) -> t.Dict[str, t.Any]:
|
|
39
|
+
res: t.Dict[str, t.Any] = {
|
|
40
|
+
"name": to_dict(self.name),
|
|
41
|
+
"value": to_dict(self.value),
|
|
42
|
+
}
|
|
43
|
+
return res
|
|
44
|
+
|
|
45
|
+
@classmethod
|
|
46
|
+
def from_dict(
|
|
47
|
+
cls: t.Type["Lti1p3PreventNonceReuseEnabledSetting"],
|
|
48
|
+
d: t.Dict[str, t.Any],
|
|
49
|
+
) -> "Lti1p3PreventNonceReuseEnabledSetting":
|
|
50
|
+
parsed = cls.data_parser.try_parse(d)
|
|
51
|
+
|
|
52
|
+
res = cls(
|
|
53
|
+
name=parsed.name,
|
|
54
|
+
value=parsed.value,
|
|
55
|
+
)
|
|
56
|
+
res.raw_data = d
|
|
57
|
+
return res
|
|
@@ -103,6 +103,10 @@ from .course_gradebook_render_warning_size_setting import (
|
|
|
103
103
|
from .course_register_enabled_setting import CourseRegisterEnabledSetting
|
|
104
104
|
from .csv_large_file_limit_setting import CsvLargeFileLimitSetting
|
|
105
105
|
from .csv_too_many_errors_limit_setting import CsvTooManyErrorsLimitSetting
|
|
106
|
+
from .default_course_ta_role_setting import DefaultCourseTaRoleSetting
|
|
107
|
+
from .default_course_teacher_role_setting import (
|
|
108
|
+
DefaultCourseTeacherRoleSetting,
|
|
109
|
+
)
|
|
106
110
|
from .editor_enabled_for_teachers_setting import (
|
|
107
111
|
EditorEnabledForTeachersSetting,
|
|
108
112
|
)
|
|
@@ -140,9 +144,15 @@ from .is_admin_permission_enabled_setting import (
|
|
|
140
144
|
from .jwt_access_token_expires_setting import JwtAccessTokenExpiresSetting
|
|
141
145
|
from .linters_enabled_setting import LintersEnabledSetting
|
|
142
146
|
from .login_token_before_time_setting import LoginTokenBeforeTimeSetting
|
|
147
|
+
from .lti1p3_nonce_and_state_validation_enabled_setting import (
|
|
148
|
+
Lti1p3NonceAndStateValidationEnabledSetting,
|
|
149
|
+
)
|
|
143
150
|
from .lti1p3_parse_most_privileged_role_setting import (
|
|
144
151
|
Lti1p3ParseMostPrivilegedRoleSetting,
|
|
145
152
|
)
|
|
153
|
+
from .lti1p3_prevent_nonce_reuse_enabled_setting import (
|
|
154
|
+
Lti1p3PreventNonceReuseEnabledSetting,
|
|
155
|
+
)
|
|
146
156
|
from .lti1p3_system_role_from_context_role_setting import (
|
|
147
157
|
Lti1p3SystemRoleFromContextRoleSetting,
|
|
148
158
|
)
|
|
@@ -396,6 +406,10 @@ SiteSettingInput = t.Union[
|
|
|
396
406
|
SimpleSubmissionNavigateToLatestEditorSessionSetting,
|
|
397
407
|
GradeViewerAndEditorOnSubmissionEnabledSetting,
|
|
398
408
|
HideEmptyRubricRowDescriptionSetting,
|
|
409
|
+
DefaultCourseTeacherRoleSetting,
|
|
410
|
+
DefaultCourseTaRoleSetting,
|
|
411
|
+
Lti1p3NonceAndStateValidationEnabledSetting,
|
|
412
|
+
Lti1p3PreventNonceReuseEnabledSetting,
|
|
399
413
|
]
|
|
400
414
|
SiteSettingInputParser = rqa.Lazy(
|
|
401
415
|
lambda: make_union(
|
|
@@ -520,5 +534,9 @@ SiteSettingInputParser = rqa.Lazy(
|
|
|
520
534
|
ParserFor.make(SimpleSubmissionNavigateToLatestEditorSessionSetting),
|
|
521
535
|
ParserFor.make(GradeViewerAndEditorOnSubmissionEnabledSetting),
|
|
522
536
|
ParserFor.make(HideEmptyRubricRowDescriptionSetting),
|
|
537
|
+
ParserFor.make(DefaultCourseTeacherRoleSetting),
|
|
538
|
+
ParserFor.make(DefaultCourseTaRoleSetting),
|
|
539
|
+
ParserFor.make(Lti1p3NonceAndStateValidationEnabledSetting),
|
|
540
|
+
ParserFor.make(Lti1p3PreventNonceReuseEnabledSetting),
|
|
523
541
|
),
|
|
524
542
|
)
|
|
@@ -21,7 +21,7 @@ install_requires = \
|
|
|
21
21
|
|
|
22
22
|
setup_kwargs = {
|
|
23
23
|
'name': 'codegrade',
|
|
24
|
-
'version': '16.1.
|
|
24
|
+
'version': '16.1.51',
|
|
25
25
|
'description': 'A client library for accessing CodeGrade',
|
|
26
26
|
'long_description': '# CodeGrade API\n\nThis library makes it easier to use the CodeGrade API. Its API allows you to\nautomate your usage of CodeGrade. We are currently still busy documenting the\nentire API, but everything that is possible in the UI of CodeGrade is also\npossible through the API.\n## Installation\nYou can install the library through [pypi](https://pypi.org/), simply run\n`python3 -m pip install codegrade`. If you want to get a dev version with support\nfor the latest features, simply email [support@codegrade.com](mailto:support@codegrade.com)\nand we\'ll provide you with a dev version.\n## Usage\nFirst, create a client:\n\n```python\nimport codegrade\n\n# Don\'t store your password in your code!\nwith codegrade.login(\n username=\'my-username\',\n password=os.getenv(\'CG_PASSWORD\'),\n tenant=\'My University\',\n) as client:\n pass\n\n# Or supply information interactively.\nwith codegrade.login_from_cli() as client:\n pass\n```\n\nNow call your endpoint and use your models:\n\n```python\nfrom codegrade.models import PatchCourseData\n\ncourses = client.course.get_all()\nfor course in courses:\n client.course.patch(\n PatchCourseData(name=course.name + \' (NEW)\'),\n course_id=course.id,\n )\n\n# Or, simply use dictionaries.\nfor course in courses:\n client.course.patch(\n {"name": course.name + \' (NEW)\'},\n course_id=course.id,\n )\n```\n\nFor the complete documentation go to\nhttps://python.api.codegrade.com.\n## Backwards compatibility\nCodeGrade is constantly upgrading its API, but we try to minimize backwards\nincompatible changes. We\'ll announce every backwards incompatible change in the\n[changelog](http://codegrade.com/changelog). A new version of the API\nclient is released with every release of CodeGrade, which is approximately every\nmonth. To upgrade simply run `pip install --upgrade codegrade`.\n## Supported python versions\nWe support python 3.6 and above, `pypy` is currently not tested but should work\njust fine.\n## License\nThe library is licensed under AGPL-3.0-only or BSD-3-Clause-Clear.',
|
|
27
27
|
'author': 'None',
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|