#!/usr/bin/env python3 """ Gemeinsame Type Aliases für den Elterndienstplaner Autor: Automatisch generiert Datum: Dezember 2025 """ from typing import Dict, Tuple, DefaultDict, TypeAlias, TYPE_CHECKING from datetime import date import pulp # Forward reference für zirkuläre Import-Vermeidung if TYPE_CHECKING: from datenmodell import Dienst # Definiert, welche Namen bei "from typen import *" exportiert werden __all__ = ['Eltern', 'Zielverteilung', 'Entscheidungsvariablen'] # Type Alias für Elternnamen Eltern: TypeAlias = str # Type Alias für Zielverteilungen # Struktur: DefaultDict[Elternname, DefaultDict[Dienst, Anzahl]] Zielverteilung: TypeAlias = DefaultDict[Eltern, DefaultDict['Dienst', float]] # Type Alias für Entscheidungsvariablen des Optimierungsproblems # Struktur: Dict[(Eltern, Datum, Dienst), LP-Variable] Entscheidungsvariablen: TypeAlias = Dict[Tuple[Eltern, date, 'Dienst'], pulp.LpVariable]