catopt-grid-category-theore.../catopt_grid/adapters/base.py

32 lines
927 B
Python

"""Base class for adapters mapping local problems to canonical IR."""
from __future__ import annotations
from typing import Dict, Optional
from catopt_grid.bridge import IRObject, IRMorphism, PlanDelta
from catopt_grid.adapters import __version__ as _ADAPTER_VERSION # type: ignore
class AdapterBase:
"""Minimal adapter base class.
Subclasses should implement to_ir_object and to_morphism mappings.
"""
name: str
version: str = "0.0.1"
def __init__(self, name: str) -> None:
self.name = name
def to_ir_object(self, local_problem) -> Optional[IRObject]: # pragma: no cover
"""Convert a local problem to canonical IRObject. Override in subclasses."""
return None
def to_morphism(self, data) -> Optional[IRMorphism]: # pragma: no cover
"""Convert data to a canonical IRMorphism. Override in subclasses."""
return None
__all__ = ["AdapterBase"]