2.7.1.2. validation.schemas module¶
- class validation.schemas.AssessmentRequest(*, course: str, div_id: str, event: str, sid: ~typing.Optional[str] = None, deadline: ~datetime.datetime = <factory>)¶
Bases:
BaseModelNone- course: str¶
- deadline: datetime¶
- div_id: str¶
- event: str¶
- model_config: ClassVar[ConfigDict] = {'from_attributes': True, 'json_encoders': {<class 'datetime.datetime'>: <function AssessmentRequest.<lambda>>}}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- sid: Optional[str]¶
- classmethod time_validate(v)¶
- class validation.schemas.AssignmentIncoming(*, name: str, description: str, points: int, duedate: datetime, kind: str, time_limit: Optional[int] = None, nofeedback: Optional[bool] = False, nopause: Optional[bool] = False, peer_async_visible: Optional[bool] = False, is_timed: Optional[bool] = False, is_peer: Optional[bool] = False, enforce_due: Optional[bool] = False, visible: Optional[bool] = False, visible_on: Optional[datetime] = None, hidden_on: Optional[datetime] = None)¶
Bases:
BaseModel- description: str¶
- duedate: datetime¶
- enforce_due: Optional[bool]¶
- is_peer: Optional[bool]¶
- is_timed: Optional[bool]¶
- kind: str¶
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str¶
- nofeedback: Optional[bool]¶
- nopause: Optional[bool]¶
- peer_async_visible: Optional[bool]¶
- points: int¶
- time_limit: Optional[int]¶
- visible: Optional[bool]¶
- visible_on: Optional[datetime]¶
- class validation.schemas.AssignmentQuestionIncoming(*, assignment_id: int, question_id: int, points: int, order: Optional[int] = None)¶
Bases:
BaseModel- assignment_id: int¶
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- order: Optional[int]¶
- points: int¶
- question_id: int¶
- class validation.schemas.AssignmentQuestionUpdateDict¶
Bases:
TypedDict- activities_required: Optional[int]¶
- assignment_id: int¶
- async_mode: Optional[str]¶
- author: Optional[str]¶
- autograde: str¶
- chapter: Optional[str]¶
- difficulty: Optional[float]¶
- feedback: Optional[str]¶
- htmlsrc: Optional[str]¶
- id: int¶
- is_private: Optional[bool]¶
- name: Optional[str]¶
- owner: Optional[str]¶
- points: int¶
- question_id: int¶
- question_json: Optional[Json]¶
- question_type: Optional[str]¶
- reading_assignment: Optional[bool]¶
- sorting_priority: int¶
- source: Optional[str]¶
- subchapter: Optional[str]¶
- tags: Optional[str]¶
- timed: Optional[bool]¶
- topic: Optional[str]¶
- which_to_grade: str¶
- class validation.schemas.BaseModelNone¶
Bases:
BaseModel- classmethod from_orm(obj)¶
- model_config: ClassVar[ConfigDict] = {'from_attributes': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class validation.schemas.CopyQuestionRequest(*, original_question_id: int, new_name: str, assignment_id: Optional[int] = None, copy_to_assignment: bool = False, htmlsrc: Optional[str] = None)¶
Bases:
BaseModel- assignment_id: Optional[int]¶
- copy_to_assignment: bool¶
- htmlsrc: Optional[str]¶
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- new_name: str¶
- original_question_id: int¶
- class validation.schemas.CreateExercisesPayload(*, id: Optional[int] = None, name: str, source: str, question_type: str, htmlsrc: str, autograde: Optional[str] = None, question_json: Json, chapter: Optional[str] = None, subchapter: Optional[str] = None, author: Optional[str] = None, tags: Optional[str] = None, description: Optional[str] = None, difficulty: Optional[float] = None, topic: Optional[str] = None, points: Optional[int] = None, is_private: Optional[bool] = None, is_reading: bool, assignment_id: int)¶
Bases:
BaseModel- assignment_id: int¶
- author: Optional[str]¶
- autograde: Optional[str]¶
- chapter: Optional[str]¶
- description: Optional[str]¶
- difficulty: Optional[float]¶
- htmlsrc: str¶
- id: Optional[int]¶
- is_private: Optional[bool]¶
- is_reading: bool¶
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str¶
- points: Optional[int]¶
- question_json: Json¶
- question_type: str¶
- source: str¶
- subchapter: Optional[str]¶
- tags: Optional[str]¶
- topic: Optional[str]¶
- class validation.schemas.ExercisesSearchRequest(*, use_base_course: bool = True, base_course: ~typing.Optional[str] = None, assignment_id: ~typing.Optional[int] = None, page: int = 0, limit: int = 20, sorting: ~typing.Dict[str, ~typing.Any] = <factory>, filters: ~typing.Dict[str, ~typing.Any] = <factory>)¶
Bases:
BaseModelRequest model for searching exercises with pagination and filtering
- assignment_id: Optional[int]¶
- base_course: Optional[str]¶
- filters: Dict[str, Any]¶
- limit: int¶
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- page: int¶
- sorting: Dict[str, Any]¶
- use_base_course: bool¶
- class validation.schemas.LastPageData(*, last_page_url: str, course_id: str, completion_flag: int, last_page_scroll_location: int, last_page_chapter: str, last_page_subchapter: str, last_page_accessed_on: datetime, user_id: int)¶
Bases:
BaseModelNone- completion_flag: int¶
- course_name: str¶
- last_page_accessed_on: datetime¶
- last_page_chapter: str¶
- last_page_scroll_location: int¶
- last_page_subchapter: str¶
- last_page_url: str¶
- model_config: ClassVar[ConfigDict] = {'from_attributes': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- user_id: int¶
- class validation.schemas.LastPageDataIncoming(*, lastPageUrl: str, course: str, completionFlag: int, pageLoad: bool, markingComplete: bool, markingIncomplete: bool, lastPageScrollLocation: int, isPtxBook: bool)¶
Bases:
BaseModelNone- completion_flag: int¶
- course_id: str¶
- is_ptx_book: bool¶
- last_page_scroll_location: int¶
- last_page_url: str¶
- markingComplete: bool¶
- markingIncomplete: bool¶
- model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'from_attributes': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- pageLoad: bool¶
- class validation.schemas.LogItemIncoming(*, event: str, act: str, div_id: str, course_name: str, sid: Optional[str] = None, answer: Optional[str] = None, correct: Optional[Union[bool, int]] = None, percent: Optional[float] = None, clientLoginStatus: Optional[bool] = None, timezoneoffset: Optional[float] = None, timestamp: Optional[datetime] = None, chapter: Optional[str] = None, subchapter: Optional[str] = None, assignment_id: Optional[int] = None, source: Optional[str] = None, min_height: Optional[int] = None, passed: Optional[int] = None, failed: Optional[int] = None, incorrect: Optional[int] = None, skipped: Optional[int] = None, time_taken: Optional[int] = None, selector_id: Optional[str] = None)¶
Bases:
BaseModelNoneThis class defines the schema for what we can expect to get from a logging event. Because we are using pydantic type verification happens automatically, if we want to add additional constraints we can do so.
- act: str¶
- answer: Optional[str]¶
- assignment_id: Optional[int]¶
- chapter: Optional[str]¶
- clientLoginStatus: Optional[bool]¶
- correct: Optional[Union[bool, int]]¶
- course_name: str¶
- div_id: str¶
- event: str¶
- failed: Optional[int]¶
- incorrect: Optional[int]¶
- min_height: Optional[int]¶
- model_config: ClassVar[ConfigDict] = {'from_attributes': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- passed: Optional[int]¶
- percent: Optional[float]¶
- selector_id: Optional[str]¶
- sid: Optional[str]¶
- skipped: Optional[int]¶
- source: Optional[str]¶
- subchapter: Optional[str]¶
- time_taken: Optional[int]¶
- timestamp: Optional[datetime]¶
- timezoneoffset: Optional[float]¶
- class validation.schemas.LogRunIncoming(*, div_id: str, code: str, errinfo: str, to_save: bool, course: str, clientLoginStatus: bool, timezoneoffset: float, language: str, prefix: Optional[str] = None, suffix: Optional[str] = None, partner: Optional[str] = None, sid: Optional[str] = None, editDist: Optional[int] = None, changesPerSecond: Optional[float] = None)¶
Bases:
BaseModelNone- changesPerSecond: Optional[float]¶
- clientLoginStatus: bool¶
- code: str¶
- course: str¶
- div_id: str¶
- editDist: Optional[int]¶
- errinfo: str¶
- language: str¶
- model_config: ClassVar[ConfigDict] = {'from_attributes': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- partner: Optional[str]¶
- prefix: Optional[str]¶
- sid: Optional[str]¶
- suffix: Optional[str]¶
- timezoneoffset: float¶
- to_save: bool¶
- class validation.schemas.PeerMessage(*, type: str, sender: str, message: str, broadcast: bool)¶
Bases:
BaseModel- broadcast: bool¶
- message: str¶
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- sender: str¶
- type: str¶
- class validation.schemas.QuestionIncoming(*, id: Optional[int] = None, name: str, source: str, question_type: str, htmlsrc: str, autograde: Optional[str] = None, question_json: Json, chapter: Optional[str] = None, subchapter: Optional[str] = None, author: Optional[str] = None, tags: Optional[str] = None, description: Optional[str] = None, difficulty: Optional[float] = None, topic: Optional[str] = None, is_private: Optional[bool] = False)¶
Bases:
BaseModel- author: Optional[str]¶
- autograde: Optional[str]¶
- chapter: Optional[str]¶
- description: Optional[str]¶
- difficulty: Optional[float]¶
- htmlsrc: str¶
- id: Optional[int]¶
- is_private: Optional[bool]¶
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str¶
- question_json: Json¶
- question_type: str¶
- source: str¶
- subchapter: Optional[str]¶
- tags: Optional[str]¶
- topic: Optional[str]¶
- class validation.schemas.ReadingAssignmentSpec(*, activities_required: int, question_id: int, assignment_id: int, points: int, name: str)¶
Bases:
BaseModel- activities_required: int¶
- assignment_id: int¶
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str¶
- points: int¶
- question_id: int¶
- class validation.schemas.ScoringSpecification(*, assigned: bool = False, score: Optional[Union[int, float]] = None, max_score: Optional[int] = None, question_id: Optional[int] = None, assignment_id: Optional[int] = None, which_to_grade: Optional[str] = None, how_to_score: Optional[str] = None, username: Optional[str] = None, comment: Optional[str] = None)¶
Bases:
BaseModel- assigned: bool¶
- assignment_id: Optional[int]¶
- comment: Optional[str]¶
- how_to_score: Optional[str]¶
- max_score: Optional[int]¶
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- question_id: Optional[int]¶
- score: Optional[Union[int, float]]¶
- username: Optional[str]¶
- which_to_grade: Optional[str]¶
- class validation.schemas.SearchSpecification(*, source_regex: Optional[str] = None, question_type: Optional[str] = None, author: Optional[str] = None, tag_list: Optional[str] = None, base_course: Optional[str] = None, assignment_id: Optional[int] = None)¶
Bases:
BaseModel- assignment_id: Optional[int]¶
- author: Optional[str]¶
- base_course: Optional[str]¶
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- question_type: Optional[str]¶
- source_regex: Optional[str]¶
- tag_list: Optional[str]¶
- class validation.schemas.SelectQRequest(*, selector_id: str, questions: Optional[str] = None, proficiency: Optional[str] = None, points: Optional[int] = None, min_difficulty: Optional[float] = None, max_difficulty: Optional[float] = None, not_seen_ever: Optional[bool] = None, autogradable: Optional[bool] = None, primary: Optional[bool] = None, AB: Optional[str] = None, toggleOptions: Optional[str] = None, timedWrapper: Optional[str] = None, limitBaseCourse: Optional[str] = None)¶
Bases:
BaseModel- AB: Optional[str]¶
- autogradable: Optional[bool]¶
- limitBaseCourse: Optional[str]¶
- max_difficulty: Optional[float]¶
- min_difficulty: Optional[float]¶
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- not_seen_ever: Optional[bool]¶
- points: Optional[int]¶
- primary: Optional[bool]¶
- proficiency: Optional[str]¶
- questions: Optional[str]¶
- selector_id: str¶
- timedWrapper: Optional[str]¶
- toggleOptions: Optional[str]¶
- class validation.schemas.TimezoneRequest(*, timezoneoffset: float, timezone: Optional[str] = 'UTC')¶
Bases:
BaseModelNone- model_config: ClassVar[ConfigDict] = {'from_attributes': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- timezone: Optional[str]¶
- timezoneoffset: float¶
- class validation.schemas.UpdateAssignmentExercisesPayload(*, isReading: bool, assignmentId: int, idsToAdd: Optional[List[int]] = None, idsToRemove: Optional[List[int]] = None)¶
Bases:
BaseModel- assignmentId: int¶
- idsToAdd: Optional[List[int]]¶
- idsToRemove: Optional[List[int]]¶
- isReading: bool¶
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class validation.schemas.ValidateQuestionNameRequest(*, name: str)¶
Bases:
BaseModel- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- name: str¶
- validation.schemas.sqlalchemy_to_pydantic(db_model: ~typing.Type, *, config: ~typing.Optional[~typing.Type[~pydantic.deprecated.config.BaseConfig]] = None, base: ~typing.Type[~pydantic.main.BaseModel] = <class 'validation.schemas.BaseModelNone'>, exclude: ~typing.Container[str] = ()) Type[BaseModel]¶