23 lines
785 B
Python
23 lines
785 B
Python
from __future__ import annotations
|
|
|
|
from typing import Dict
|
|
from .contracts import LocalProblem as CanonicalLocalProblem
|
|
|
|
class LocalProblem:
|
|
def __init__(self, asset_id: str, payload: Dict[str, object]):
|
|
self.asset_id = asset_id
|
|
self.payload = payload
|
|
|
|
|
|
class CatOptBridge:
|
|
@staticmethod
|
|
def to_canonical(lp: LocalProblem) -> Dict[str, object]:
|
|
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 canonical LocalProblem type defined in core.contracts (tests shim)
|
|
return CanonicalLocalProblem(asset_id=asset_id, payload=payload)
|