catopt-graph-graph-calculus.../core/bridge.py

21 lines
706 B
Python

from __future__ import annotations
from typing import Dict
from .contracts import LocalProblem, SharedVariables, DualVariables, PlanDelta
class CatOptBridge:
"""Minimal bridge translating between domain LocalProblem and canonical form."""
@staticmethod
def to_canonical(lp: LocalProblem) -> Dict[str, object]:
# Very lightweight translation: wrap payload with id
return {"object_id": lp.asset_id, "payload": lp.payload}
@staticmethod
def from_canonical(data: Dict[str, object]) -> LocalProblem:
asset_id = str(data.get("object_id", "unknown"))
payload = dict(data.get("payload", {}))
return LocalProblem(asset_id=asset_id, payload=payload)