Files
trading_gnn/src/web/services/state.py
T
2026-05-26 13:51:02 +02:00

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:]