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 ausgabe import ElterndienstAusgabe
|
||||
from csv_io import EingabeParser
|
||||
|
||||
|
||||
class Elterndienstplaner:
|
||||
@ -519,6 +520,49 @@ class Elterndienstplaner:
|
||||
|
||||
|
||||
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:
|
||||
print("Usage: ./elterndienstplaner.py <eingabe.csv> <eltern.csv> <ausgabe.csv> [<vorherige-ausgaben.csv>]")
|
||||
sys.exit(1)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user