47 lines
980 B
Python
47 lines
980 B
Python
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass, field, asdict
|
|
from typing import Dict, List, Any
|
|
|
|
|
|
@dataclass
|
|
class LocalProblem:
|
|
shard_id: str
|
|
projected_attributes: List[str]
|
|
predicates: List[str]
|
|
costs: Dict[str, float]
|
|
constraints: Dict[str, Any] = field(default_factory=dict)
|
|
|
|
def to_dict(self) -> Dict[str, Any]:
|
|
return asdict(self)
|
|
|
|
|
|
@dataclass
|
|
class SharedVariables:
|
|
version: int
|
|
payload: Dict[str, Any] = field(default_factory=dict)
|
|
|
|
|
|
@dataclass
|
|
class DualVariables:
|
|
version: int
|
|
payload: Dict[str, Any] = field(default_factory=dict)
|
|
|
|
|
|
@dataclass
|
|
class PlanDelta:
|
|
delta_id: str
|
|
timestamp: float
|
|
changes: Dict[str, Any] = field(default_factory=dict)
|
|
|
|
|
|
@dataclass
|
|
class DataContract:
|
|
schemas: Dict[str, Any] = field(default_factory=dict)
|
|
encryption_rules: Dict[str, Any] = field(default_factory=dict)
|
|
|
|
|
|
@dataclass
|
|
class AuditLog:
|
|
entries: List[str] = field(default_factory=list)
|