"""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 # Adapter versioning helper (fallback to a static value to avoid circular imports). try: # Optional: some environments may expose a version via the adapters package. from catopt_grid.adapters import __version__ as _ADAPTER_VERSION # type: ignore except Exception: _ADAPTER_VERSION = "0.0.0" 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"]