Module edupage_api.classes

Classes

class Class (class_id: int,
name: str,
short: str,
homeroom_teachers: list[EduTeacher] | None,
homeroom: Classroom | None,
grade: int | None)
Expand source code
@dataclass
class Class:
    class_id: int
    name: str
    short: str
    homeroom_teachers: Optional[list[EduTeacher]]
    homeroom: Optional[Classroom]
    grade: Optional[int]

Class(class_id: int, name: str, short: str, homeroom_teachers: Optional[list[edupage_api.people.EduTeacher]], homeroom: Optional[edupage_api.classrooms.Classroom], grade: Optional[int])

Class variables

var class_id : int
var grade : int | None
var homeroomClassroom | None
var homeroom_teachers : list[EduTeacher] | None
var name : str
var short : str
class Classes (edupage: EdupageModule)
Expand source code
class Classes(Module):
    @ModuleHelper.logged_in
    def get_classes(self) -> Optional[list]:
        classes_list = DbiHelper(self.edupage).fetch_class_list()

        if classes_list is None:
            return None

        classes = []

        for class_id_str, class_info in classes_list.items():
            if not class_id_str:
                continue

            home_teacher_ids = [
                class_info.get("teacherid"),
                class_info.get("teacher2id"),
            ]
            home_teachers = [
                People(self.edupage).get_teacher(tid) for tid in home_teacher_ids if tid
            ]
            home_teachers = [ht for ht in home_teachers if ht]

            homeroom_id = class_info.get("classroomid")
            homeroom = Classrooms(self.edupage).get_classroom(homeroom_id)

            classes.append(
                Class(
                    int(class_id_str),
                    class_info["name"],
                    class_info["short"],
                    home_teachers if home_teachers else None,
                    homeroom,
                    int(class_info["grade"]) if class_info["grade"] else None,
                )
            )

        return classes

    def get_class(self, class_id: Union[int, str]) -> Optional[Class]:
        try:
            class_id = int(class_id)
        except (ValueError, TypeError):
            return None

        return next(
            (
                edu_class
                for edu_class in self.get_classes()
                if edu_class.class_id == class_id
            ),
            None,
        )

Ancestors

Methods

def get_class(self, class_id: int | str) ‑> Class | None
Expand source code
def get_class(self, class_id: Union[int, str]) -> Optional[Class]:
    try:
        class_id = int(class_id)
    except (ValueError, TypeError):
        return None

    return next(
        (
            edu_class
            for edu_class in self.get_classes()
            if edu_class.class_id == class_id
        ),
        None,
    )
def get_classes(self) ‑> list | None
Expand source code
@ModuleHelper.logged_in
def get_classes(self) -> Optional[list]:
    classes_list = DbiHelper(self.edupage).fetch_class_list()

    if classes_list is None:
        return None

    classes = []

    for class_id_str, class_info in classes_list.items():
        if not class_id_str:
            continue

        home_teacher_ids = [
            class_info.get("teacherid"),
            class_info.get("teacher2id"),
        ]
        home_teachers = [
            People(self.edupage).get_teacher(tid) for tid in home_teacher_ids if tid
        ]
        home_teachers = [ht for ht in home_teachers if ht]

        homeroom_id = class_info.get("classroomid")
        homeroom = Classrooms(self.edupage).get_classroom(homeroom_id)

        classes.append(
            Class(
                int(class_id_str),
                class_info["name"],
                class_info["short"],
                home_teachers if home_teachers else None,
                homeroom,
                int(class_info["grade"]) if class_info["grade"] else None,
            )
        )

    return classes