30 lines
932 B
Python
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]
|