"""adapter 工厂:按 OPENCLAW_TEST_TARGET 选择实现。""" from __future__ import annotations import logging from typing import Optional from jiangchang_skill_core import config from service.amazon_report_adapter.base import DownloadSettlementAdapterBase, DownloadSettlementResult from service.amazon_report_adapter.mock import MockDownloadSettlementAdapter from service.amazon_report_adapter.simulator_rpa import SimulatorRpaDownloadSettlementAdapter logger = logging.getLogger(__name__) __all__ = [ "get_adapter", "DownloadSettlementAdapterBase", "DownloadSettlementResult", "MockDownloadSettlementAdapter", "SimulatorRpaDownloadSettlementAdapter", ] def get_adapter(*, artifacts_dir: Optional[str] = None) -> DownloadSettlementAdapterBase: target = (config.get("OPENCLAW_TEST_TARGET") or "").strip().lower() if target in ("mock", "unit"): logger.info("target '%s': MockDownloadSettlementAdapter", target) return MockDownloadSettlementAdapter() if target == "real_rpa": logger.warning("target real_rpa 未实现,回退 MockDownloadSettlementAdapter") return MockDownloadSettlementAdapter() if target and target != "simulator_rpa": logger.warning("未知 target '%s',回退 simulator_rpa", target) logger.info("target '%s': SimulatorRpaDownloadSettlementAdapter", target or "(unset=default)") return SimulatorRpaDownloadSettlementAdapter(artifacts_dir=artifacts_dir)