edge-latency-aware-cross-ve.../elac_plan/core.py

73 lines
1.4 KiB
Python

from __future__ import annotations
from dataclasses import dataclass, asdict
from typing import Any, Dict, List
import json
@dataclass
class LocalProblem:
id: str
asset: str
venue: str
objective: str
constraints: Dict[str, Any]
price_target: float
tolerance: float
def to_json(self) -> str:
return json.dumps(asdict(self), default=str)
@dataclass
class SharedVariables:
variables: Dict[str, Any]
version: int
contract_id: str
def to_json(self) -> str:
return json.dumps(asdict(self), default=str)
@dataclass
class PlanDelta:
delta: Dict[str, Any]
timestamp: str
author: str
contract_id: str
privacy_budget: float
def to_json(self) -> str:
return json.dumps(asdict(self), default=str)
@dataclass
class DualVariables:
shadow_prices: Dict[str, float]
version: int
contract_id: str = ""
def to_json(self) -> str:
return json.dumps(asdict(self), default=str)
@dataclass
class AuditLogEntry:
event: str
timestamp: str
hash: str
details: Dict[str, Any] = None
def to_json(self) -> str:
return json.dumps(asdict(self), default=str)
@dataclass
class GovernanceAuditLog:
entries: List[AuditLogEntry]
def add(self, entry: AuditLogEntry) -> None:
self.entries.append(entry)
def to_json(self) -> str:
return json.dumps([asdict(e) for e in self.entries], default=str)