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]
hidden_on: Optional[datetime]
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: BaseModel

Request 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: 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]
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]