Initial commit

This commit is contained in:
Dom
2026-03-05 00:20:25 +01:00
commit dcd4de9945
1954 changed files with 669380 additions and 0 deletions

122
geniusia2/gui/models.py Normal file
View File

@@ -0,0 +1,122 @@
"""
Modèles de données pour la GUI
Définit les structures de données utilisées par l'interface
"""
from dataclasses import dataclass
from datetime import datetime
from typing import Optional
@dataclass
class GUIState:
"""
État de la GUI.
Attributes:
mode: Mode actuel ('shadow', 'assist', 'copilot', 'auto')
is_running: Indique si le système est en cours d'exécution
actions_count: Nombre d'actions observées
patterns_count: Nombre de patterns détectés
workflows_count: Nombre de workflows appris
finetuning_status: Statut du fine-tuning (None, 'collecting', 'training', 'completed')
finetuning_progress: Progression du fine-tuning (0-100 ou None)
"""
mode: str = "shadow"
is_running: bool = False
actions_count: int = 0
patterns_count: int = 0
workflows_count: int = 0
finetuning_status: Optional[str] = None
finetuning_progress: Optional[int] = None
def to_dict(self) -> dict:
"""
Convertit l'état en dictionnaire.
Returns:
Dictionnaire représentant l'état
"""
return {
'mode': self.mode,
'is_running': self.is_running,
'actions_count': self.actions_count,
'patterns_count': self.patterns_count,
'workflows_count': self.workflows_count,
'finetuning_status': self.finetuning_status,
'finetuning_progress': self.finetuning_progress
}
@classmethod
def from_dict(cls, data: dict) -> 'GUIState':
"""
Crée un GUIState à partir d'un dictionnaire.
Args:
data: Dictionnaire contenant les données
Returns:
Instance de GUIState
"""
return cls(
mode=data.get('mode', 'shadow'),
is_running=data.get('is_running', False),
actions_count=data.get('actions_count', 0),
patterns_count=data.get('patterns_count', 0),
workflows_count=data.get('workflows_count', 0),
finetuning_status=data.get('finetuning_status'),
finetuning_progress=data.get('finetuning_progress')
)
if __name__ == "__main__":
"""Tests des modèles de données"""
print("Test des modèles de données")
print("=" * 50)
# Test 1: Création d'un GUIState par défaut
print("\n1. Test GUIState par défaut:")
state = GUIState()
print(f" Mode: {state.mode}")
print(f" Running: {state.is_running}")
print(f" Actions: {state.actions_count}")
# Test 2: Création avec paramètres
print("\n2. Test GUIState avec paramètres:")
state2 = GUIState(
mode="assist",
is_running=True,
actions_count=12,
patterns_count=2,
workflows_count=1,
finetuning_status="collecting",
finetuning_progress=50
)
print(f" Mode: {state2.mode}")
print(f" Running: {state2.is_running}")
print(f" Actions: {state2.actions_count}")
print(f" Patterns: {state2.patterns_count}")
print(f" Workflows: {state2.workflows_count}")
print(f" Fine-tuning: {state2.finetuning_status} ({state2.finetuning_progress}%)")
# Test 3: Conversion en dictionnaire
print("\n3. Test to_dict:")
data = state2.to_dict()
print(f" {data}")
# Test 4: Création depuis dictionnaire
print("\n4. Test from_dict:")
state3 = GUIState.from_dict(data)
print(f" Mode: {state3.mode}")
print(f" Actions: {state3.actions_count}")
# Test 5: Modification de l'état
print("\n5. Test modification:")
state.mode = "auto"
state.is_running = True
state.actions_count = 25
print(f" Mode: {state.mode}")
print(f" Running: {state.is_running}")
print(f" Actions: {state.actions_count}")
print("\n✅ Tous les tests passent!")