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] = ())