edge-latency-aware-cross-ve.../src/edge_latency_aware_cross_ve.../models.py

50 lines
1.4 KiB
Python

from __future__ import annotations
from typing import List, Optional
from datetime import datetime
from pydantic import BaseModel, Field
class LocalProblem(BaseModel):
id: str = Field(..., description="Unique problem identifier")
asset: str
venue: str
objective: str = Field("min_spread", description="High-level objective tag")
parameters: Optional[dict] = Field(default_factory=dict)
price_target: Optional[float] = None
tolerance: Optional[float] = None
constraints: Optional[dict] = None
created_at: datetime = Field(default_factory=datetime.utcnow)
class SharedVariables(BaseModel):
contract_id: str
version: int
signals: dict | None = None
variables: dict | None = None
privacy_budget: Optional[float] = 0.0
class DualVariables(BaseModel):
contract_id: str = ""
version: int
shadow_prices: dict
class PlanDelta(BaseModel):
contract_id: Optional[str] = None
delta: dict
timestamp: datetime = Field(default_factory=datetime.utcnow)
author_signature: Optional[str] = None
author: Optional[str] = None
def to_json(self) -> str:
import json
return json.dumps(self.dict(), default=str)
class AuditLog(BaseModel):
contract_id: Optional[str] = None
entry: dict
timestamp: datetime = Field(default_factory=datetime.utcnow)
signature: Optional[str] = None