Separate Statistikausgabe
This commit is contained in:
parent
beea66ef2f
commit
de93cb1aa1
@ -15,6 +15,7 @@ from typing import Dict, List, Tuple, DefaultDict, Optional
|
|||||||
|
|
||||||
from datenmodell import ElterndienstplanerDaten, Dienst, Eltern, Zielverteilung, Entscheidungsvariablen
|
from datenmodell import ElterndienstplanerDaten, Dienst, Eltern, Zielverteilung, Entscheidungsvariablen
|
||||||
from ausgabe import ElterndienstAusgabe
|
from ausgabe import ElterndienstAusgabe
|
||||||
|
from csv_io import EingabeParser
|
||||||
|
|
||||||
|
|
||||||
class Elterndienstplaner:
|
class Elterndienstplaner:
|
||||||
@ -519,6 +520,49 @@ class Elterndienstplaner:
|
|||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
def main() -> None:
|
||||||
|
# New: stats-only mode: ./elterndienstplaner.py --stats-only <eltern.csv> [<vorherige-ausgaben.csv>]
|
||||||
|
if len(sys.argv) >= 2 and sys.argv[1] == '--stats-only':
|
||||||
|
if len(sys.argv) < 3:
|
||||||
|
print("Usage: ./elterndienstplaner.py --stats-only <eltern.csv> [<vorherige-ausgaben.csv>]")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
eltern_datei = sys.argv[2]
|
||||||
|
vorherige_datei = sys.argv[3] if len(sys.argv) > 3 else None
|
||||||
|
|
||||||
|
print("Elterndienstplaner: Statistik-Modus (keine Optimierung)")
|
||||||
|
try:
|
||||||
|
daten = ElterndienstplanerDaten()
|
||||||
|
|
||||||
|
# Nur Elterndaten und historische Dienste einlesen
|
||||||
|
daten.dienstfaktoren = EingabeParser.parse_eltern_csv(eltern_datei)
|
||||||
|
daten.eltern = list(daten.dienstfaktoren.keys())
|
||||||
|
|
||||||
|
if vorherige_datei:
|
||||||
|
daten.historische_dienste = EingabeParser.parse_vorherige_ausgaben_csv(
|
||||||
|
vorherige_datei, daten.eltern, daten.dienste
|
||||||
|
)
|
||||||
|
|
||||||
|
ausgabe = ElterndienstAusgabe(daten)
|
||||||
|
|
||||||
|
# Berechne globale Zielverteilung (benötigt für Übersicht)
|
||||||
|
planer = Elterndienstplaner(daten, ausgabe)
|
||||||
|
ziel_global = planer.berechne_faire_zielverteilung_global()
|
||||||
|
from collections import defaultdict
|
||||||
|
ziel_lokal = defaultdict(lambda: defaultdict(float))
|
||||||
|
ausgabe.setze_zielverteilungen(ziel_lokal, ziel_global)
|
||||||
|
ausgabe.setze_historische_dienste(daten.historische_dienste)
|
||||||
|
|
||||||
|
# Keine Optimierung: nur Übersicht ausgeben
|
||||||
|
ausgabe.visualisiere_dienste_uebersicht({})
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
print(f"\n✗ Fehler im Statistik-Modus: {e}")
|
||||||
|
import traceback
|
||||||
|
traceback.print_exc()
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
# Standardmodus: Optimierung
|
||||||
if len(sys.argv) < 4:
|
if len(sys.argv) < 4:
|
||||||
print("Usage: ./elterndienstplaner.py <eingabe.csv> <eltern.csv> <ausgabe.csv> [<vorherige-ausgaben.csv>]")
|
print("Usage: ./elterndienstplaner.py <eingabe.csv> <eltern.csv> <ausgabe.csv> [<vorherige-ausgaben.csv>]")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user