Models¶
Every response is a pydantic model. Field names are snake_case and follow VTOP’s own wording where that is sensible.
Session¶
- class vitap_vtop_client.login.model.restorable_session_model.RestorableSession(**data)[source]¶
Bases:
BaseModelEverything needed to rebuild a VtopClient in another process.
VTOP holds the session server side against the JSESSIONID cookie, so these four values are enough to keep using an authenticated session without logging in again. Treat them as credentials: anyone holding them can read the student’s records for as long as VTOP keeps the session alive.
- class vitap_vtop_client.login.model.otp_challenge_model.OtpChallenge(**data)[source]¶
Bases:
BaseModelA login VTOP has interrupted for an OTP, in a form that can be carried.
Credentials and captcha have already been accepted at this point; only the OTP is outstanding. Handing these values to another process lets it finish the login with VtopClient.restore_otp_challenge, which is what a web service needs: the challenge is raised while answering one request and the OTP arrives on the next.
Treat them as credentials. Anyone holding them can complete the login as soon as they have the OTP.
Semesters¶
- class vitap_vtop_client.semester.model.semester_model.SemesterInfo(**data)[source]¶
Bases:
BaseModel
- class vitap_vtop_client.semester.model.semester_model.SemesterData(**data)[source]¶
Bases:
BaseModel- Parameters:
semesters (List[SemesterInfo])
update_time (int)
- semesters: List[SemesterInfo]¶
Attendance¶
- class vitap_vtop_client.attendance.model.attendance_model.AttendanceModel(**data)[source]¶
Bases:
BaseModel- Parameters:
- class vitap_vtop_client.attendance.model.attendance_model.AttendanceDetailModel(**data)[source]¶
Bases:
BaseModel
- class vitap_vtop_client.attendance.model.capstone_model.CapstoneInfoModel(**data)[source]¶
Bases:
BaseModelThe registration details shown above the capstone attendance summary.
- class vitap_vtop_client.attendance.model.capstone_model.CapstoneSummaryModel(**data)[source]¶
Bases:
BaseModelThe present / on-duty / absent tally for the capstone.
- class vitap_vtop_client.attendance.model.capstone_model.CapstonePunchModel(**data)[source]¶
Bases:
BaseModelOne day in the capstone attendance calendar.
- class vitap_vtop_client.attendance.model.capstone_model.CapstoneAttendanceModel(**data)[source]¶
Bases:
BaseModelCapstone/SDP attendance for one semester.
Unlike course attendance this is not per-course, so it does not fit AttendanceModel: there is no course code, faculty or slot, and the tally is present/on-duty/absent rather than attended/total. VTOP returns the summary and the day-by-day calendar in a single response, so both are here.
- Parameters:
info (CapstoneInfoModel)
summary (CapstoneSummaryModel)
punches (List[CapstonePunchModel])
- info: CapstoneInfoModel¶
- summary: CapstoneSummaryModel¶
- punches: List[CapstonePunchModel]¶
Academics¶
- class vitap_vtop_client.timetable.model.timetable_model.Course(**data)[source]¶
Bases:
BaseModel- Parameters:
- class vitap_vtop_client.timetable.model.timetable_model.TimetableModel(**data)[source]¶
Bases:
BaseModel- Parameters:
- class vitap_vtop_client.marks.model.marks_model.MarkDetail(**data)[source]¶
Bases:
BaseModel- Parameters:
- class vitap_vtop_client.marks.model.marks_model.SubjectMark(**data)[source]¶
Bases:
BaseModel- Parameters:
- details: List[MarkDetail]¶
- class vitap_vtop_client.marks.model.marks_model.MarksModel(root=PydanticUndefined, **data)[source]¶
Bases:
RootModel[List[SubjectMark]]- Parameters:
root (RootModelRootType)
- class vitap_vtop_client.exam_schedule.model.exam_schedule_model.ExamEntry(**data)[source]¶
Bases:
BaseModel- Parameters:
- class vitap_vtop_client.exam_schedule.model.exam_schedule_model.ExamScheduleGroup(**data)[source]¶
Bases:
BaseModel
- class vitap_vtop_client.exam_schedule.model.exam_schedule_model.ExamScheduleModel(root=PydanticUndefined, **data)[source]¶
Bases:
RootModel[List[ExamScheduleGroup]]- Parameters:
root (RootModelRootType)
- class vitap_vtop_client.grade_history.model.grade_history_model.GradeCourseHistoryModel(**data)[source]¶
Bases:
BaseModel- Parameters:
- class vitap_vtop_client.grade_history.model.grade_history_model.GradeHistoryModel(**data)[source]¶
Bases:
BaseModel- Parameters:
credits_registered (str)
credits_earned (str)
cgpa (str)
courses (List[GradeCourseHistoryModel])
- courses: List[GradeCourseHistoryModel]¶
- class vitap_vtop_client.grade_view.model.grade_view_model.GradeViewCourse(**data)[source]¶
Bases:
BaseModelOne course row from the grade view for a semester.
- Parameters:
- class vitap_vtop_client.grade_view.model.grade_view_model.MarkComponent(**data)[source]¶
Bases:
BaseModelOne assessment component of a course (CAT1, FAT, a quiz, …).
- Parameters:
- class vitap_vtop_client.grade_view.model.grade_view_model.GradeRange(**data)[source]¶
Bases:
BaseModelThe mark range that maps to one letter grade for the class.
- class vitap_vtop_client.grade_view.model.grade_view_model.GradeStatistics(**data)[source]¶
Bases:
BaseModelClass-level statistics shown alongside a course’s grade.
- Parameters:
- grade_ranges: List[GradeRange]¶
- class vitap_vtop_client.grade_view.model.grade_view_model.GradeViewDetail(**data)[source]¶
Bases:
BaseModelThe expanded detail for a single course in the grade view.
- Parameters:
class_number (str)
course_type (str)
marks (List[MarkComponent])
total (str)
statistics (GradeStatistics)
- marks: List[MarkComponent]¶
- statistics: GradeStatistics¶
- class vitap_vtop_client.course_page.model.course_page_model.CourseOptionModel(**data)[source]¶
Bases:
BaseModelA course from the course page dropdown.
- class vitap_vtop_client.course_page.model.course_page_model.SlotOptionModel(**data)[source]¶
Bases:
BaseModelA slot from the slot dropdown.
- class vitap_vtop_client.course_page.model.course_page_model.CourseClassEntryModel(**data)[source]¶
Bases:
BaseModelA class row from the course slots table.
- Parameters:
- class vitap_vtop_client.course_page.model.course_page_model.ReferenceMaterialModel(**data)[source]¶
Bases:
BaseModelA file attached to a lecture.
- class vitap_vtop_client.course_page.model.course_page_model.LectureEntryModel(**data)[source]¶
Bases:
BaseModelA lecture row from the course detail page.
- Parameters:
- reference_materials: List[ReferenceMaterialModel]¶
- class vitap_vtop_client.course_page.model.course_page_model.CourseInfoModel(**data)[source]¶
Bases:
BaseModelThe course summary shown at the top of the detail page.
- Parameters:
- class vitap_vtop_client.course_page.model.course_page_model.CoursePageDetailModel(**data)[source]¶
Bases:
BaseModelA course’s detail page, with its lectures and downloadable material.
- Parameters:
course_info (CourseInfoModel)
semester_id (str)
download_all_path (str | None)
download_general_materials_path (str | None)
syllabus_download_path (str | None)
course_plan_download_path (str | None)
lectures (List[LectureEntryModel])
- course_info: CourseInfoModel¶
- lectures: List[LectureEntryModel]¶
- class vitap_vtop_client.course_page.model.course_page_model.CoursesResponseModel(**data)[source]¶
Bases:
BaseModel- Parameters:
courses (List[CourseOptionModel])
- courses: List[CourseOptionModel]¶
- class vitap_vtop_client.course_page.model.course_page_model.SlotsResponseModel(**data)[source]¶
Bases:
BaseModel- Parameters:
slots (List[SlotOptionModel])
class_entries (List[CourseClassEntryModel])
- slots: List[SlotOptionModel]¶
- class_entries: List[CourseClassEntryModel]¶
- class vitap_vtop_client.digital_assignment.model.digital_assignment_model.AssignmentRecordModel(**data)[source]¶
Bases:
BaseModelA single assignment within a course.
- Parameters:
- class vitap_vtop_client.digital_assignment.model.digital_assignment_model.DigitalAssignmentModel(**data)[source]¶
Bases:
BaseModelOne registered course and its assignments.
- Parameters:
- details: List[AssignmentRecordModel]¶
- class vitap_vtop_client.academic_calendar.model.calendar_model.ClassGroupModel(**data)[source]¶
Bases:
BaseModelA class group option, e.g. COMB “All Class Group (Combined)”.
- class vitap_vtop_client.academic_calendar.model.calendar_model.CalendarMonthRefModel(**data)[source]¶
Bases:
BaseModelA month button on the calendar page.
- class vitap_vtop_client.academic_calendar.model.calendar_model.CalendarEventModel(**data)[source]¶
Bases:
BaseModelOne entry on a calendar day.
- class vitap_vtop_client.academic_calendar.model.calendar_model.CalendarDayModel(**data)[source]¶
Bases:
BaseModelA single dated day of the academic calendar.
- Parameters:
date (str)
day (int)
weekday (str)
events (List[CalendarEventModel])
- events: List[CalendarEventModel]¶
- class vitap_vtop_client.academic_calendar.model.calendar_model.AcademicCalendarModel(**data)[source]¶
Bases:
BaseModelA semester’s academic calendar, flattened.
VTOP renders each month as a week grid, but the grid is a display concern: the days are returned here as one date-ordered list so callers can look up a date, filter holidays, or lay out their own view.
- Parameters:
semester_id (str)
class_group_id (str)
months (List[CalendarMonthRefModel])
days (List[CalendarDayModel])
- months: List[CalendarMonthRefModel]¶
- days: List[CalendarDayModel]¶
Student¶
- class vitap_vtop_client.profile.model.profile_model.StudentProfileModel(**data)[source]¶
Bases:
BaseModel- Parameters:
registration_number (str | None)
application_number (str | None)
student_name (str | None)
dob (str | None)
gender (str | None)
blood_group (str | None)
email (str | None)
base64_pfp (str | None)
grade_history (GradeHistoryModel | None)
mentor_details (MentorModel | None)
- grade_history: GradeHistoryModel | None¶
- mentor_details: MentorModel | None¶
- class vitap_vtop_client.mentor.model.mentor_model.MentorModel(**data)[source]¶
Bases:
BaseModel- Parameters:
- class vitap_vtop_client.biometric.model.biometric_model.BiometricModel(**data)[source]¶
Bases:
BaseModel- Parameters:
- class vitap_vtop_client.faculty.model.faculty_model.FacultyModel(**data)[source]¶
Bases:
BaseModelA single row from the faculty search results.
- class vitap_vtop_client.faculty.model.faculty_model.OfficeHourModel(**data)[source]¶
Bases:
BaseModel
- class vitap_vtop_client.faculty.model.faculty_model.FacultyDetailsModel(**data)[source]¶
Bases:
BaseModelThe full profile for one faculty member.
- Parameters:
- office_hours: List[OfficeHourModel]¶
Hostel and finance¶
- class vitap_vtop_client.outing.model.general_outing_model.GeneralOutingRequest(**data)[source]¶
Bases:
BaseModel- Parameters:
- class vitap_vtop_client.outing.model.general_outing_model.GeneralOutingModel(root=PydanticUndefined, **data)[source]¶
Bases:
RootModel- Parameters:
root (List[GeneralOutingRequest])
- root: List[GeneralOutingRequest]¶
- class vitap_vtop_client.outing.model.weekend_outing_model.WeekendOutingRequest(**data)[source]¶
Bases:
BaseModel- Parameters:
- class vitap_vtop_client.outing.model.weekend_outing_model.WeekendOutingModel(root=PydanticUndefined, **data)[source]¶
Bases:
RootModel- Parameters:
root (List[WeekendOutingRequest])
- root: List[WeekendOutingRequest]¶
- class vitap_vtop_client.outing.model.outing_info_model.OutingInfoModel(**data)[source]¶
Bases:
BaseModel- Parameters:
- class vitap_vtop_client.payments.model.pending_payments_model.PendingPayment(**data)[source]¶
Bases:
BaseModel- Parameters: