from dataclasses import dataclass, field from typing import Dict @dataclass class NodeState: name: str cpu_load: float = 0.0 memory_load: float = 0.0 temp: float = 0.0 instability: float = 0.0 active_jobs: int = 0 last_seen: float = 0.0 labels: Dict = field(default_factory=dict) class NodeStateRegistry: def __init__(self): self.nodes = {} def update(self, name, **kwargs): if name not in self.nodes: self.nodes[name] = NodeState(name=name) node = self.nodes[name] for k, v in kwargs.items(): setattr(node, k, v) def get(self, name): return self.nodes.get(name) def all(self): return list(self.nodes.values())