41 lines
1.4 KiB
Python
41 lines
1.4 KiB
Python
"""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)
|