Models¶
All returned data is wrapped in typed, frozen dataclasses generated with
marshmallow-dataclass. Each model has a .Schema attribute for
serialisation/deserialisation.
Base¶
tju.models.base.Result
¶
Base class for a single typed result item. Each subclass carries a
marshmallow Schema class attribute generated by marshmallow-dataclass.
Source code in src/tju/models/base.py
tju.models.base.Results
¶
Bases: List[T_Result]
Typed list of :class:Result items. Subclasses set _item to the
concrete dataclass and call :meth:load to deserialise a list of dicts.
Source code in src/tju/models/base.py
load
¶
Deserialise data (list of dicts) into typed items and extend this list.
Source code in src/tju/models/base.py
Common¶
tju.models.common.StuType
¶
tju.models.common.Gender
¶
Schedule¶
tju.models.schedule.Course
¶
Bases: Result
A course entry on a personal timetable. arrange holds the list of
:class:CourseArrange slots; weeks is the raw week-range string.
Source code in src/tju/models/schedule.py
tju.models.schedule.CourseArrange
¶
Bases: Result
A single scheduled slot (day / period / location) for a course.
Source code in src/tju/models/schedule.py
tju.models.schedule.Schedule
¶
Course library¶
tju.models.course.LibCourse
¶
Bases: Course
A course entry from the public course library. Extends :class:~tju.models.schedule.Course
with library-specific fields such as lession_id, course_type, enrollment limits,
and has_syllabus. The selected/limit fields are populated for UG courses
(16-column format) but are None for GS courses (12-column format).
Source code in src/tju/models/course.py
tju.models.course.CourseLib
¶
Exam¶
tju.models.exam.Exam
¶
Bases: Result
A single exam entry. exam_time is a list of two datetime.time objects
(start, end); exam_date is a datetime.date.
Source code in src/tju/models/exam.py
tju.models.exam.Exams
¶
Scores¶
tju.models.score.UGScore
¶
Bases: Score
An undergraduate course score record.
Source code in src/tju/models/score.py
tju.models.score.GSScore
¶
Bases: Score
A graduate course score record.
Source code in src/tju/models/score.py
tju.models.score.ExpScore
¶
Bases: Result
An experiment (lab) course score record.
Source code in src/tju/models/score.py
tju.models.score.UGScoreSummary
¶
Bases: ScoreSummary
Undergraduate score summary, includes GPA and weighted average.
Source code in src/tju/models/score.py
tju.models.score.GSScoreSummary
¶
Bases: ScoreSummary
Graduate score summary, broken down by school year and term.
Source code in src/tju/models/score.py
Profile¶
tju.models.profile.Profile
¶
Bases: Result
Complete student record scraped from the EAMS profile page. Contains identity, enrolment, contact and supervisory information.
Source code in src/tju/models/profile.py
Free classroom¶
tju.models.classroom.FreeClassroom
¶
Bases: Result
A single free-classroom entry returned by the EAMS free-classroom search.