Changelog
Development
🔧 Änderungen
IndiwareFecthingErrorwurde inVpMobilPyErrorumbenannt
2.0.0 (2025-11-10)
🚀 Neue Funktionen
Vollumfänglicher Support für Lehrer- und Raumpläne hinzugefügt, Support für Klassenpläne vervollständigt
Parameter
portzuVertretungsplanhinzugefügtEnumerator
Stundenplan24Pfadehinzugefügt, der die Standardpfade auf stundenplan24.de enthältSubmodul
confighinzugefügt, das Parameter für das Parsing enthältDatenmodelle können mit
.as_dict()in ein sauberes JSON-kompatibles Dictionary umgewandelt werdenKonversionsfunktionen zwischen
VertretungsTag-Datenmodellen inextensions.reparserhinzugefügt
Lehrer- & Raumpläne
Im Rahmen der Einführung neuer Vertretungsplantypen wurden einige Datenmodelle in Basis- und Unterklassen aufgeteilt. Die drei Vertretungsplanklassen KlassenVertretungsTag, LehrerVertretungsTag und RaumVertretungsTag erben von einer neuen Basisklasse, die grundlegendes Verhalten für Pläne enthält. Die einzelnen Planklassen bringen dann noch weitere Funktionen mit.
Neue Klassen sind:
VertretungsTagBasisklasse für Vertretungspläne
Erzeugt beim Instanzierungsversuch eine Instanz einer ihrer Subklassen
Kann mit
isinstance()als Protokoll für alle Vertretungspläne genutzt werden
LehrerVertretungsTagSubklasse von
VertretungsTagHat
.lehrerund.get_lehrer()
RaumVertretungsTagSubklasse von
VertretungsTagHat
.räumeund.raum()
LehrerDas Lehrerplan-Äquivalent zu
KlasseWird von
LehrerVertretungsTag.lehrererzeugt
RaumDas Raumplan-Äquivalent zu
KlasseWird von
RaumVertretungsTag.räumeerzeugt
AufsichtEin primitives Datenmodell, ähnlich zu
Stunde, das Informationen über eine Lehreraufsicht enthältHat
.vorStunde,.uhrzeit,.zeitund.ortWird von
Lehrer.aufsichtenerzeugt
KlausurEin primitives Datenmodell, ähnlich zu
Aufsicht, das Informationen über eine Klausur enthältWird von
Klasse.klausurenerzeugt
🔧 Änderungen
Vertretungsplanund.fetch()wurden angepasst, um die neuen Vertretungsplanarten verarbeiten zu könnenVertretungsplan.bulkfetch()wurde entferntInvalidCredentialsErrorwurde inUnauthorizedumbenanntVertretungsTag.freieTagegibt stattNonenun[]zurückVertretungsTag.datumparst jetzt nicht mehr den Dateinamen sondern den XML-TagDatumPlanVertretungsTag.klassen,.lehrerund.räumegeben nun ein Dictionary zurück. Die Schlüssel sind die jeweiligen Kürzel, die Werte sind die jeweiligen KlasseninstanzenVertretungsTag.klasse(),.get_lehrer()und.raum()wurden entferntKlasse.stundenHeutewurde in.stundenund.stundenHeuteInPeriodein.stundenInPeriodeumbenanntKlasse.stundenInPeriode()gibt nun[]stattNonezurückKlasse.kursegibt nun ein Dictionary zurück. Die Schlüssel sind die jeweiligen Kürzel, die Werte sind die jeweiligen KursinstanzenStunde.raumwurde durchStunde.räumeersetzt, das nun eine Liste von Strings zurückgibt. StattNonewird[]zurückgegebenStunde.lehrergibt nun eine Liste von Strings zurück. StattNonewird[]zurückgegebenStunde.ausfallist nun auchTrue, wenn die Stundeninfo"selbst"enthält und Lehrer und Räume nicht vorhanden sindKurs.gruppewurde in.kürzelumbenannt. Es gibt jetzt als Fallback.fachzurückAlle Properties, die Klassen, Lehrer oder Räume zurückgeben, verwenden nun das Trennzeichen, das in
config.SEPARATORfestgelegt werden kann, um Mehrfachnennungen zu trennenAlle Properties wurden
None-sicher gemacht, sodass sie nun keine Fehler mehr werfen können, sollte ein Tag in der Quelldatei unerwarteter Weise nicht vorhanden seinAufzählungen von Klassen können nun auch Bereiche (z.B.
"5a-7c") enthalten und werden aufgelöst. Das Format einer Klassenbezeichnung kann inconfigdurch ein Pattern konfiguriert werden. Die Capturing Groupsstufeundsuffixmüssen enthalten sein
Vertretungsplan und .fetch()
Vertretungsplan und .fetch()Vertretungsplan ist nun so konzipiert, dass es ein Standardpfadschema für Dateiabrufe gibt. Andere Dateien können in .fetch() dennoch weiterhin abgerufen werden.
Parameter
vezeichnisunddateinamenschemavon.fetch()wurden indateipfadschemazusammengeführtWenn
.fetch()mit dem Parameterdateiangegeben wird, ersetzt das den Standarddateipfad.dateikann, wieVertretungsplan.dateipfadschemamit Platzhaltern des datetime-Moduls und dem Platzhalterschulnummerverwendet werden
🪲 Bug Fixes
VertretungsTag.lehrerKrankwirft einen Fehler, wenn es einen Kurs gibt, der keinen Lehrer hat
1.1.0 (2025-08-27)
🚀 Neue Funktionen
Weitere Funktionalität zum verarbeiten von von Indiware-Software bereitgestellter Daten ist nun im Submodul
extensionsverfügbarKurse und deren Schüler einer Klasse können nun mit
vpmobil.extensions.einzpläne.kurse()aus EinzPläne-PDF-Dateien gelesen werdenTutoren und deren Schüler einer Klasse können nun mit
vpmobil.extensions.einzpläne.tutoren()aus EinzPläne-PDF-Dateien gelesen werden
🔧 Änderungen
VpDaywurde inVertretungsTagumbenanntvpmobil.parsefromfile()wurde nachvpmobil.VertretungsTag.fromfile()verschoben und kann nun nicht mehr direkt importiert werdenDas Projekt ist nun unter European Union Public License 1.2 lizensiert
Ein paar Docstrings wurden konkretisiert oder weisen nun auf mögliche Inkonsistenzen hin
Vertretungsplan.fetchall()wurde inVertretungsplan.bulkfetch()umbenannt
🪲 Bug Fixes
Vertretungsplan.fetchall()raised nichtResourceNotFoundsondernIndiwareFetchingError, wenn keine Pläne gefunden wurden
1.0.1 (2025-08-03)
🪲 Bug Fixes
from vpmobil import *importiert nichts
1.0.0 (2025-08-03)
🚀 Neue Funktionen
Ein bestimmter Kurs kann per Kursnummer mit
Klasse.kurs()erhalten werden
🔧 Änderungen
Neustrukturierung der gesammten Kernfunktionalität durch die Verwendung modernerer Syntax
Die Werkzeugklasse
workflowwurde aufgelöst. Alle Klassen, Funktionen und Exceptions können einfach ausvpmobilimportiert werdenDie meisten Funktionen und Eigenschaften gegeben nun
Nonezurück statt einen Fehler zu werfen, wenn in den XML-Daten nichts gefunden wirdEinige unhandliche und unnötige Methoden von
Klassewurden entferntEin paar Exceptions wurden umbenannt, entfernt oder durch built-ins ersetzt
Einige Module wurden zusammengeführt und umbenannt
🪲 Bug Fixes
In der Nachricht des
FetchingErrors, der beiVertretungsplan.fetch()geworfen wird, wird die Datei, die nicht abgerufen werden konnte, nicht richtig benannt
⚠️ Bekannte Probleme
VpDay.lehrerKrankbehandelt mehrere in einem Kurs oder einer Stunde angeführte Lehrer nicht mehr separat
0.4.2 (2024-12-28)
🔧 Änderungen
Werkzeugsammlungsklasse von
vpmobil.VpMobilinvpmobil.workflowumbenannt
Zuletzt aktualisiert