# -*- coding: utf-8 -*- """ Datenklassen fuer das Trainer-Framework. """ from dataclasses import dataclass, field from trixy_core.trainer.enums import TrainingState, TrainerType @dataclass class TrainerInfo: """Metadaten eines registrierten Trainers.""" trainer_id: str = "" name: str = "" description: str = "" version: str = "" author: str = "" model_type: str = "" trainer_type: TrainerType = TrainerType.CORE @dataclass class TrainingProgress: """Fortschrittsdaten waehrend eines Trainings.""" state: TrainingState = TrainingState.IDLE epoch: int = 0 total_epochs: int = 0 loss: float = 0.0 val_loss: float = 0.0 accuracy: float = 0.0 learning_rate: float = 0.0 eta_seconds: float = 0.0 vram_used_mb: float = 0.0 loss_history: list[float] = field(default_factory=list) val_loss_history: list[float] = field(default_factory=list) message: str = "" error: str = "" @dataclass class ValidationResult: """Ergebnis einer Trainings-Validierung.""" valid: bool = False errors: list[str] = field(default_factory=list) warnings: list[str] = field(default_factory=list) gpu_available: bool = False gpu_name: str = "" gpu_memory_mb: float = 0.0 @dataclass class FormSchema: """Schema fuer dynamische Formulare in der TUI.""" fields: list[dict] = field(default_factory=list)