# -*- coding: ansi -*-
from print_tables import tables
import csv

# Klassen-Daten einlesen
klassen = {
    "s6a": [],
    "s6b": [],
    "s6c": [],
    "s6ds": [],
    "s6es": []
}

# test commit

try:
    with open("vornamen_6kl_25.csv", "r", encoding="utf-8") as f:
        reader = csv.reader(f, delimiter=";")
        for row in reader:
            for i, key in enumerate(klassen.keys()):
                if i >= len(row):
                    continue
                name = row[i].strip()
                if name:
                    klassen[key].append(name)
except FileNotFoundError as err:
    print(err)

# Alphabetisch sortieren und unique machen, aber Gesamtzahl vorher sichern
gesamtzahlen = {}
for key in klassen:
    gesamtzahlen[key] = len(klassen[key])  # Anzahl aller Schüler inkl. Duplikate
    klassen[key] = sorted(set(klassen[key]))  # Unique + alphabetisch

# Originale Tabelle ausgeben
tables.print_table(klassen)

# Statistik vorbereiten
stats = {
    "Klasse": [],
    "Eigene Vornamen": [],
    "Schüler gesamt": []
}

gesamt_schueler = 0
for klasse, namen in klassen.items():
    stats["Klasse"].append(klasse)
    stats["Eigene Vornamen"].append(len(namen))
    stats["Schüler gesamt"].append(gesamtzahlen[klasse])
    gesamt_schueler += gesamtzahlen[klasse]

# Statistik-Tabelle ausgeben
print("\nKlassenstatistik:")
tables.print_table(stats)
print(f"\nGesamtanzahl Schüler: {gesamt_schueler}")

# Alle unique Namen über alle Klassen
alle_namen = set()
for namen in klassen.values():
    alle_namen.update(namen)

print(f"Gesamtzahl eigene Vornamen: {len(alle_namen)}")
