codegrade 16.1.65__tar.gz → 16.1.67__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {codegrade-16.1.65 → codegrade-16.1.67}/PKG-INFO +1 -1
- {codegrade-16.1.65 → codegrade-16.1.67}/cg_maybe/__init__.py +0 -2
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/__init__.py +1 -1
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/client.py +2 -2
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/__init__.py +6 -0
- codegrade-16.1.67/codegrade/models/access_token_modal_warning_time_setting.py +58 -0
- codegrade-16.1.67/codegrade/models/access_token_toast_warning_time_setting.py +58 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/all_site_settings.py +10 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/assignment.py +6 -6
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/base_lms_capabilities.py +25 -22
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/course_perm_map.py +25 -5
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/frontend_site_settings.py +40 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/result_data_post_login_link_login.py +10 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/result_data_post_user_login.py +10 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/result_data_post_user_register.py +10 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/site_setting_input.py +10 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/user_login_response.py +10 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/pyproject.toml +2 -1
- {codegrade-16.1.65 → codegrade-16.1.67}/setup.py +1 -1
- {codegrade-16.1.65 → codegrade-16.1.67}/README.md +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/cg_dt_utils/__init__.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/cg_maybe/_just.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/cg_maybe/_maybe.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/cg_maybe/_nothing.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/cg_maybe/_type_helpers.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/cg_maybe/cg_maybe_plugin.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/cg_maybe/utils.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/cg_request_args/__init__.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/cg_request_args/_any_value.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/cg_request_args/_base.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/cg_request_args/_convert.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/cg_request_args/_enum.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/cg_request_args/_form.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/cg_request_args/_lazy.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/cg_request_args/_list.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/cg_request_args/_literal.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/cg_request_args/_mapping.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/cg_request_args/_multipart.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/cg_request_args/_nullable.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/cg_request_args/_parse_utils.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/cg_request_args/_query.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/cg_request_args/_rich_value.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/cg_request_args/_set.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/cg_request_args/_swagger_utils.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/cg_request_args/_swaggerize.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/cg_request_args/_utils.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/cg_request_args/exceptions.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/cg_request_args/request_args_plugin.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/__init__.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/about.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/assignment.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/auto_test.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/comment.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/course.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/course_price.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/file.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/git_provider.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/group.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/group_set.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/login_link.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/lti.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/notification.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/oauth_provider.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/oauth_token.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/permission.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/plagiarism.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/role.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/saml.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/section.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/site_settings.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/snippet.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/sso_provider.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/submission.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/task_result.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/tenant.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/transaction.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/user.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/user_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/_api/webhook.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/errors.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/_base_price.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/_saml_ui_logo_info.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/_submission_rubric_item_data_parser.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/about.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/abstract_role.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/add_users_section_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/ai_assistant_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/all_auto_test_results.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/always_update_pii_with_lti_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/analytics_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/any_auto_test_step_as_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/any_error.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/any_non_redacted_auto_test_step_as_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/any_redacted_auto_test_step_as_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/api_codes.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/assignment_anonymization_algo.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/assignment_default_grading_scale_points_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/assignment_default_grading_scale_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/assignment_description_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/assignment_description_on_teachers_submissions_page_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/assignment_done_type.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/assignment_export_column.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/assignment_feedback.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/assignment_grader.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/assignment_grading_scale_points_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/assignment_kind.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/assignment_login_link.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/assignment_max_points_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/assignment_peer_feedback_connection.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/assignment_peer_feedback_settings.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/assignment_percentage_decimals_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/assignment_percentage_grading_settings.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/assignment_point_decimals_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/assignment_points_grading_settings.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/assignment_section_timeframe.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/assignment_state_enum.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/assignment_submission_mode.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/assignment_template.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/assignment_timeframes.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/at_image_caching_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_capture_points_message_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_checkpoint_message_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_code_quality_message_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_fixture.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_global_setup_output.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_global_setup_script.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_heartbeat_interval_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_heartbeat_max_missed_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_io_test_message_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_io_test_sub_message_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_max_concurrent_batch_runs_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_max_global_setup_time_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_max_jobs_per_runner_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_max_per_student_setup_time_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_max_result_not_started_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_max_time_command_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_max_unit_test_metadata_length_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_quality_comment.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_result.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_result_state.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_result_with_extra_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_run.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_run_program_message_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_runner.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_runner_state.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_set.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_step_base.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_step_base_as_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_step_base_input_as_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_step_log_base.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_step_result.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_step_result_state.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_step_validation_exception.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_suite.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/auto_test_unit_test_message_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/automatic_lti1p3_assignment_import_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/automatic_lti_role_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/base_about.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/base_auto_test_quality_comment.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/base_comment_base.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/base_comment_base_with_extended_replies.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/base_comment_base_with_normal_replies.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/base_comment_reply.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/base_course_coupon.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/base_directory.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/base_error.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/base_file.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/base_lti1p1_provider.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/base_lti1p3_provider.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/base_lti_provider.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/base_notification.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/base_release_info.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/base_rubric_item.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/base_tenant_coupon.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/blackboard_zip_upload_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/bulk_enroll_course_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/canvas_course_id_copying_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/cg_ignore_version.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/change_user_role_course_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/check_points_as_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/check_points_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/check_points_extra.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/check_points_input_as_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/clone_result.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/code_editor_output_viewer_title_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/code_editor_start_on_assignment_description_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/code_quality_as_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/code_quality_base_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/code_quality_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/code_quality_extra.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/code_quality_input_as_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/code_quality_penalties.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/column_range.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/comment_base.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/comment_reply.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/comment_reply_edit.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/comment_reply_type.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/comment_type.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/community_library_publishing_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/community_library_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/connect_repository_git_provider_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/copy_auto_test_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/copy_rubric_assignment_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/coupon_data_parser.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/coupon_with_code.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/coupon_without_code.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/course.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/course_bulk_enroll_result.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/course_bulk_register_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/course_coupon.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/course_coupon_usage.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/course_gradebook_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/course_gradebook_render_warning_size_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/course_of_course_price.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/course_of_tenant_coupon_usage.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/course_permission.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/course_price.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/course_register_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/course_registration_link.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/course_role.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/course_role_as_json_with_perms.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/course_section.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/course_section_division.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/course_section_division_connection.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/course_section_division_user.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/course_snippet.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/course_state.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/course_statistics_as_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/create_assignment_course_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/create_auto_test_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/create_comment_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/create_comment_reply_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/create_course_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/create_division_section_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/create_group_group_set_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/create_group_set_course_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/create_lti_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/create_output_html_proxy_auto_test_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/create_proxy_submission_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/create_repository_git_provider_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/create_role_course_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/create_section_course_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/create_snippet_course_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/create_snippet_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/create_sso_provider_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/create_tenant_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/csv_large_file_limit_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/csv_too_many_errors_limit_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/currency.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/custom_output_as_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/custom_output_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/custom_output_extra.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/custom_output_input_as_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/custom_output_log.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/custom_output_log_base.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/default_course_ta_role_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/default_course_teacher_role_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/default_submission_page_tab_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/deleted_comment_reply.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/deletion_type.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/directory_with_children.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/disabled_setting_exception.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/display_grades_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/editor_enabled_for_teachers_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/editor_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/email_notification_types.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/email_students_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/email_users_course_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/exam_login_max_length_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/export_assignment_csv_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/export_assignment_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/export_assignment_files_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/extended_auto_test_result.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/extended_auto_test_run.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/extended_course.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/extended_course_registration_link.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/extended_course_section.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/extended_group.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/extended_job.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/extended_non_deleted_comment_reply.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/extended_tenant.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/extended_transaction.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/extended_user.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/extended_work.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/extract_file_tree_directory.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/extract_file_tree_file.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/failed_to_send_email_exception.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/feedback_base.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/feedback_threads_initially_collapsed_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/feedback_with_replies.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/feedback_without_replies.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/file_deletion.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/file_rule.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/file_rule_input_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/file_tree.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/file_type.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/finalized_lti1p1_provider.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/finalized_lti1p3_provider.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/first_phase_lti_launch_exception.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/fixed_availability.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/fixed_grade_availability.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/fixture_like.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/fraction.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/general_feedback_comment_base.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/general_feedback_comment_base_with_extended_replies.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/general_feedback_extra.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/git_repositories_page.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/git_repository_like.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/git_user_info.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/github_template_repo_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/global_perm_map.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/global_permission.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/grade_history.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/grade_origin.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/grading_notifications_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/group.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/group_not_ready_for_submission_exception.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/group_set.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/groups_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/has_unread_notifcation_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/health_information.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/hide_code_editor_filetree_controls_with_only_quiz_steps_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/hide_code_editor_output_viewer_with_only_quiz_steps_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/hide_empty_rubric_row_description_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/hide_no_deadline_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/hubspot_syncing_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/ignore_handling.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/ignored_files_exception.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/import_into_assignment_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/import_into_course_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/incremental_rubric_submission_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/inline_feedback_comment_base.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/inline_feedback_comment_base_with_extended_replies.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/inline_feedback_extra.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/inline_rubric_viewer_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/invalid_group_exception.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/invalid_io_cases_exception.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/invalid_options_exception.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/io_test_as_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/io_test_base_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/io_test_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/io_test_extra.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/io_test_input_as_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/io_test_input_case.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/io_test_log.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/io_test_option.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/io_test_step_log.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/io_test_step_log_base.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/is_admin_permission_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/job.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/json_create_auto_test.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/json_create_tenant.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/json_patch_auto_test.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/json_patch_submit_types_assignment.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/junit_test_as_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/junit_test_base_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/junit_test_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/junit_test_extra.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/junit_test_input_as_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/junit_test_log.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/junit_test_log_base.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/jwt_access_token_expires_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/legacy_features.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/line_range.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/linters_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/lms_capabilities.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/login_token_before_time_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/login_user_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/logout_response.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/logout_user_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/lti1p1_provider.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/lti1p1_provider_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/lti1p3_nonce_and_state_validation_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/lti1p3_parse_most_privileged_role_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/lti1p3_prevent_nonce_reuse_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/lti1p3_provider.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/lti1p3_provider_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/lti1p3_provider_presentation_as_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/lti1p3_system_role_from_context_role_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/lti_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/lti_first_launch_content_id_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/lti_launch_data_logging_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/lti_lock_date_copying_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/lti_provider_base.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/lti_unset_deadline_lock_date_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/max_document_update_size_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/max_dynamo_file_size_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/max_dynamo_submission_size_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/max_file_size_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/max_large_upload_size_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/max_lines_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/max_normal_upload_size_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/max_number_of_files_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/max_plagiarism_matches_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/max_user_setting_amount_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/min_password_score_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/mirror_file_result.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/missing_cookie_error.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/missing_file.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/name_and_email_from_nrps_only_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/new_auto_test_allowed_initial_build_ids_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/new_auto_test_build_max_command_time_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/new_auto_test_build_output_limit_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/new_auto_test_copying_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/new_auto_test_current_initial_build_ids_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/new_auto_test_diff_viewer_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/new_auto_test_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/new_auto_test_initial_build_id_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/new_auto_test_max_dynamodb_size_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/new_auto_test_max_file_size_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/new_auto_test_max_output_files_size_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/new_auto_test_max_storage_size_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/new_auto_test_old_submission_age_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/new_auto_test_test_max_command_time_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/new_auto_test_test_output_limit_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/new_auto_test_uncollapsing_step_output_delay_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/no_permissions.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/non_deleted_comment_reply.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/non_finalized_lti1p1_provider.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/non_finalized_lti1p3_provider.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/non_present_preference.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/notification.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/notification_comment_reply_notification_as_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/notification_general_feedback_reply_notification_as_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/notification_poll_time_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/notification_reasons.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/notification_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/notification_setting_option.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/notifications_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/oauth_provider.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/oauth_token.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/option.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/options_input_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/output_viewer_animation_limit_lines_count_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/parse_api_exception.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/patch1_p1_provider_lti_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/patch1_p3_provider_lti_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/patch_all_notification_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/patch_assignment_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/patch_auto_test_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/patch_comment_reply_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/patch_course_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/patch_grader_submission_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/patch_notification_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/patch_notification_setting_user_setting_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/patch_provider_lti_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/patch_role_course_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/patch_role_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/patch_role_tenant_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/patch_rubric_category_type_assignment_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/patch_rubric_result_submission_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/patch_section_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/patch_settings_tenant_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/patch_site_settings_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/patch_snippet_course_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/patch_snippet_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/patch_submission_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/patch_submit_types_assignment_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/patch_tenant_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/patch_ui_preference_user_setting_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/patch_user_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/pay_with_coupon_course_price_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/pearson_templates_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/peer_feedback_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/permission_exception.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/plagiarism_bulk_export_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/plagiarism_bulk_export_max_cases_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/plagiarism_case.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/plagiarism_pdf_export_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/plagiarism_run.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/plagiarism_run_plagiarism_assignment_as_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/plagiarism_run_plagiarism_course_as_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/plagiarism_state.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/post_oauth_token_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/present_preference.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/proxy.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/put_description_assignment_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/put_enroll_link_course_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/put_price_course_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/put_price_tenant_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/put_rubric_assignment_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/quality_comment_severity.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/quality_comments_in_code_editor_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/quality_test_log.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/quality_test_log_base.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/register_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/register_user_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/register_user_with_link_course_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/release_info.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/release_message_max_time_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/removed_permissions.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/rename_group_group_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/render_html_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/repository_connection_limit_reached_exception.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/reset_token_time_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/result_data_get_auto_test_get.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/result_data_get_task_result_get_all.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/result_data_post_section_create_division.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/retry_group_submission_grade_passback_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/role_as_json_with_perms.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/root_file_trees_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/rubric_description_type.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/rubric_enabled_for_teacher_on_submissions_page_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/rubric_item.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/rubric_item_input_as_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/rubric_lock_reason.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/rubric_row_base.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/rubric_row_base_input_as_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/rubric_row_base_input_base_as_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/rubrics_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/rule_type.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/run_program_as_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/run_program_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/run_program_extra.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/run_program_input_as_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/run_program_log.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/saml2_provider_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/saml_ui_info.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/sections_in_submission_list_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/send_registration_email_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/server_time_correction_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/server_time_diff_tolerance_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/server_time_sync_interval_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/session_restriction_context.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/session_restriction_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/setting_token_time_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/setup_oauth_result.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/simple_submission_mode_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/simple_submission_navigate_to_latest_editor_session_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/site_email_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/snippet.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/sso_infer_global_staff_role_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/sso_username_decollision_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/staged_assignment_importer_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/start_payment_course_price_close_tab_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/start_payment_course_price_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/start_payment_course_price_redirect_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/started_transaction.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/student_payment_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/student_view_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/submission_validator_input_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/submissions_per_page_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/task_result_state.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/tax_behavior.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/tenant.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/tenant_coupon.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/tenant_coupon_usage.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/tenant_coupon_with_code.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/tenant_coupon_without_code.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/tenant_course_statistics.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/tenant_of_tenant_price.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/tenant_permissions.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/tenant_price.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/tenant_role_as_json_with_perms.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/tenant_statistics.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/test_submission_copying_on_import_enabled_setting.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/timed_availability.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/timeframe_like.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/token_revoked_exception.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/transaction.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/transaction_state.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/types.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/update_peer_feedback_settings_assignment_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/update_set_auto_test_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/update_suite_auto_test_base_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/update_suite_auto_test_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/upgraded_lti_provider_exception.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/upload_submission_assignment_data.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/user.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/user_course.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/user_info_with_role.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/user_input.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/user_without_group.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/weak_password_exception.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/weak_password_feedback.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/webhook_base.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/webhook_configuration_disabled_as_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/webhook_configuration_enabled_as_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/work.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/work_origin.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/work_rubric_item.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/work_rubric_result_as_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/work_rubric_result_points_as_json.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/parsers.py +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/py.typed +0 -0
- {codegrade-16.1.65 → codegrade-16.1.67}/codegrade/utils.py +0 -0
|
@@ -538,7 +538,7 @@ class Client(_BaseClient):
|
|
|
538
538
|
return httpx.Client(
|
|
539
539
|
base_url=self.base_url,
|
|
540
540
|
headers={
|
|
541
|
-
"User-Agent": "CodeGradeAPI/16.1.
|
|
541
|
+
"User-Agent": "CodeGradeAPI/16.1.67",
|
|
542
542
|
},
|
|
543
543
|
follow_redirects=True,
|
|
544
544
|
)
|
|
@@ -558,7 +558,7 @@ class AuthenticatedClient(_BaseClient):
|
|
|
558
558
|
base_url=self.base_url,
|
|
559
559
|
headers={
|
|
560
560
|
"Authorization": f"Bearer {self.token}",
|
|
561
|
-
"User-Agent": "CodeGradeAPI/16.1.
|
|
561
|
+
"User-Agent": "CodeGradeAPI/16.1.67",
|
|
562
562
|
},
|
|
563
563
|
follow_redirects=True,
|
|
564
564
|
)
|
|
@@ -10,6 +10,12 @@ from ._submission_rubric_item_data_parser import (
|
|
|
10
10
|
)
|
|
11
11
|
from .about import About
|
|
12
12
|
from .abstract_role import AbstractRole
|
|
13
|
+
from .access_token_modal_warning_time_setting import (
|
|
14
|
+
AccessTokenModalWarningTimeSetting,
|
|
15
|
+
)
|
|
16
|
+
from .access_token_toast_warning_time_setting import (
|
|
17
|
+
AccessTokenToastWarningTimeSetting,
|
|
18
|
+
)
|
|
13
19
|
from .add_users_section_data import AddUsersSectionData
|
|
14
20
|
from .ai_assistant_enabled_setting import AiAssistantEnabledSetting
|
|
15
21
|
from .all_auto_test_results import AllAutoTestResults
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"""The module that defines the ``AccessTokenModalWarningTimeSetting`` model.
|
|
2
|
+
|
|
3
|
+
SPDX-License-Identifier: AGPL-3.0-only OR BSD-3-Clause-Clear
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import datetime
|
|
7
|
+
import typing as t
|
|
8
|
+
from dataclasses import dataclass, field
|
|
9
|
+
|
|
10
|
+
import cg_request_args as rqa
|
|
11
|
+
|
|
12
|
+
from ..utils import to_dict
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@dataclass
|
|
16
|
+
class AccessTokenModalWarningTimeSetting:
|
|
17
|
+
""" """
|
|
18
|
+
|
|
19
|
+
name: "t.Literal['ACCESS_TOKEN_MODAL_WARNING_TIME']"
|
|
20
|
+
value: "t.Optional[datetime.timedelta]"
|
|
21
|
+
|
|
22
|
+
raw_data: t.Optional[t.Dict[str, t.Any]] = field(init=False, repr=False)
|
|
23
|
+
|
|
24
|
+
data_parser: t.ClassVar = rqa.Lazy(
|
|
25
|
+
lambda: rqa.FixedMapping(
|
|
26
|
+
rqa.RequiredArgument(
|
|
27
|
+
"name",
|
|
28
|
+
rqa.StringEnum("ACCESS_TOKEN_MODAL_WARNING_TIME"),
|
|
29
|
+
doc="",
|
|
30
|
+
),
|
|
31
|
+
rqa.RequiredArgument(
|
|
32
|
+
"value",
|
|
33
|
+
rqa.Nullable(rqa.RichValue.TimeDelta),
|
|
34
|
+
doc="",
|
|
35
|
+
),
|
|
36
|
+
).use_readable_describe(True)
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
def to_dict(self) -> t.Dict[str, t.Any]:
|
|
40
|
+
res: t.Dict[str, t.Any] = {
|
|
41
|
+
"name": to_dict(self.name),
|
|
42
|
+
"value": to_dict(self.value),
|
|
43
|
+
}
|
|
44
|
+
return res
|
|
45
|
+
|
|
46
|
+
@classmethod
|
|
47
|
+
def from_dict(
|
|
48
|
+
cls: t.Type["AccessTokenModalWarningTimeSetting"],
|
|
49
|
+
d: t.Dict[str, t.Any],
|
|
50
|
+
) -> "AccessTokenModalWarningTimeSetting":
|
|
51
|
+
parsed = cls.data_parser.try_parse(d)
|
|
52
|
+
|
|
53
|
+
res = cls(
|
|
54
|
+
name=parsed.name,
|
|
55
|
+
value=parsed.value,
|
|
56
|
+
)
|
|
57
|
+
res.raw_data = d
|
|
58
|
+
return res
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"""The module that defines the ``AccessTokenToastWarningTimeSetting`` model.
|
|
2
|
+
|
|
3
|
+
SPDX-License-Identifier: AGPL-3.0-only OR BSD-3-Clause-Clear
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import datetime
|
|
7
|
+
import typing as t
|
|
8
|
+
from dataclasses import dataclass, field
|
|
9
|
+
|
|
10
|
+
import cg_request_args as rqa
|
|
11
|
+
|
|
12
|
+
from ..utils import to_dict
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@dataclass
|
|
16
|
+
class AccessTokenToastWarningTimeSetting:
|
|
17
|
+
""" """
|
|
18
|
+
|
|
19
|
+
name: "t.Literal['ACCESS_TOKEN_TOAST_WARNING_TIME']"
|
|
20
|
+
value: "t.Optional[datetime.timedelta]"
|
|
21
|
+
|
|
22
|
+
raw_data: t.Optional[t.Dict[str, t.Any]] = field(init=False, repr=False)
|
|
23
|
+
|
|
24
|
+
data_parser: t.ClassVar = rqa.Lazy(
|
|
25
|
+
lambda: rqa.FixedMapping(
|
|
26
|
+
rqa.RequiredArgument(
|
|
27
|
+
"name",
|
|
28
|
+
rqa.StringEnum("ACCESS_TOKEN_TOAST_WARNING_TIME"),
|
|
29
|
+
doc="",
|
|
30
|
+
),
|
|
31
|
+
rqa.RequiredArgument(
|
|
32
|
+
"value",
|
|
33
|
+
rqa.Nullable(rqa.RichValue.TimeDelta),
|
|
34
|
+
doc="",
|
|
35
|
+
),
|
|
36
|
+
).use_readable_describe(True)
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
def to_dict(self) -> t.Dict[str, t.Any]:
|
|
40
|
+
res: t.Dict[str, t.Any] = {
|
|
41
|
+
"name": to_dict(self.name),
|
|
42
|
+
"value": to_dict(self.value),
|
|
43
|
+
}
|
|
44
|
+
return res
|
|
45
|
+
|
|
46
|
+
@classmethod
|
|
47
|
+
def from_dict(
|
|
48
|
+
cls: t.Type["AccessTokenToastWarningTimeSetting"],
|
|
49
|
+
d: t.Dict[str, t.Any],
|
|
50
|
+
) -> "AccessTokenToastWarningTimeSetting":
|
|
51
|
+
parsed = cls.data_parser.try_parse(d)
|
|
52
|
+
|
|
53
|
+
res = cls(
|
|
54
|
+
name=parsed.name,
|
|
55
|
+
value=parsed.value,
|
|
56
|
+
)
|
|
57
|
+
res.raw_data = d
|
|
58
|
+
return res
|
|
@@ -706,6 +706,14 @@ class AllSiteSettings(FrontendSiteSettings):
|
|
|
706
706
|
res["RESET_TOKEN_TIME"] = to_dict(self.reset_token_time.value)
|
|
707
707
|
if self.site_email.is_just:
|
|
708
708
|
res["SITE_EMAIL"] = to_dict(self.site_email.value)
|
|
709
|
+
if self.access_token_toast_warning_time.is_just:
|
|
710
|
+
res["ACCESS_TOKEN_TOAST_WARNING_TIME"] = to_dict(
|
|
711
|
+
self.access_token_toast_warning_time.value
|
|
712
|
+
)
|
|
713
|
+
if self.access_token_modal_warning_time.is_just:
|
|
714
|
+
res["ACCESS_TOKEN_MODAL_WARNING_TIME"] = to_dict(
|
|
715
|
+
self.access_token_modal_warning_time.value
|
|
716
|
+
)
|
|
709
717
|
if self.max_lines.is_just:
|
|
710
718
|
res["MAX_LINES"] = to_dict(self.max_lines.value)
|
|
711
719
|
if self.notification_poll_time.is_just:
|
|
@@ -1185,6 +1193,8 @@ class AllSiteSettings(FrontendSiteSettings):
|
|
|
1185
1193
|
login_token_before_time=parsed.LOGIN_TOKEN_BEFORE_TIME,
|
|
1186
1194
|
reset_token_time=parsed.RESET_TOKEN_TIME,
|
|
1187
1195
|
site_email=parsed.SITE_EMAIL,
|
|
1196
|
+
access_token_toast_warning_time=parsed.ACCESS_TOKEN_TOAST_WARNING_TIME,
|
|
1197
|
+
access_token_modal_warning_time=parsed.ACCESS_TOKEN_MODAL_WARNING_TIME,
|
|
1188
1198
|
max_lines=parsed.MAX_LINES,
|
|
1189
1199
|
notification_poll_time=parsed.NOTIFICATION_POLL_TIME,
|
|
1190
1200
|
release_message_max_time=parsed.RELEASE_MESSAGE_MAX_TIME,
|
|
@@ -93,7 +93,7 @@ class Assignment(TimeframeLike):
|
|
|
93
93
|
#: Can you upload files to this assignment.
|
|
94
94
|
files_upload_enabled: "bool"
|
|
95
95
|
#: Can you connect git to this assignment. Deprecated, use
|
|
96
|
-
#: `webhook_configuration
|
|
96
|
+
#: `webhook_configuration` instead.
|
|
97
97
|
webhook_upload_enabled: "bool"
|
|
98
98
|
#: Settings for the git connection to this assignment.
|
|
99
99
|
webhook_configuration: "t.Union[WebhookConfigurationEnabledAsJSON, WebhookConfigurationDisabledAsJSON]"
|
|
@@ -106,8 +106,8 @@ class Assignment(TimeframeLike):
|
|
|
106
106
|
#: `amount_in_cool_off_period` amount.
|
|
107
107
|
cool_off_period: "datetime.timedelta"
|
|
108
108
|
#: The maximum amount of time a user can submit within
|
|
109
|
-
#: `amount_in_cool_off_period`. This value is always
|
|
110
|
-
#: is 0 a user can submit an unlimited amount of time.
|
|
109
|
+
#: `amount_in_cool_off_period`. This value is always greater than or equal
|
|
110
|
+
#: to 0, if this value is 0 a user can submit an unlimited amount of time.
|
|
111
111
|
amount_in_cool_off_period: "int"
|
|
112
112
|
#: The moment reminder emails will be sent. This will be `None` if you
|
|
113
113
|
#: don't have the permission to see this or if it is unset.
|
|
@@ -303,7 +303,7 @@ class Assignment(TimeframeLike):
|
|
|
303
303
|
rqa.SimpleValue.bool,
|
|
304
304
|
doc=(
|
|
305
305
|
"Can you connect git to this assignment. Deprecated,"
|
|
306
|
-
" use `webhook_configuration
|
|
306
|
+
" use `webhook_configuration` instead."
|
|
307
307
|
),
|
|
308
308
|
),
|
|
309
309
|
rqa.RequiredArgument(
|
|
@@ -346,8 +346,8 @@ class Assignment(TimeframeLike):
|
|
|
346
346
|
doc=(
|
|
347
347
|
"The maximum amount of time a user can submit within"
|
|
348
348
|
" `amount_in_cool_off_period`. This value is always"
|
|
349
|
-
"
|
|
350
|
-
" unlimited amount of time."
|
|
349
|
+
" greater than or equal to 0, if this value is 0 a"
|
|
350
|
+
" user can submit an unlimited amount of time."
|
|
351
351
|
),
|
|
352
352
|
),
|
|
353
353
|
rqa.RequiredArgument(
|
|
@@ -57,20 +57,22 @@ class BaseLMSCapabilities:
|
|
|
57
57
|
#: don't want to send replacement variables to an LMS we know it will never
|
|
58
58
|
#: support. This property contains a list of custom replacement groups
|
|
59
59
|
#: supported by this LMS. For example: we have a replacement variable
|
|
60
|
-
#: called `name'`, this variable will be included
|
|
61
|
-
#: wanted config), if the
|
|
62
|
-
#: `['$com']`. It will also
|
|
63
|
-
#: 'custom_lms']`. However, it will
|
|
64
|
-
#: `custom_lms']` or `['$com',
|
|
60
|
+
#: called `'$com.custom_lms.User.name'`, this variable will be included
|
|
61
|
+
#: (parsed and returned as wanted config), if the
|
|
62
|
+
#: `supported_custom_replacement_groups` contains `['$com']`. It will also
|
|
63
|
+
#: be included if it contains `['$com', 'custom_lms']`. However, it will
|
|
64
|
+
#: not be included if it only contains `['$com.custom_lms']` or `['$com',
|
|
65
|
+
#: 'other_lms']`.
|
|
65
66
|
supported_custom_replacement_groups: "t.Sequence[t.Sequence[str]]"
|
|
66
|
-
#: Should we use the `id` in the url. Some LMSes do not
|
|
67
|
-
#: `iss` and the `client_id` in all launches. This means
|
|
68
|
-
#: correct `LTI1p3Provider` is not always correct
|
|
69
|
-
#: often gets used multiple times). For some LMSes
|
|
70
|
-
#: idea to simply include the id of the provider
|
|
71
|
-
#: verify with the given information that the
|
|
72
|
-
#: be the correct one (i.e. all given
|
|
73
|
-
#: information in the LTI provider that
|
|
67
|
+
#: Should we use the `LTI1p3Provider.id` in the url. Some LMSes do not
|
|
68
|
+
#: provide both the `iss` and the `client_id` in all launches. This means
|
|
69
|
+
#: that finding the correct `LTI1p3Provider` is not always correct
|
|
70
|
+
#: (especially as the `iss` often gets used multiple times). For some LMSes
|
|
71
|
+
#: therefore it is a better idea to simply include the id of the provider
|
|
72
|
+
#: in the launch url, and verify with the given information that the
|
|
73
|
+
#: provider could theoretically be the correct one (i.e. all given
|
|
74
|
+
#: information matches with the information in the LTI provider that
|
|
75
|
+
#: belongs to the `id`).
|
|
74
76
|
use_id_in_urls: "bool"
|
|
75
77
|
#: Does this LMS require actual deep linking, where the user inputs a name
|
|
76
78
|
#: and deadline.
|
|
@@ -156,12 +158,13 @@ class BaseLMSCapabilities:
|
|
|
156
158
|
" replacement variables to an LMS we know it will never"
|
|
157
159
|
" support. This property contains a list of custom"
|
|
158
160
|
" replacement groups supported by this LMS. For example:"
|
|
159
|
-
" we have a replacement variable called
|
|
160
|
-
" variable will be
|
|
161
|
-
" config), if the
|
|
162
|
-
"
|
|
163
|
-
"
|
|
164
|
-
"
|
|
161
|
+
" we have a replacement variable called"
|
|
162
|
+
" `'$com.custom_lms.User.name'`, this variable will be"
|
|
163
|
+
" included (parsed and returned as wanted config), if the"
|
|
164
|
+
" `supported_custom_replacement_groups` contains"
|
|
165
|
+
" `['$com']`. It will also be included if it contains"
|
|
166
|
+
" `['$com', 'custom_lms']`. However, it will not be"
|
|
167
|
+
" included if it only contains `['$com.custom_lms']` or"
|
|
165
168
|
" `['$com', 'other_lms']`."
|
|
166
169
|
),
|
|
167
170
|
),
|
|
@@ -169,9 +172,9 @@ class BaseLMSCapabilities:
|
|
|
169
172
|
"use_id_in_urls",
|
|
170
173
|
rqa.SimpleValue.bool,
|
|
171
174
|
doc=(
|
|
172
|
-
"Should we use the `id` in the url. Some
|
|
173
|
-
" provide both the `iss` and the `client_id`
|
|
174
|
-
" launches. This means that finding the correct"
|
|
175
|
+
"Should we use the `LTI1p3Provider.id` in the url. Some"
|
|
176
|
+
" LMSes do not provide both the `iss` and the `client_id`"
|
|
177
|
+
" in all launches. This means that finding the correct"
|
|
175
178
|
" `LTI1p3Provider` is not always correct (especially as"
|
|
176
179
|
" the `iss` often gets used multiple times). For some"
|
|
177
180
|
" LMSes therefore it is a better idea to simply include"
|
|
@@ -27,7 +27,8 @@ class CoursePermMap:
|
|
|
27
27
|
#: change files in the CodeGra.de filesystem if code doesn't compile, for
|
|
28
28
|
#: example.
|
|
29
29
|
can_edit_others_work: "bool"
|
|
30
|
-
#: Users with this permission can grade submissions
|
|
30
|
+
#: Users with this permission can grade submissions and add feedback when
|
|
31
|
+
#: grades have not yet been published.
|
|
31
32
|
can_grade_work: "bool"
|
|
32
33
|
#: Users with this permission can see the grade for a submission before an
|
|
33
34
|
#: assignment's grades are published.
|
|
@@ -40,8 +41,15 @@ class CoursePermMap:
|
|
|
40
41
|
#: Users with this permission can view assignments of this course that are
|
|
41
42
|
#: set to "Unavailable".
|
|
42
43
|
can_see_hidden_assignments: "bool"
|
|
43
|
-
#: Users with this permission can update the assignment info
|
|
44
|
-
#:
|
|
44
|
+
#: Users with this permission can update the assignment info on the
|
|
45
|
+
#: assignment management page. This includes the name and type of the
|
|
46
|
+
#: assignment, whether simplified submission mode is enabled, whether
|
|
47
|
+
#: grades should be published, the assignment's availability, deadline, and
|
|
48
|
+
#: lock date, the assignment description, the available methods of handing
|
|
49
|
+
#: in, the submission template, the maximum amount of submissions, the
|
|
50
|
+
#: assignment's grading scale, the maximum points of the assignment,
|
|
51
|
+
#: whether anonymized grading is enabled, and the file to load first in the
|
|
52
|
+
#: code viewer
|
|
45
53
|
can_edit_assignment_info: "bool"
|
|
46
54
|
#: Users with this permission can assign a grader to submissions of
|
|
47
55
|
#: assignments.
|
|
@@ -323,7 +331,10 @@ class CoursePermMap:
|
|
|
323
331
|
rqa.RequiredArgument(
|
|
324
332
|
"can_grade_work",
|
|
325
333
|
rqa.SimpleValue.bool,
|
|
326
|
-
doc=
|
|
334
|
+
doc=(
|
|
335
|
+
"Users with this permission can grade submissions and add"
|
|
336
|
+
" feedback when grades have not yet been published."
|
|
337
|
+
),
|
|
327
338
|
),
|
|
328
339
|
rqa.RequiredArgument(
|
|
329
340
|
"can_see_grade_before_open",
|
|
@@ -362,7 +373,16 @@ class CoursePermMap:
|
|
|
362
373
|
rqa.SimpleValue.bool,
|
|
363
374
|
doc=(
|
|
364
375
|
"Users with this permission can update the assignment info"
|
|
365
|
-
"
|
|
376
|
+
" on the assignment management page. This includes the"
|
|
377
|
+
" name and type of the assignment, whether simplified"
|
|
378
|
+
" submission mode is enabled, whether grades should be"
|
|
379
|
+
" published, the assignment's availability, deadline, and"
|
|
380
|
+
" lock date, the assignment description, the available"
|
|
381
|
+
" methods of handing in, the submission template, the"
|
|
382
|
+
" maximum amount of submissions, the assignment's grading"
|
|
383
|
+
" scale, the maximum points of the assignment, whether"
|
|
384
|
+
" anonymized grading is enabled, and the file to load"
|
|
385
|
+
" first in the code viewer"
|
|
366
386
|
),
|
|
367
387
|
),
|
|
368
388
|
rqa.RequiredArgument(
|
|
@@ -65,6 +65,12 @@ class FrontendSiteSettings:
|
|
|
65
65
|
reset_token_time: Maybe["datetime.timedelta"] = Nothing
|
|
66
66
|
#: The email shown to users as the email of CodeGrade.
|
|
67
67
|
site_email: Maybe["str"] = Nothing
|
|
68
|
+
#: The amount of time before an access token expires when we will show a
|
|
69
|
+
#: toast message warning the user that their session is about to expire.
|
|
70
|
+
access_token_toast_warning_time: Maybe["datetime.timedelta"] = Nothing
|
|
71
|
+
#: The amount of time before an access token expires when we will show a
|
|
72
|
+
#: modal with a warning that the user's session is about to expire.
|
|
73
|
+
access_token_modal_warning_time: Maybe["datetime.timedelta"] = Nothing
|
|
68
74
|
#: The maximum amount of lines that we should in render in one go. If a
|
|
69
75
|
#: file contains more lines than this we will show a warning asking the
|
|
70
76
|
#: user what to do.
|
|
@@ -446,6 +452,24 @@ class FrontendSiteSettings:
|
|
|
446
452
|
rqa.SimpleValue.str,
|
|
447
453
|
doc="The email shown to users as the email of CodeGrade.",
|
|
448
454
|
),
|
|
455
|
+
rqa.OptionalArgument(
|
|
456
|
+
"ACCESS_TOKEN_TOAST_WARNING_TIME",
|
|
457
|
+
rqa.RichValue.TimeDelta,
|
|
458
|
+
doc=(
|
|
459
|
+
"The amount of time before an access token expires when we"
|
|
460
|
+
" will show a toast message warning the user that their"
|
|
461
|
+
" session is about to expire."
|
|
462
|
+
),
|
|
463
|
+
),
|
|
464
|
+
rqa.OptionalArgument(
|
|
465
|
+
"ACCESS_TOKEN_MODAL_WARNING_TIME",
|
|
466
|
+
rqa.RichValue.TimeDelta,
|
|
467
|
+
doc=(
|
|
468
|
+
"The amount of time before an access token expires when we"
|
|
469
|
+
" will show a modal with a warning that the user's session"
|
|
470
|
+
" is about to expire."
|
|
471
|
+
),
|
|
472
|
+
),
|
|
449
473
|
rqa.OptionalArgument(
|
|
450
474
|
"MAX_LINES",
|
|
451
475
|
rqa.SimpleValue.int,
|
|
@@ -1146,6 +1170,12 @@ class FrontendSiteSettings:
|
|
|
1146
1170
|
)
|
|
1147
1171
|
self.reset_token_time = maybe_from_nullable(self.reset_token_time)
|
|
1148
1172
|
self.site_email = maybe_from_nullable(self.site_email)
|
|
1173
|
+
self.access_token_toast_warning_time = maybe_from_nullable(
|
|
1174
|
+
self.access_token_toast_warning_time
|
|
1175
|
+
)
|
|
1176
|
+
self.access_token_modal_warning_time = maybe_from_nullable(
|
|
1177
|
+
self.access_token_modal_warning_time
|
|
1178
|
+
)
|
|
1149
1179
|
self.max_lines = maybe_from_nullable(self.max_lines)
|
|
1150
1180
|
self.notification_poll_time = maybe_from_nullable(
|
|
1151
1181
|
self.notification_poll_time
|
|
@@ -1434,6 +1464,14 @@ class FrontendSiteSettings:
|
|
|
1434
1464
|
res["RESET_TOKEN_TIME"] = to_dict(self.reset_token_time.value)
|
|
1435
1465
|
if self.site_email.is_just:
|
|
1436
1466
|
res["SITE_EMAIL"] = to_dict(self.site_email.value)
|
|
1467
|
+
if self.access_token_toast_warning_time.is_just:
|
|
1468
|
+
res["ACCESS_TOKEN_TOAST_WARNING_TIME"] = to_dict(
|
|
1469
|
+
self.access_token_toast_warning_time.value
|
|
1470
|
+
)
|
|
1471
|
+
if self.access_token_modal_warning_time.is_just:
|
|
1472
|
+
res["ACCESS_TOKEN_MODAL_WARNING_TIME"] = to_dict(
|
|
1473
|
+
self.access_token_modal_warning_time.value
|
|
1474
|
+
)
|
|
1437
1475
|
if self.max_lines.is_just:
|
|
1438
1476
|
res["MAX_LINES"] = to_dict(self.max_lines.value)
|
|
1439
1477
|
if self.notification_poll_time.is_just:
|
|
@@ -1757,6 +1795,8 @@ class FrontendSiteSettings:
|
|
|
1757
1795
|
login_token_before_time=parsed.LOGIN_TOKEN_BEFORE_TIME,
|
|
1758
1796
|
reset_token_time=parsed.RESET_TOKEN_TIME,
|
|
1759
1797
|
site_email=parsed.SITE_EMAIL,
|
|
1798
|
+
access_token_toast_warning_time=parsed.ACCESS_TOKEN_TOAST_WARNING_TIME,
|
|
1799
|
+
access_token_modal_warning_time=parsed.ACCESS_TOKEN_MODAL_WARNING_TIME,
|
|
1760
1800
|
max_lines=parsed.MAX_LINES,
|
|
1761
1801
|
notification_poll_time=parsed.NOTIFICATION_POLL_TIME,
|
|
1762
1802
|
release_message_max_time=parsed.RELEASE_MESSAGE_MAX_TIME,
|
{codegrade-16.1.65 → codegrade-16.1.67}/codegrade/models/result_data_post_login_link_login.py
RENAMED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
SPDX-License-Identifier: AGPL-3.0-only OR BSD-3-Clause-Clear
|
|
4
4
|
"""
|
|
5
5
|
|
|
6
|
+
import datetime
|
|
6
7
|
import typing as t
|
|
7
8
|
from dataclasses import dataclass, field
|
|
8
9
|
|
|
@@ -24,6 +25,8 @@ class ResultDataPostLoginLinkLogin:
|
|
|
24
25
|
access_token: "str"
|
|
25
26
|
#: The restrictions of this access token.
|
|
26
27
|
restrictions: "SessionRestrictionData"
|
|
28
|
+
#: When this token expires.
|
|
29
|
+
expires_at: "datetime.datetime"
|
|
27
30
|
|
|
28
31
|
raw_data: t.Optional[t.Dict[str, t.Any]] = field(init=False, repr=False)
|
|
29
32
|
|
|
@@ -47,6 +50,11 @@ class ResultDataPostLoginLinkLogin:
|
|
|
47
50
|
parsers.ParserFor.make(SessionRestrictionData),
|
|
48
51
|
doc="The restrictions of this access token.",
|
|
49
52
|
),
|
|
53
|
+
rqa.RequiredArgument(
|
|
54
|
+
"expires_at",
|
|
55
|
+
rqa.RichValue.DateTime,
|
|
56
|
+
doc="When this token expires.",
|
|
57
|
+
),
|
|
50
58
|
).use_readable_describe(True)
|
|
51
59
|
)
|
|
52
60
|
|
|
@@ -55,6 +63,7 @@ class ResultDataPostLoginLinkLogin:
|
|
|
55
63
|
"user": to_dict(self.user),
|
|
56
64
|
"access_token": to_dict(self.access_token),
|
|
57
65
|
"restrictions": to_dict(self.restrictions),
|
|
66
|
+
"expires_at": to_dict(self.expires_at),
|
|
58
67
|
}
|
|
59
68
|
return res
|
|
60
69
|
|
|
@@ -68,6 +77,7 @@ class ResultDataPostLoginLinkLogin:
|
|
|
68
77
|
user=parsed.user,
|
|
69
78
|
access_token=parsed.access_token,
|
|
70
79
|
restrictions=parsed.restrictions,
|
|
80
|
+
expires_at=parsed.expires_at,
|
|
71
81
|
)
|
|
72
82
|
res.raw_data = d
|
|
73
83
|
return res
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
SPDX-License-Identifier: AGPL-3.0-only OR BSD-3-Clause-Clear
|
|
4
4
|
"""
|
|
5
5
|
|
|
6
|
+
import datetime
|
|
6
7
|
import typing as t
|
|
7
8
|
from dataclasses import dataclass, field
|
|
8
9
|
|
|
@@ -24,6 +25,8 @@ class ResultDataPostUserLogin:
|
|
|
24
25
|
access_token: "str"
|
|
25
26
|
#: The restrictions of this access token.
|
|
26
27
|
restrictions: "SessionRestrictionData"
|
|
28
|
+
#: When this token expires.
|
|
29
|
+
expires_at: "datetime.datetime"
|
|
27
30
|
|
|
28
31
|
raw_data: t.Optional[t.Dict[str, t.Any]] = field(init=False, repr=False)
|
|
29
32
|
|
|
@@ -47,6 +50,11 @@ class ResultDataPostUserLogin:
|
|
|
47
50
|
parsers.ParserFor.make(SessionRestrictionData),
|
|
48
51
|
doc="The restrictions of this access token.",
|
|
49
52
|
),
|
|
53
|
+
rqa.RequiredArgument(
|
|
54
|
+
"expires_at",
|
|
55
|
+
rqa.RichValue.DateTime,
|
|
56
|
+
doc="When this token expires.",
|
|
57
|
+
),
|
|
50
58
|
).use_readable_describe(True)
|
|
51
59
|
)
|
|
52
60
|
|
|
@@ -55,6 +63,7 @@ class ResultDataPostUserLogin:
|
|
|
55
63
|
"user": to_dict(self.user),
|
|
56
64
|
"access_token": to_dict(self.access_token),
|
|
57
65
|
"restrictions": to_dict(self.restrictions),
|
|
66
|
+
"expires_at": to_dict(self.expires_at),
|
|
58
67
|
}
|
|
59
68
|
return res
|
|
60
69
|
|
|
@@ -68,6 +77,7 @@ class ResultDataPostUserLogin:
|
|
|
68
77
|
user=parsed.user,
|
|
69
78
|
access_token=parsed.access_token,
|
|
70
79
|
restrictions=parsed.restrictions,
|
|
80
|
+
expires_at=parsed.expires_at,
|
|
71
81
|
)
|
|
72
82
|
res.raw_data = d
|
|
73
83
|
return res
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
SPDX-License-Identifier: AGPL-3.0-only OR BSD-3-Clause-Clear
|
|
4
4
|
"""
|
|
5
5
|
|
|
6
|
+
import datetime
|
|
6
7
|
import typing as t
|
|
7
8
|
from dataclasses import dataclass, field
|
|
8
9
|
|
|
@@ -24,6 +25,8 @@ class ResultDataPostUserRegister:
|
|
|
24
25
|
access_token: "str"
|
|
25
26
|
#: The restrictions of this access token.
|
|
26
27
|
restrictions: "SessionRestrictionData"
|
|
28
|
+
#: When this token expires.
|
|
29
|
+
expires_at: "datetime.datetime"
|
|
27
30
|
|
|
28
31
|
raw_data: t.Optional[t.Dict[str, t.Any]] = field(init=False, repr=False)
|
|
29
32
|
|
|
@@ -47,6 +50,11 @@ class ResultDataPostUserRegister:
|
|
|
47
50
|
parsers.ParserFor.make(SessionRestrictionData),
|
|
48
51
|
doc="The restrictions of this access token.",
|
|
49
52
|
),
|
|
53
|
+
rqa.RequiredArgument(
|
|
54
|
+
"expires_at",
|
|
55
|
+
rqa.RichValue.DateTime,
|
|
56
|
+
doc="When this token expires.",
|
|
57
|
+
),
|
|
50
58
|
).use_readable_describe(True)
|
|
51
59
|
)
|
|
52
60
|
|
|
@@ -55,6 +63,7 @@ class ResultDataPostUserRegister:
|
|
|
55
63
|
"user": to_dict(self.user),
|
|
56
64
|
"access_token": to_dict(self.access_token),
|
|
57
65
|
"restrictions": to_dict(self.restrictions),
|
|
66
|
+
"expires_at": to_dict(self.expires_at),
|
|
58
67
|
}
|
|
59
68
|
return res
|
|
60
69
|
|
|
@@ -68,6 +77,7 @@ class ResultDataPostUserRegister:
|
|
|
68
77
|
user=parsed.user,
|
|
69
78
|
access_token=parsed.access_token,
|
|
70
79
|
restrictions=parsed.restrictions,
|
|
80
|
+
expires_at=parsed.expires_at,
|
|
71
81
|
)
|
|
72
82
|
res.raw_data = d
|
|
73
83
|
return res
|
|
@@ -10,6 +10,12 @@ import cg_request_args as rqa
|
|
|
10
10
|
|
|
11
11
|
from ..parsers import ParserFor, make_union
|
|
12
12
|
from ..utils import to_dict
|
|
13
|
+
from .access_token_modal_warning_time_setting import (
|
|
14
|
+
AccessTokenModalWarningTimeSetting,
|
|
15
|
+
)
|
|
16
|
+
from .access_token_toast_warning_time_setting import (
|
|
17
|
+
AccessTokenToastWarningTimeSetting,
|
|
18
|
+
)
|
|
13
19
|
from .ai_assistant_enabled_setting import AiAssistantEnabledSetting
|
|
14
20
|
from .always_update_pii_with_lti_setting import AlwaysUpdatePiiWithLtiSetting
|
|
15
21
|
from .analytics_enabled_setting import AnalyticsEnabledSetting
|
|
@@ -340,6 +346,8 @@ SiteSettingInput = t.Union[
|
|
|
340
346
|
MaxDynamoFileSizeSetting,
|
|
341
347
|
MaxDocumentUpdateSizeSetting,
|
|
342
348
|
JwtAccessTokenExpiresSetting,
|
|
349
|
+
AccessTokenToastWarningTimeSetting,
|
|
350
|
+
AccessTokenModalWarningTimeSetting,
|
|
343
351
|
MaxLinesSetting,
|
|
344
352
|
NotificationPollTimeSetting,
|
|
345
353
|
ReleaseMessageMaxTimeSetting,
|
|
@@ -477,6 +485,8 @@ SiteSettingInputParser = rqa.Lazy(
|
|
|
477
485
|
ParserFor.make(MaxDynamoFileSizeSetting),
|
|
478
486
|
ParserFor.make(MaxDocumentUpdateSizeSetting),
|
|
479
487
|
ParserFor.make(JwtAccessTokenExpiresSetting),
|
|
488
|
+
ParserFor.make(AccessTokenToastWarningTimeSetting),
|
|
489
|
+
ParserFor.make(AccessTokenModalWarningTimeSetting),
|
|
480
490
|
ParserFor.make(MaxLinesSetting),
|
|
481
491
|
ParserFor.make(NotificationPollTimeSetting),
|
|
482
492
|
ParserFor.make(ReleaseMessageMaxTimeSetting),
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
SPDX-License-Identifier: AGPL-3.0-only OR BSD-3-Clause-Clear
|
|
4
4
|
"""
|
|
5
5
|
|
|
6
|
+
import datetime
|
|
6
7
|
import typing as t
|
|
7
8
|
from dataclasses import dataclass, field
|
|
8
9
|
|
|
@@ -24,6 +25,8 @@ class UserLoginResponse:
|
|
|
24
25
|
access_token: "str"
|
|
25
26
|
#: The restrictions of this access token.
|
|
26
27
|
restrictions: "SessionRestrictionData"
|
|
28
|
+
#: When this token expires.
|
|
29
|
+
expires_at: "datetime.datetime"
|
|
27
30
|
|
|
28
31
|
raw_data: t.Optional[t.Dict[str, t.Any]] = field(init=False, repr=False)
|
|
29
32
|
|
|
@@ -47,6 +50,11 @@ class UserLoginResponse:
|
|
|
47
50
|
parsers.ParserFor.make(SessionRestrictionData),
|
|
48
51
|
doc="The restrictions of this access token.",
|
|
49
52
|
),
|
|
53
|
+
rqa.RequiredArgument(
|
|
54
|
+
"expires_at",
|
|
55
|
+
rqa.RichValue.DateTime,
|
|
56
|
+
doc="When this token expires.",
|
|
57
|
+
),
|
|
50
58
|
).use_readable_describe(True)
|
|
51
59
|
)
|
|
52
60
|
|
|
@@ -55,6 +63,7 @@ class UserLoginResponse:
|
|
|
55
63
|
"user": to_dict(self.user),
|
|
56
64
|
"access_token": to_dict(self.access_token),
|
|
57
65
|
"restrictions": to_dict(self.restrictions),
|
|
66
|
+
"expires_at": to_dict(self.expires_at),
|
|
58
67
|
}
|
|
59
68
|
return res
|
|
60
69
|
|
|
@@ -68,6 +77,7 @@ class UserLoginResponse:
|
|
|
68
77
|
user=parsed.user,
|
|
69
78
|
access_token=parsed.access_token,
|
|
70
79
|
restrictions=parsed.restrictions,
|
|
80
|
+
expires_at=parsed.expires_at,
|
|
71
81
|
)
|
|
72
82
|
res.raw_data = d
|
|
73
83
|
return res
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "codegrade"
|
|
3
|
-
version = "16.1.
|
|
3
|
+
version = "16.1.67"
|
|
4
4
|
description = "A client library for accessing CodeGrade"
|
|
5
5
|
license = "AGPL-3.0-only OR BSD-3-Clause-Clear"
|
|
6
6
|
authors = []
|
|
@@ -27,6 +27,7 @@ mypy = "^1.3.0"
|
|
|
27
27
|
sphinx = "^6.2.1"
|
|
28
28
|
sphinx-autodoc-typehints = "^1.23.0"
|
|
29
29
|
m2r2 = "^0.3.1"
|
|
30
|
+
setuptools = "^74.1.2"
|
|
30
31
|
# Is needed because of https://github.com/CrossNox/m2r2/issues/40 or
|
|
31
32
|
# https://github.com/miyakogi/m2r/issues/66
|
|
32
33
|
mistune = '<2.0.0'
|