32 lines
894 B
Python
32 lines
894 B
Python
"""
|
|
Shared application state for the web frontend.
|
|
"""
|
|
|
|
from dataclasses import dataclass, field
|
|
from typing import Any, List, Optional
|
|
|
|
|
|
@dataclass
|
|
class AppState:
|
|
"""Singleton-ish shared state for the web application."""
|
|
|
|
memory_manager: Optional[Any] = None
|
|
amd_optimizer: Optional[Any] = None
|
|
pipeline: Optional[Any] = None
|
|
broker: Optional[Any] = None
|
|
model: Optional[Any] = None
|
|
trainer: Optional[Any] = None
|
|
broadcast_task: Optional[Any] = None
|
|
|
|
connections: List[Any] = field(default_factory=list)
|
|
model_status: str = "untrained"
|
|
training_active: bool = False
|
|
trading_active: bool = False
|
|
logs: List[str] = field(default_factory=list)
|
|
|
|
def add_log(self, message: str):
|
|
"""Add a log entry (capped at 500 lines)."""
|
|
self.logs.append(message)
|
|
if len(self.logs) > 500:
|
|
self.logs = self.logs[-500:]
|