2025-12-25 21:43:29 +01:00

30 lines
932 B
Python

#!/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]