validation.schemas module¶
- class validation.schemas.AssessmentRequest(*, course: str, div_id: str, event: str, sid: Optional[str] = None, deadline: datetime = None)¶
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].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'course': FieldInfo(annotation=str, required=True), 'deadline': FieldInfo(annotation=datetime, required=False, default_factory=builtin_function_or_method), 'div_id': FieldInfo(annotation=str, required=True), 'event': FieldInfo(annotation=str, required=True), 'sid': FieldInfo(annotation=Union[str, NoneType], required=False)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- sid: Optional[str]¶
- classmethod time_validate(v)¶
- class validation.schemas.AssignmentIncoming(*, name: str, description: str, points: int, duedate: datetime)¶
Bases:
BaseModel
- description: str¶
- duedate: datetime¶
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'description': FieldInfo(annotation=str, required=True), 'duedate': FieldInfo(annotation=datetime, required=True), 'name': FieldInfo(annotation=str, required=True), 'points': FieldInfo(annotation=int, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- name: str¶
- points: int¶
- 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].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'assignment_id': FieldInfo(annotation=int, required=True), 'order': FieldInfo(annotation=Union[int, NoneType], required=False), 'points': FieldInfo(annotation=int, required=True), 'question_id': FieldInfo(annotation=int, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- order: Optional[int]¶
- points: int¶
- question_id: int¶
- 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].
- model_fields: ClassVar[dict[str, FieldInfo]] = {}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- 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].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'completion_flag': FieldInfo(annotation=int, required=True), 'course_name': FieldInfo(annotation=str, required=True, alias='course_id', alias_priority=2), 'last_page_accessed_on': FieldInfo(annotation=datetime, required=True), 'last_page_chapter': FieldInfo(annotation=str, required=True), 'last_page_scroll_location': FieldInfo(annotation=int, required=True), 'last_page_subchapter': FieldInfo(annotation=str, required=True), 'last_page_url': FieldInfo(annotation=str, required=True), 'user_id': FieldInfo(annotation=int, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- 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].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'completion_flag': FieldInfo(annotation=int, required=True, alias='completionFlag', alias_priority=1), 'course_id': FieldInfo(annotation=str, required=True, alias='course', alias_priority=2), 'is_ptx_book': FieldInfo(annotation=bool, required=True, alias='isPtxBook', alias_priority=1), 'last_page_scroll_location': FieldInfo(annotation=int, required=True, alias='lastPageScrollLocation', alias_priority=1), 'last_page_url': FieldInfo(annotation=str, required=True, alias='lastPageUrl', alias_priority=1), 'markingComplete': FieldInfo(annotation=bool, required=True, alias='markingComplete', alias_priority=1), 'markingIncomplete': FieldInfo(annotation=bool, required=True, alias='markingIncomplete', alias_priority=1), 'pageLoad': FieldInfo(annotation=bool, required=True, alias='pageLoad', alias_priority=1)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- 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, 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)¶
Bases:
BaseModelNone
This 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]¶
- 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].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'act': FieldInfo(annotation=str, required=True), 'answer': FieldInfo(annotation=Union[str, NoneType], required=False), 'chapter': FieldInfo(annotation=Union[str, NoneType], required=False), 'clientLoginStatus': FieldInfo(annotation=Union[bool, NoneType], required=False), 'correct': FieldInfo(annotation=Union[bool, int, NoneType], required=False), 'course_name': FieldInfo(annotation=str, required=True), 'div_id': FieldInfo(annotation=str, required=True), 'event': FieldInfo(annotation=str, required=True), 'failed': FieldInfo(annotation=Union[int, NoneType], required=False), 'incorrect': FieldInfo(annotation=Union[int, NoneType], required=False), 'min_height': FieldInfo(annotation=Union[int, NoneType], required=False), 'passed': FieldInfo(annotation=Union[int, NoneType], required=False), 'percent': FieldInfo(annotation=Union[float, NoneType], required=False), 'sid': FieldInfo(annotation=Union[str, NoneType], required=False), 'skipped': FieldInfo(annotation=Union[int, NoneType], required=False), 'source': FieldInfo(annotation=Union[str, NoneType], required=False), 'subchapter': FieldInfo(annotation=Union[str, NoneType], required=False), 'time_taken': FieldInfo(annotation=Union[int, NoneType], required=False), 'timestamp': FieldInfo(annotation=Union[datetime, NoneType], required=False), 'timezoneoffset': FieldInfo(annotation=Union[float, NoneType], required=False)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- passed: Optional[int]¶
- percent: Optional[float]¶
- 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)¶
Bases:
BaseModelNone
- clientLoginStatus: bool¶
- code: str¶
- course: str¶
- div_id: str¶
- 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].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'clientLoginStatus': FieldInfo(annotation=bool, required=True), 'code': FieldInfo(annotation=str, required=True), 'course': FieldInfo(annotation=str, required=True), 'div_id': FieldInfo(annotation=str, required=True), 'errinfo': FieldInfo(annotation=str, required=True), 'language': FieldInfo(annotation=str, required=True), 'partner': FieldInfo(annotation=Union[str, NoneType], required=False), 'prefix': FieldInfo(annotation=Union[str, NoneType], required=False), 'sid': FieldInfo(annotation=Union[str, NoneType], required=False), 'suffix': FieldInfo(annotation=Union[str, NoneType], required=False), 'timezoneoffset': FieldInfo(annotation=float, required=True), 'to_save': FieldInfo(annotation=bool, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- 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].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'broadcast': FieldInfo(annotation=bool, required=True), 'message': FieldInfo(annotation=str, required=True), 'sender': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=str, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- sender: str¶
- type: str¶
- class validation.schemas.QuestionIncoming(*, name: str, source: str, question_type: str, htmlsrc: str, autograde: Optional[str] = None, question_json: Json)¶
Bases:
BaseModel
- autograde: Optional[str]¶
- htmlsrc: str¶
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'autograde': FieldInfo(annotation=Union[str, NoneType], required=False), 'htmlsrc': FieldInfo(annotation=str, required=True), 'name': FieldInfo(annotation=str, required=True), 'question_json': FieldInfo(annotation=Json, required=True), 'question_type': FieldInfo(annotation=str, required=True), 'source': FieldInfo(annotation=str, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- name: str¶
- question_json: Json¶
- question_type: str¶
- source: 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].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'AB': FieldInfo(annotation=Union[str, NoneType], required=False), 'autogradable': FieldInfo(annotation=Union[bool, NoneType], required=False), 'limitBaseCourse': FieldInfo(annotation=Union[str, NoneType], required=False), 'max_difficulty': FieldInfo(annotation=Union[float, NoneType], required=False), 'min_difficulty': FieldInfo(annotation=Union[float, NoneType], required=False), 'not_seen_ever': FieldInfo(annotation=Union[bool, NoneType], required=False), 'points': FieldInfo(annotation=Union[int, NoneType], required=False), 'primary': FieldInfo(annotation=Union[bool, NoneType], required=False), 'proficiency': FieldInfo(annotation=Union[str, NoneType], required=False), 'questions': FieldInfo(annotation=Union[str, NoneType], required=False), 'selector_id': FieldInfo(annotation=str, required=True), 'timedWrapper': FieldInfo(annotation=Union[str, NoneType], required=False), 'toggleOptions': FieldInfo(annotation=Union[str, NoneType], required=False)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- 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)¶
Bases:
BaseModelNone
- model_config: ClassVar[ConfigDict] = {'from_attributes': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[dict[str, FieldInfo]] = {'timezoneoffset': FieldInfo(annotation=float, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].
This replaces Model.__fields__ from Pydantic V1.
- timezoneoffset: float¶
- 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] = ())¶