Modul Marks¶
Modul Marks slouží k načítání a práci se známkami. Umí:
- stáhnout známky ze serveru školy,
- pracovat s předměty a jejich známkami (včetně nových známek),
- filtrovat známky podle data nebo rozsahu datumů,
- vracet známky seskupené podle předmětů,
- formátovaný výstup
Tento modul již provádí autorizované dotazy, takže je nutné již mít údaje o tokenech, případně provést první přihlášení.
Třída Marks¶
| class Marks | |
|---|---|
Jako jediný parametr přijímá inicializovanou instanci Bakalari.
Načtení známek ze serveru¶
Známky načte metoda fetch_marks().
Metoda se nevolá automaticky při inicializaci třídy Marks. Je nutné ji volat ručně vždy, když chcete aktualizovat známky.
| Načtení známek | |
|---|---|
Upozornění
Pro správné fungování je nutné mít platné přihlašovací údaje (tokeny) v instanci Bakalari.
Datové struktury¶
Známky a předměty se ukládají do speciálních tříd, které modul používá interně i v návratových hodnotách API:
-
SubjectsBaseid: str— identifikátor předmětuabbr: str— zkratka předmětuname: str— název předmětuaverage_text: str— textový průměr (řeší server)points_only: bool— zda je předmět pouze bodově hodnocenmarks: MarksRegistry— kolekce známek pro daný předmět
-
MarksBaseid: str- id známkydate: datetime- datum známkycaption: str- text známkytheme: str | None- název tématu známkymarktext: MarkOptionsBase | None— textová reprezentace známky (1, A, +, apod.)teacher: str | None- učitel, který vydal známkusubject_id: str- identifikátor předmětuis_new: bool- nová známkais_points: bool- zda je známka bodovápoints_text: str | None- textová reprezentace bodůmax_points: int | None- maximální počet bodů
-
MarkOptionsBaseid: strabbr: strtext: str
Logování a fallbacky
- Pokud server vrátí
MarkText, který není vMarkOptions, do logu se zapíše warning a modul použije „placeholder“MarkOptionsBase, aby zpracování nespadlo. - Pokud server vrátí známku k neznámému
subject_id, modul to zaloguje jako warning a danou známku přeskočí.
Základní čtení dat¶
Získání seznamu předmětů¶
| Seznam předmětů | |
|---|---|
Získání známek pro konkrétní předmět¶
| Známky pro předmět | |
|---|---|
Práce s novými známkami¶
Všechny nové známky (napříč předměty)¶
| Nové známky | |
|---|---|
Nové známky podle dne nebo rozsahu¶
Kompletní přehled známek (seskupeno dle předmětů)¶
Vrátit jako data¶
| Všechny známky (seskupené) | |
|---|---|
Filtrovat dle data/rozsahu a/nebo předmětu¶
Výpis na stdout
Modul má i helper, který rovnou vypíše formátovaný přehled: