codegrade 16.1.37__tar.gz → 16.1.39__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.37 → codegrade-16.1.39}/PKG-INFO +1 -1
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_request_args/_base.py +9 -4
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/__init__.py +1 -1
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/client.py +2 -2
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/__init__.py +7 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/all_site_settings.py +12 -2
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/assignment.py +10 -0
- codegrade-16.1.39/codegrade/models/assignment_submission_mode.py +10 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/frontend_site_settings.py +49 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/patch_assignment_data.py +16 -4
- codegrade-16.1.39/codegrade/models/simple_submission_mode_enabled_setting.py +57 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/site_setting_input.py +10 -0
- codegrade-16.1.39/codegrade/models/submissions_page_v2_enabled_setting.py +56 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/update_peer_feedback_settings_assignment_data.py +2 -2
- {codegrade-16.1.37 → codegrade-16.1.39}/pyproject.toml +1 -1
- {codegrade-16.1.37 → codegrade-16.1.39}/setup.py +1 -1
- {codegrade-16.1.37 → codegrade-16.1.39}/README.md +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_dt_utils/__init__.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_dt_utils/py.typed +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_maybe/__init__.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_maybe/_just.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_maybe/_maybe.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_maybe/_nothing.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_maybe/_type_helpers.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_maybe/cg_maybe_plugin.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_maybe/py.typed +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_maybe/utils.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_request_args/__init__.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_request_args/_any_value.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_request_args/_convert.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_request_args/_enum.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_request_args/_form.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_request_args/_lazy.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_request_args/_list.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_request_args/_literal.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_request_args/_mapping.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_request_args/_multipart.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_request_args/_nullable.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_request_args/_parse_utils.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_request_args/_query.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_request_args/_rich_value.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_request_args/_swagger_utils.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_request_args/_swaggerize.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_request_args/_utils.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_request_args/exceptions.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_request_args/py.typed +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/cg_request_args/request_args_plugin.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/_api/__init__.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/_api/about.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/_api/assignment.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/_api/auto_test.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/_api/comment.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/_api/course.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/_api/course_price.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/_api/file.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/_api/git_provider.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/_api/group.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/_api/group_set.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/_api/login_link.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/_api/lti.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/_api/notification.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/_api/oauth_provider.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/_api/oauth_token.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/_api/permission.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/_api/plagiarism.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/_api/role.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/_api/section.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/_api/site_settings.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/_api/snippet.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/_api/sso_provider.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/_api/submission.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/_api/task_result.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/_api/tenant.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/_api/transaction.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/_api/user.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/_api/user_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/_api/webhook.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/errors.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/_base_price.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/_saml_ui_logo_info.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/_submission_rubric_item_data_parser.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/about.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/abstract_role.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/add_users_section_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/all_auto_test_results.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/any_auto_test_step_as_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/any_error.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/any_non_redacted_auto_test_step_as_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/any_redacted_auto_test_step_as_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/api_codes.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/assignment_anonymization_algo.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/assignment_default_grading_scale_points_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/assignment_default_grading_scale_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/assignment_description_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/assignment_description_on_teachers_submissions_page_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/assignment_done_type.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/assignment_export_column.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/assignment_feedback.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/assignment_grader.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/assignment_grading_scale_points_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/assignment_kind.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/assignment_login_link.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/assignment_max_points_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/assignment_peer_feedback_connection.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/assignment_peer_feedback_settings.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/assignment_percentage_decimals_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/assignment_percentage_grading_settings.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/assignment_point_decimals_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/assignment_points_grading_settings.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/assignment_section_timeframe.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/assignment_state_enum.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/assignment_template.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/assignment_timeframes.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/at_image_caching_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_capture_points_message_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_checkpoint_message_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_code_quality_message_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_fixture.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_global_setup_output.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_global_setup_script.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_heartbeat_interval_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_heartbeat_max_missed_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_io_test_message_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_io_test_sub_message_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_max_concurrent_batch_runs_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_max_global_setup_time_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_max_jobs_per_runner_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_max_per_student_setup_time_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_max_result_not_started_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_max_time_command_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_max_unit_test_metadata_length_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_quality_comment.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_result.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_result_state.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_result_with_extra_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_run.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_run_program_message_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_runner.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_runner_state.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_set.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_step_base.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_step_base_as_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_step_base_input_as_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_step_log_base.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_step_result.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_step_result_state.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_step_validation_exception.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_suite.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/auto_test_unit_test_message_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/automatic_lti1p3_assignment_import_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/automatic_lti_role_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/base_about.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/base_auto_test_quality_comment.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/base_comment_base.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/base_comment_base_with_extended_replies.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/base_comment_base_with_normal_replies.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/base_comment_reply.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/base_course_coupon.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/base_directory.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/base_error.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/base_file.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/base_lms_capabilities.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/base_lti1p1_provider.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/base_lti1p3_provider.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/base_lti_provider.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/base_notification.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/base_release_info.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/base_rubric_item.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/base_tenant_coupon.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/blackboard_zip_upload_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/bulk_enroll_course_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/canvas_course_id_copying_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/cg_ignore_version.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/change_user_role_course_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/check_points_as_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/check_points_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/check_points_extra.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/check_points_input_as_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/clone_result.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/code_quality_as_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/code_quality_base_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/code_quality_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/code_quality_extra.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/code_quality_input_as_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/code_quality_penalties.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/column_range.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/comment_base.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/comment_reply.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/comment_reply_edit.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/comment_reply_type.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/comment_type.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/community_library_publishing_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/community_library_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/connect_repository_git_provider_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/copy_auto_test_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/copy_rubric_assignment_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/coupon_data_parser.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/coupon_with_code.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/coupon_without_code.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/course.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/course_bulk_enroll_result.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/course_bulk_register_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/course_coupon.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/course_coupon_usage.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/course_gradebook_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/course_gradebook_render_warning_size_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/course_of_course_price.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/course_of_tenant_coupon_usage.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/course_perm_map.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/course_permission.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/course_price.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/course_register_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/course_register_response.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/course_registration_link.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/course_role.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/course_role_as_json_with_perms.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/course_section.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/course_section_division.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/course_section_division_connection.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/course_section_division_user.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/course_snippet.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/course_state.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/course_statistics_as_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/create_assignment_course_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/create_auto_test_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/create_comment_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/create_comment_reply_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/create_course_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/create_division_section_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/create_group_group_set_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/create_group_set_course_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/create_lti_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/create_output_html_proxy_auto_test_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/create_proxy_submission_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/create_repository_git_provider_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/create_role_course_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/create_section_course_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/create_snippet_course_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/create_snippet_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/create_sso_provider_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/create_tenant_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/csv_large_file_limit_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/csv_too_many_errors_limit_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/currency.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/custom_output_as_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/custom_output_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/custom_output_extra.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/custom_output_input_as_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/custom_output_log.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/custom_output_log_base.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/deleted_comment_reply.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/deletion_type.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/directory_with_children.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/disabled_setting_exception.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/editor_enabled_for_teachers_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/editor_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/email_notification_types.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/email_students_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/email_users_course_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/exam_login_max_length_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/export_assignment_csv_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/export_assignment_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/export_assignment_files_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/extended_auto_test_result.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/extended_auto_test_run.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/extended_course.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/extended_course_registration_link.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/extended_course_section.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/extended_group.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/extended_job.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/extended_non_deleted_comment_reply.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/extended_tenant.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/extended_transaction.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/extended_user.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/extended_work.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/extract_file_tree_directory.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/extract_file_tree_file.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/failed_to_send_email_exception.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/feedback_base.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/feedback_threads_initially_collapsed_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/feedback_with_replies.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/feedback_without_replies.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/file_deletion.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/file_rule.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/file_rule_input_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/file_tree.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/file_type.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/finalized_lti1p1_provider.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/finalized_lti1p3_provider.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/first_phase_lti_launch_exception.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/fixed_availability.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/fixed_grade_availability.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/fixture_like.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/fraction.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/general_feedback_comment_base.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/general_feedback_comment_base_with_extended_replies.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/general_feedback_extra.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/git_repositories_page.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/git_repository_like.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/git_user_info.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/github_template_repo_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/global_perm_map.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/global_permission.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/grade_history.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/grade_origin.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/grading_notifications_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/group.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/group_not_ready_for_submission_exception.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/group_set.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/groups_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/has_unread_notifcation_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/health_information.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/ignore_handling.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/ignored_files_exception.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/import_into_assignment_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/import_into_course_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/incremental_rubric_submission_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/inline_feedback_comment_base.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/inline_feedback_comment_base_with_extended_replies.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/inline_feedback_extra.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/inline_rubric_viewer_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/invalid_group_exception.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/invalid_io_cases_exception.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/invalid_options_exception.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/io_test_as_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/io_test_base_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/io_test_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/io_test_extra.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/io_test_input_as_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/io_test_input_case.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/io_test_log.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/io_test_option.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/io_test_step_log.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/io_test_step_log_base.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/is_admin_permission_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/job.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/json_create_auto_test.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/json_create_tenant.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/json_patch_auto_test.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/json_patch_submit_types_assignment.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/junit_test_as_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/junit_test_base_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/junit_test_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/junit_test_extra.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/junit_test_input_as_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/junit_test_log.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/junit_test_log_base.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/jwt_access_token_expires_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/legacy_features.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/line_range.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/linter_comment.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/linters_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/lms_capabilities.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/login_token_before_time_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/login_user_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/logout_response.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/logout_user_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/lti1p1_provider.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/lti1p1_provider_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/lti1p3_parse_most_privileged_role_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/lti1p3_provider.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/lti1p3_provider_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/lti1p3_provider_presentation_as_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/lti1p3_system_role_from_context_role_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/lti_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/lti_first_launch_content_id_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/lti_lock_date_copying_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/lti_provider_base.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/lti_unset_deadline_lock_date_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/max_document_update_size_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/max_dynamo_file_size_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/max_dynamo_submission_size_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/max_file_size_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/max_large_upload_size_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/max_lines_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/max_mirror_file_age_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/max_normal_upload_size_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/max_number_of_files_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/max_plagiarism_matches_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/max_user_setting_amount_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/min_password_score_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/mirror_file_result.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/missing_cookie_error.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/missing_file.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/new_auto_test_allowed_initial_build_ids_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/new_auto_test_build_max_command_time_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/new_auto_test_build_output_limit_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/new_auto_test_copying_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/new_auto_test_current_initial_build_ids_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/new_auto_test_diff_viewer_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/new_auto_test_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/new_auto_test_initial_build_id_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/new_auto_test_max_dynamodb_size_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/new_auto_test_max_file_size_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/new_auto_test_max_output_files_size_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/new_auto_test_max_storage_size_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/new_auto_test_old_submission_age_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/new_auto_test_test_max_command_time_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/new_auto_test_test_output_limit_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/new_auto_test_uncollapsing_step_output_delay_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/no_permissions.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/non_deleted_comment_reply.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/non_finalized_lti1p1_provider.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/non_finalized_lti1p3_provider.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/non_present_preference.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/notification.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/notification_comment_reply_notification_as_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/notification_general_feedback_reply_notification_as_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/notification_poll_time_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/notification_reasons.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/notification_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/notification_setting_option.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/notifications_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/oauth_provider.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/oauth_token.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/option.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/options_input_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/output_viewer_animation_limit_lines_count_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/parse_api_exception.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/patch1_p1_provider_lti_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/patch1_p3_provider_lti_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/patch_all_notification_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/patch_auto_test_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/patch_comment_reply_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/patch_course_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/patch_grader_submission_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/patch_notification_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/patch_notification_setting_user_setting_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/patch_provider_lti_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/patch_role_course_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/patch_role_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/patch_role_tenant_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/patch_rubric_category_type_assignment_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/patch_rubric_result_submission_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/patch_section_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/patch_settings_tenant_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/patch_site_settings_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/patch_snippet_course_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/patch_snippet_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/patch_submission_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/patch_submit_types_assignment_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/patch_tenant_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/patch_ui_preference_user_setting_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/patch_user_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/pay_with_coupon_course_price_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/peer_feedback_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/permission_exception.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/plagiarism_bulk_export_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/plagiarism_bulk_export_max_cases_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/plagiarism_case.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/plagiarism_pdf_export_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/plagiarism_run.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/plagiarism_run_plagiarism_assignment_as_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/plagiarism_run_plagiarism_course_as_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/plagiarism_state.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/post_oauth_token_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/present_preference.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/proxy.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/put_description_assignment_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/put_enroll_link_course_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/put_price_course_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/put_price_tenant_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/put_rubric_assignment_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/quality_comment_severity.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/quality_comments_in_code_editor_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/quality_test_log.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/quality_test_log_base.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/register_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/register_user_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/register_user_with_link_course_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/release_info.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/release_message_max_time_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/rename_group_group_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/render_html_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/repository_connection_limit_reached_exception.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/reset_token_time_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/result_data_get_auto_test_get.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/result_data_get_task_result_get_all.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/result_data_post_login_link_login.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/result_data_post_section_create_division.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/result_data_post_user_login.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/result_data_post_user_register.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/role_as_json_with_perms.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/root_file_trees_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/rubric_description_type.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/rubric_enabled_for_teacher_on_submissions_page_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/rubric_item.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/rubric_item_input_as_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/rubric_lock_reason.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/rubric_row_base.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/rubric_row_base_input_as_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/rubric_row_base_input_base_as_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/rubrics_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/rule_type.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/run_program_as_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/run_program_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/run_program_extra.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/run_program_input_as_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/run_program_log.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/saml2_provider_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/saml_ui_info.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/sections_in_submission_list_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/send_registration_email_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/server_time_correction_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/server_time_diff_tolerance_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/server_time_sync_interval_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/setting_token_time_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/setup_oauth_result.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/site_email_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/snippet.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/sso_infer_global_staff_role_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/sso_username_decollision_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/staged_assignment_importer_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/start_payment_course_price_close_tab_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/start_payment_course_price_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/start_payment_course_price_redirect_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/started_transaction.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/student_payment_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/submission_validator_input_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/submissions_per_page_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/task_result_state.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/tax_behavior.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/tenant.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/tenant_coupon.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/tenant_coupon_usage.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/tenant_coupon_with_code.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/tenant_coupon_without_code.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/tenant_course_statistics.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/tenant_of_tenant_price.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/tenant_permissions.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/tenant_price.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/tenant_role_as_json_with_perms.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/tenant_statistics.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/test_submission_copying_on_import_enabled_setting.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/timed_availability.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/timeframe_like.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/token_revoked_exception.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/transaction.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/transaction_state.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/types.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/update_set_auto_test_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/update_suite_auto_test_base_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/update_suite_auto_test_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/upgraded_lti_provider_exception.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/upload_submission_assignment_data.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/user.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/user_course.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/user_info_with_role.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/user_input.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/user_without_group.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/weak_password_exception.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/weak_password_feedback.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/webhook_base.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/webhook_configuration_disabled_as_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/webhook_configuration_enabled_as_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/work.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/work_origin.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/work_rubric_item.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/work_rubric_result_as_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/models/work_rubric_result_points_as_json.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/parsers.py +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/py.typed +0 -0
- {codegrade-16.1.37 → codegrade-16.1.39}/codegrade/utils.py +0 -0
|
@@ -210,10 +210,15 @@ class Parser(t.Generic[_T_COV]):
|
|
|
210
210
|
|
|
211
211
|
:returns: The parsed data.
|
|
212
212
|
"""
|
|
213
|
-
if
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
213
|
+
if isinstance(json, dict):
|
|
214
|
+
to_log: t.Dict[str, object] = {}
|
|
215
|
+
for key, value in json.items():
|
|
216
|
+
if isinstance(key, str) and 'pass' in key.lower():
|
|
217
|
+
to_log[key] = '<PASSWORD>'
|
|
218
|
+
elif log_replacer is None:
|
|
219
|
+
to_log[key] = value
|
|
220
|
+
else:
|
|
221
|
+
to_log[key] = log_replacer(key, value)
|
|
217
222
|
logger.info(msg, request_data=to_log)
|
|
218
223
|
else:
|
|
219
224
|
# The replacers are used for top level objects, in this case it is
|
|
@@ -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.39",
|
|
530
530
|
},
|
|
531
531
|
)
|
|
532
532
|
|
|
@@ -545,7 +545,7 @@ class AuthenticatedClient(_BaseClient):
|
|
|
545
545
|
base_url=self.base_url,
|
|
546
546
|
headers={
|
|
547
547
|
"Authorization": f"Bearer {self.token}",
|
|
548
|
-
"User-Agent": "CodeGradeAPI/16.1.
|
|
548
|
+
"User-Agent": "CodeGradeAPI/16.1.39",
|
|
549
549
|
},
|
|
550
550
|
)
|
|
551
551
|
|
|
@@ -60,6 +60,7 @@ from .assignment_point_decimals_setting import AssignmentPointDecimalsSetting
|
|
|
60
60
|
from .assignment_points_grading_settings import AssignmentPointsGradingSettings
|
|
61
61
|
from .assignment_section_timeframe import AssignmentSectionTimeframe
|
|
62
62
|
from .assignment_state_enum import AssignmentStateEnum
|
|
63
|
+
from .assignment_submission_mode import AssignmentSubmissionMode
|
|
63
64
|
from .assignment_template import AssignmentTemplate
|
|
64
65
|
from .assignment_timeframes import AssignmentTimeframes
|
|
65
66
|
from .at_image_caching_enabled_setting import AtImageCachingEnabledSetting
|
|
@@ -607,6 +608,9 @@ from .server_time_diff_tolerance_setting import ServerTimeDiffToleranceSetting
|
|
|
607
608
|
from .server_time_sync_interval_setting import ServerTimeSyncIntervalSetting
|
|
608
609
|
from .setting_token_time_setting import SettingTokenTimeSetting
|
|
609
610
|
from .setup_oauth_result import SetupOAuthResult
|
|
611
|
+
from .simple_submission_mode_enabled_setting import (
|
|
612
|
+
SimpleSubmissionModeEnabledSetting,
|
|
613
|
+
)
|
|
610
614
|
from .site_email_setting import SiteEmailSetting
|
|
611
615
|
from .site_setting_input import SiteSettingInput
|
|
612
616
|
from .snippet import Snippet
|
|
@@ -627,6 +631,9 @@ from .start_payment_course_price_redirect_data import (
|
|
|
627
631
|
from .started_transaction import StartedTransaction
|
|
628
632
|
from .student_payment_enabled_setting import StudentPaymentEnabledSetting
|
|
629
633
|
from .submission_validator_input_data import SubmissionValidatorInputData
|
|
634
|
+
from .submissions_page_v2_enabled_setting import (
|
|
635
|
+
SubmissionsPageV2EnabledSetting,
|
|
636
|
+
)
|
|
630
637
|
from .submissions_per_page_enabled_setting import (
|
|
631
638
|
SubmissionsPerPageEnabledSetting,
|
|
632
639
|
)
|
|
@@ -122,7 +122,7 @@ class AllSiteSettings(FrontendSiteSettings):
|
|
|
122
122
|
#: LMS, instead of the first role that matches any of our definitions.
|
|
123
123
|
lti_1p3_parse_most_privileged_role: Maybe["bool"] = Nothing
|
|
124
124
|
#: Whether we act upon the custom claims parameter for content id, which we
|
|
125
|
-
#: then use to import an item from the community
|
|
125
|
+
#: then use to import an item from the community library. This feature
|
|
126
126
|
#: enables that we check for this content id in the launch parameters.
|
|
127
127
|
lti_first_launch_content_id_enabled: Maybe["bool"] = Nothing
|
|
128
128
|
|
|
@@ -423,7 +423,7 @@ class AllSiteSettings(FrontendSiteSettings):
|
|
|
423
423
|
doc=(
|
|
424
424
|
"Whether we act upon the custom claims parameter for"
|
|
425
425
|
" content id, which we then use to import an item from"
|
|
426
|
-
" the community
|
|
426
|
+
" the community library. This feature enables that we"
|
|
427
427
|
" check for this content id in the launch parameters."
|
|
428
428
|
),
|
|
429
429
|
),
|
|
@@ -825,6 +825,14 @@ class AllSiteSettings(FrontendSiteSettings):
|
|
|
825
825
|
res["INLINE_RUBRIC_VIEWER_ENABLED"] = to_dict(
|
|
826
826
|
self.inline_rubric_viewer_enabled.value
|
|
827
827
|
)
|
|
828
|
+
if self.submissions_page_v2_enabled.is_just:
|
|
829
|
+
res["SUBMISSIONS_PAGE_V2_ENABLED"] = to_dict(
|
|
830
|
+
self.submissions_page_v2_enabled.value
|
|
831
|
+
)
|
|
832
|
+
if self.simple_submission_mode_enabled.is_just:
|
|
833
|
+
res["SIMPLE_SUBMISSION_MODE_ENABLED"] = to_dict(
|
|
834
|
+
self.simple_submission_mode_enabled.value
|
|
835
|
+
)
|
|
828
836
|
if self.auto_test_heartbeat_interval.is_just:
|
|
829
837
|
res["AUTO_TEST_HEARTBEAT_INTERVAL"] = to_dict(
|
|
830
838
|
self.auto_test_heartbeat_interval.value
|
|
@@ -1039,6 +1047,8 @@ class AllSiteSettings(FrontendSiteSettings):
|
|
|
1039
1047
|
assignment_description_on_teachers_submissions_page=parsed.ASSIGNMENT_DESCRIPTION_ON_TEACHERS_SUBMISSIONS_PAGE,
|
|
1040
1048
|
submissions_per_page_enabled=parsed.SUBMISSIONS_PER_PAGE_ENABLED,
|
|
1041
1049
|
inline_rubric_viewer_enabled=parsed.INLINE_RUBRIC_VIEWER_ENABLED,
|
|
1050
|
+
submissions_page_v2_enabled=parsed.SUBMISSIONS_PAGE_V2_ENABLED,
|
|
1051
|
+
simple_submission_mode_enabled=parsed.SIMPLE_SUBMISSION_MODE_ENABLED,
|
|
1042
1052
|
auto_test_heartbeat_interval=parsed.AUTO_TEST_HEARTBEAT_INTERVAL,
|
|
1043
1053
|
auto_test_heartbeat_max_missed=parsed.AUTO_TEST_HEARTBEAT_MAX_MISSED,
|
|
1044
1054
|
auto_test_max_jobs_per_runner=parsed.AUTO_TEST_MAX_JOBS_PER_RUNNER,
|
|
@@ -18,6 +18,7 @@ from .assignment_percentage_grading_settings import (
|
|
|
18
18
|
AssignmentPercentageGradingSettings,
|
|
19
19
|
)
|
|
20
20
|
from .assignment_points_grading_settings import AssignmentPointsGradingSettings
|
|
21
|
+
from .assignment_submission_mode import AssignmentSubmissionMode
|
|
21
22
|
from .cg_ignore_version import CGIgnoreVersion
|
|
22
23
|
from .fixed_grade_availability import FixedGradeAvailability
|
|
23
24
|
from .group_set import GroupSet
|
|
@@ -141,6 +142,8 @@ class Assignment(TimeframeLike):
|
|
|
141
142
|
grade_availability: "FixedGradeAvailability"
|
|
142
143
|
#: Does this assignment have multiple timeframes.
|
|
143
144
|
has_multiple_timeframes: "bool"
|
|
145
|
+
#: Which submission mode is set for the assignment.
|
|
146
|
+
submission_mode: "AssignmentSubmissionMode"
|
|
144
147
|
|
|
145
148
|
raw_data: t.Optional[t.Dict[str, t.Any]] = field(init=False, repr=False)
|
|
146
149
|
|
|
@@ -440,6 +443,11 @@ class Assignment(TimeframeLike):
|
|
|
440
443
|
rqa.SimpleValue.bool,
|
|
441
444
|
doc="Does this assignment have multiple timeframes.",
|
|
442
445
|
),
|
|
446
|
+
rqa.RequiredArgument(
|
|
447
|
+
"submission_mode",
|
|
448
|
+
rqa.EnumValue(AssignmentSubmissionMode),
|
|
449
|
+
doc="Which submission mode is set for the assignment.",
|
|
450
|
+
),
|
|
443
451
|
)
|
|
444
452
|
).use_readable_describe(True)
|
|
445
453
|
)
|
|
@@ -484,6 +492,7 @@ class Assignment(TimeframeLike):
|
|
|
484
492
|
"file_to_load_first": to_dict(self.file_to_load_first),
|
|
485
493
|
"grade_availability": to_dict(self.grade_availability),
|
|
486
494
|
"has_multiple_timeframes": to_dict(self.has_multiple_timeframes),
|
|
495
|
+
"submission_mode": to_dict(self.submission_mode),
|
|
487
496
|
"availability": to_dict(self.availability),
|
|
488
497
|
"deadline": to_dict(self.deadline),
|
|
489
498
|
"lock_date": to_dict(self.lock_date),
|
|
@@ -533,6 +542,7 @@ class Assignment(TimeframeLike):
|
|
|
533
542
|
file_to_load_first=parsed.file_to_load_first,
|
|
534
543
|
grade_availability=parsed.grade_availability,
|
|
535
544
|
has_multiple_timeframes=parsed.has_multiple_timeframes,
|
|
545
|
+
submission_mode=parsed.submission_mode,
|
|
536
546
|
availability=parsed.availability,
|
|
537
547
|
deadline=parsed.deadline,
|
|
538
548
|
lock_date=parsed.lock_date,
|
|
@@ -266,6 +266,17 @@ class FrontendSiteSettings:
|
|
|
266
266
|
#: otherwise use a dropdown with previous and next buttons to select
|
|
267
267
|
#: categories.
|
|
268
268
|
inline_rubric_viewer_enabled: Maybe["bool"] = Nothing
|
|
269
|
+
#: Whether the new component for the submissions page is loaded instead of
|
|
270
|
+
#: the old one.
|
|
271
|
+
submissions_page_v2_enabled: Maybe["bool"] = Nothing
|
|
272
|
+
#: An assignment with a simplified submission mode will allow only
|
|
273
|
+
#: submissions made with the code editor. This will launch students
|
|
274
|
+
#: directly in the code editor if they have not created a session yet, to
|
|
275
|
+
#: their latest session if there is no submission, or to their latest
|
|
276
|
+
#: submission if available. Submitting via file upload or via Git, Group
|
|
277
|
+
#: assignments, and hand in requirements are not available with the
|
|
278
|
+
#: simplified submission mode enabled.
|
|
279
|
+
simple_submission_mode_enabled: Maybe["bool"] = Nothing
|
|
269
280
|
|
|
270
281
|
raw_data: t.Optional[t.Dict[str, t.Any]] = field(init=False, repr=False)
|
|
271
282
|
|
|
@@ -903,6 +914,28 @@ class FrontendSiteSettings:
|
|
|
903
914
|
" next buttons to select categories."
|
|
904
915
|
),
|
|
905
916
|
),
|
|
917
|
+
rqa.OptionalArgument(
|
|
918
|
+
"SUBMISSIONS_PAGE_V2_ENABLED",
|
|
919
|
+
rqa.SimpleValue.bool,
|
|
920
|
+
doc=(
|
|
921
|
+
"Whether the new component for the submissions page is"
|
|
922
|
+
" loaded instead of the old one."
|
|
923
|
+
),
|
|
924
|
+
),
|
|
925
|
+
rqa.OptionalArgument(
|
|
926
|
+
"SIMPLE_SUBMISSION_MODE_ENABLED",
|
|
927
|
+
rqa.SimpleValue.bool,
|
|
928
|
+
doc=(
|
|
929
|
+
"An assignment with a simplified submission mode will"
|
|
930
|
+
" allow only submissions made with the code editor. This"
|
|
931
|
+
" will launch students directly in the code editor if they"
|
|
932
|
+
" have not created a session yet, to their latest session"
|
|
933
|
+
" if there is no submission, or to their latest submission"
|
|
934
|
+
" if available. Submitting via file upload or via Git,"
|
|
935
|
+
" Group assignments, and hand in requirements are not"
|
|
936
|
+
" available with the simplified submission mode enabled."
|
|
937
|
+
),
|
|
938
|
+
),
|
|
906
939
|
).use_readable_describe(True)
|
|
907
940
|
)
|
|
908
941
|
|
|
@@ -1129,6 +1162,12 @@ class FrontendSiteSettings:
|
|
|
1129
1162
|
self.inline_rubric_viewer_enabled = maybe_from_nullable(
|
|
1130
1163
|
self.inline_rubric_viewer_enabled
|
|
1131
1164
|
)
|
|
1165
|
+
self.submissions_page_v2_enabled = maybe_from_nullable(
|
|
1166
|
+
self.submissions_page_v2_enabled
|
|
1167
|
+
)
|
|
1168
|
+
self.simple_submission_mode_enabled = maybe_from_nullable(
|
|
1169
|
+
self.simple_submission_mode_enabled
|
|
1170
|
+
)
|
|
1132
1171
|
|
|
1133
1172
|
def to_dict(self) -> t.Dict[str, t.Any]:
|
|
1134
1173
|
res: t.Dict[str, t.Any] = {}
|
|
@@ -1428,6 +1467,14 @@ class FrontendSiteSettings:
|
|
|
1428
1467
|
res["INLINE_RUBRIC_VIEWER_ENABLED"] = to_dict(
|
|
1429
1468
|
self.inline_rubric_viewer_enabled.value
|
|
1430
1469
|
)
|
|
1470
|
+
if self.submissions_page_v2_enabled.is_just:
|
|
1471
|
+
res["SUBMISSIONS_PAGE_V2_ENABLED"] = to_dict(
|
|
1472
|
+
self.submissions_page_v2_enabled.value
|
|
1473
|
+
)
|
|
1474
|
+
if self.simple_submission_mode_enabled.is_just:
|
|
1475
|
+
res["SIMPLE_SUBMISSION_MODE_ENABLED"] = to_dict(
|
|
1476
|
+
self.simple_submission_mode_enabled.value
|
|
1477
|
+
)
|
|
1431
1478
|
return res
|
|
1432
1479
|
|
|
1433
1480
|
@classmethod
|
|
@@ -1516,6 +1563,8 @@ class FrontendSiteSettings:
|
|
|
1516
1563
|
assignment_description_on_teachers_submissions_page=parsed.ASSIGNMENT_DESCRIPTION_ON_TEACHERS_SUBMISSIONS_PAGE,
|
|
1517
1564
|
submissions_per_page_enabled=parsed.SUBMISSIONS_PER_PAGE_ENABLED,
|
|
1518
1565
|
inline_rubric_viewer_enabled=parsed.INLINE_RUBRIC_VIEWER_ENABLED,
|
|
1566
|
+
submissions_page_v2_enabled=parsed.SUBMISSIONS_PAGE_V2_ENABLED,
|
|
1567
|
+
simple_submission_mode_enabled=parsed.SIMPLE_SUBMISSION_MODE_ENABLED,
|
|
1519
1568
|
)
|
|
1520
1569
|
res.raw_data = d
|
|
1521
1570
|
return res
|
|
@@ -21,6 +21,7 @@ from .assignment_percentage_grading_settings import (
|
|
|
21
21
|
)
|
|
22
22
|
from .assignment_points_grading_settings import AssignmentPointsGradingSettings
|
|
23
23
|
from .assignment_state_enum import AssignmentStateEnum
|
|
24
|
+
from .assignment_submission_mode import AssignmentSubmissionMode
|
|
24
25
|
from .fixed_availability import FixedAvailability
|
|
25
26
|
from .fixed_grade_availability import FixedGradeAvailability
|
|
26
27
|
from .submission_validator_input_data import SubmissionValidatorInputData
|
|
@@ -77,7 +78,7 @@ class PatchAssignmentData:
|
|
|
77
78
|
#: used when `reminder_time` is `null`.
|
|
78
79
|
done_type: Maybe["t.Optional[AssignmentDoneType]"] = Nothing
|
|
79
80
|
#: At what time should we send the reminder emails to the graders. This
|
|
80
|
-
#: value is not used
|
|
81
|
+
#: value is not used when `done_type` is `null`.
|
|
81
82
|
reminder_time: Maybe["t.Optional[datetime.datetime]"] = Nothing
|
|
82
83
|
#: A list of emails that should receive an email when grading is done. This
|
|
83
84
|
#: value has no effect when `done_type` is set to `null`.
|
|
@@ -86,7 +87,7 @@ class PatchAssignmentData:
|
|
|
86
87
|
anonymized_grading: Maybe[
|
|
87
88
|
"t.Optional[AssignmentAnonymizationAlgo]"
|
|
88
89
|
] = Nothing
|
|
89
|
-
#: The file we should load first in an
|
|
90
|
+
#: The file we should load first in an assignment
|
|
90
91
|
file_to_load_first: Maybe["t.Optional[str]"] = Nothing
|
|
91
92
|
#: Grading settings of this assignment.
|
|
92
93
|
grading: Maybe[
|
|
@@ -99,6 +100,8 @@ class PatchAssignmentData:
|
|
|
99
100
|
] = Nothing
|
|
100
101
|
#: The grade availability of this assignment.
|
|
101
102
|
grade_availability: Maybe["FixedGradeAvailability"] = Nothing
|
|
103
|
+
#: The submission mode of this assignment
|
|
104
|
+
submission_mode: Maybe["AssignmentSubmissionMode"] = Nothing
|
|
102
105
|
|
|
103
106
|
raw_data: t.Optional[t.Dict[str, t.Any]] = field(init=False, repr=False)
|
|
104
107
|
|
|
@@ -238,7 +241,7 @@ class PatchAssignmentData:
|
|
|
238
241
|
rqa.Nullable(rqa.RichValue.DateTime),
|
|
239
242
|
doc=(
|
|
240
243
|
"At what time should we send the reminder emails to the"
|
|
241
|
-
" graders. This value is not used
|
|
244
|
+
" graders. This value is not used when `done_type` is"
|
|
242
245
|
" `null`."
|
|
243
246
|
),
|
|
244
247
|
),
|
|
@@ -261,7 +264,7 @@ class PatchAssignmentData:
|
|
|
261
264
|
rqa.OptionalArgument(
|
|
262
265
|
"file_to_load_first",
|
|
263
266
|
rqa.Nullable(rqa.SimpleValue.str),
|
|
264
|
-
doc="The file we should load first in an
|
|
267
|
+
doc="The file we should load first in an assignment",
|
|
265
268
|
),
|
|
266
269
|
rqa.OptionalArgument(
|
|
267
270
|
"grading",
|
|
@@ -286,6 +289,11 @@ class PatchAssignmentData:
|
|
|
286
289
|
parsers.ParserFor.make(FixedGradeAvailability),
|
|
287
290
|
doc="The grade availability of this assignment.",
|
|
288
291
|
),
|
|
292
|
+
rqa.OptionalArgument(
|
|
293
|
+
"submission_mode",
|
|
294
|
+
rqa.EnumValue(AssignmentSubmissionMode),
|
|
295
|
+
doc="The submission mode of this assignment",
|
|
296
|
+
),
|
|
289
297
|
).use_readable_describe(True)
|
|
290
298
|
)
|
|
291
299
|
|
|
@@ -321,6 +329,7 @@ class PatchAssignmentData:
|
|
|
321
329
|
self.grading = maybe_from_nullable(self.grading)
|
|
322
330
|
self.availability = maybe_from_nullable(self.availability)
|
|
323
331
|
self.grade_availability = maybe_from_nullable(self.grade_availability)
|
|
332
|
+
self.submission_mode = maybe_from_nullable(self.submission_mode)
|
|
324
333
|
|
|
325
334
|
def to_dict(self) -> t.Dict[str, t.Any]:
|
|
326
335
|
res: t.Dict[str, t.Any] = {}
|
|
@@ -378,6 +387,8 @@ class PatchAssignmentData:
|
|
|
378
387
|
res["availability"] = to_dict(self.availability.value)
|
|
379
388
|
if self.grade_availability.is_just:
|
|
380
389
|
res["grade_availability"] = to_dict(self.grade_availability.value)
|
|
390
|
+
if self.submission_mode.is_just:
|
|
391
|
+
res["submission_mode"] = to_dict(self.submission_mode.value)
|
|
381
392
|
return res
|
|
382
393
|
|
|
383
394
|
@classmethod
|
|
@@ -411,6 +422,7 @@ class PatchAssignmentData:
|
|
|
411
422
|
grading=parsed.grading,
|
|
412
423
|
availability=parsed.availability,
|
|
413
424
|
grade_availability=parsed.grade_availability,
|
|
425
|
+
submission_mode=parsed.submission_mode,
|
|
414
426
|
)
|
|
415
427
|
res.raw_data = d
|
|
416
428
|
return res
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"""The module that defines the ``SimpleSubmissionModeEnabledSetting`` 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 SimpleSubmissionModeEnabledSetting:
|
|
16
|
+
""" """
|
|
17
|
+
|
|
18
|
+
name: "t.Literal['SIMPLE_SUBMISSION_MODE_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("SIMPLE_SUBMISSION_MODE_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["SimpleSubmissionModeEnabledSetting"],
|
|
48
|
+
d: t.Dict[str, t.Any],
|
|
49
|
+
) -> "SimpleSubmissionModeEnabledSetting":
|
|
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
|
|
@@ -235,6 +235,9 @@ from .server_time_correction_enabled_setting import (
|
|
|
235
235
|
from .server_time_diff_tolerance_setting import ServerTimeDiffToleranceSetting
|
|
236
236
|
from .server_time_sync_interval_setting import ServerTimeSyncIntervalSetting
|
|
237
237
|
from .setting_token_time_setting import SettingTokenTimeSetting
|
|
238
|
+
from .simple_submission_mode_enabled_setting import (
|
|
239
|
+
SimpleSubmissionModeEnabledSetting,
|
|
240
|
+
)
|
|
238
241
|
from .site_email_setting import SiteEmailSetting
|
|
239
242
|
from .sso_infer_global_staff_role_setting import SsoInferGlobalStaffRoleSetting
|
|
240
243
|
from .sso_username_decollision_enabled_setting import (
|
|
@@ -244,6 +247,9 @@ from .staged_assignment_importer_enabled_setting import (
|
|
|
244
247
|
StagedAssignmentImporterEnabledSetting,
|
|
245
248
|
)
|
|
246
249
|
from .student_payment_enabled_setting import StudentPaymentEnabledSetting
|
|
250
|
+
from .submissions_page_v2_enabled_setting import (
|
|
251
|
+
SubmissionsPageV2EnabledSetting,
|
|
252
|
+
)
|
|
247
253
|
from .submissions_per_page_enabled_setting import (
|
|
248
254
|
SubmissionsPerPageEnabledSetting,
|
|
249
255
|
)
|
|
@@ -364,6 +370,8 @@ SiteSettingInput = t.Union[
|
|
|
364
370
|
SubmissionsPerPageEnabledSetting,
|
|
365
371
|
InlineRubricViewerEnabledSetting,
|
|
366
372
|
LtiFirstLaunchContentIdEnabledSetting,
|
|
373
|
+
SubmissionsPageV2EnabledSetting,
|
|
374
|
+
SimpleSubmissionModeEnabledSetting,
|
|
367
375
|
]
|
|
368
376
|
SiteSettingInputParser = rqa.Lazy(
|
|
369
377
|
lambda: make_union(
|
|
@@ -479,5 +487,7 @@ SiteSettingInputParser = rqa.Lazy(
|
|
|
479
487
|
ParserFor.make(SubmissionsPerPageEnabledSetting),
|
|
480
488
|
ParserFor.make(InlineRubricViewerEnabledSetting),
|
|
481
489
|
ParserFor.make(LtiFirstLaunchContentIdEnabledSetting),
|
|
490
|
+
ParserFor.make(SubmissionsPageV2EnabledSetting),
|
|
491
|
+
ParserFor.make(SimpleSubmissionModeEnabledSetting),
|
|
482
492
|
),
|
|
483
493
|
)
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"""The module that defines the ``SubmissionsPageV2EnabledSetting`` 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 SubmissionsPageV2EnabledSetting:
|
|
16
|
+
""" """
|
|
17
|
+
|
|
18
|
+
name: "t.Literal['SUBMISSIONS_PAGE_V2_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("SUBMISSIONS_PAGE_V2_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["SubmissionsPageV2EnabledSetting"], d: t.Dict[str, t.Any]
|
|
48
|
+
) -> "SubmissionsPageV2EnabledSetting":
|
|
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
|
|
@@ -26,7 +26,7 @@ class UpdatePeerFeedbackSettingsAssignmentData:
|
|
|
26
26
|
#: Should peer feedback comments by default be approved.
|
|
27
27
|
auto_approved: "bool"
|
|
28
28
|
#: Should we redivide when a user submits its first submission or its last
|
|
29
|
-
#: submission is deleted after
|
|
29
|
+
#: submission is deleted after the deadline? If this is `False` it might
|
|
30
30
|
#: happen that some users are reviewed by less or more than `amount` of
|
|
31
31
|
#: students.
|
|
32
32
|
redivide_after_deadline: "bool" = True
|
|
@@ -61,7 +61,7 @@ class UpdatePeerFeedbackSettingsAssignmentData:
|
|
|
61
61
|
rqa.SimpleValue.bool,
|
|
62
62
|
doc=(
|
|
63
63
|
"Should we redivide when a user submits its first"
|
|
64
|
-
" submission or its last submission is deleted after
|
|
64
|
+
" submission or its last submission is deleted after the"
|
|
65
65
|
" deadline? If this is `False` it might happen that some"
|
|
66
66
|
" users are reviewed by less or more than `amount` of"
|
|
67
67
|
" students."
|
|
@@ -21,7 +21,7 @@ install_requires = \
|
|
|
21
21
|
|
|
22
22
|
setup_kwargs = {
|
|
23
23
|
'name': 'codegrade',
|
|
24
|
-
'version': '16.1.
|
|
24
|
+
'version': '16.1.39',
|
|
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
|