diff --git a/__pycache__/price_monitor.cpython-312.pyc b/__pycache__/price_monitor.cpython-312.pyc index c83b293..1052c04 100644 Binary files a/__pycache__/price_monitor.cpython-312.pyc and b/__pycache__/price_monitor.cpython-312.pyc differ diff --git a/__pycache__/strategy_lifecycle.cpython-312.pyc b/__pycache__/strategy_lifecycle.cpython-312.pyc index 56d64fe..1b2ab9a 100644 Binary files a/__pycache__/strategy_lifecycle.cpython-312.pyc and b/__pycache__/strategy_lifecycle.cpython-312.pyc differ diff --git a/mo_bridge.py b/mo_bridge.py index 80572cd..1c62cbb 100644 --- a/mo_bridge.py +++ b/mo_bridge.py @@ -26,10 +26,20 @@ from pathlib import Path logger = logging.getLogger(__name__) -# DSA 源码路径 -_DSA_BASE = Path(__file__).resolve().parent.parent / "daily-stock-analysis" / "ZhuLinsen-daily_stock_analysis-a448886" +# DSA 源码路径(按优先级尝试) +_DSA_CANDIDATES = [ + "/home/hmo/daily-stock-analysis", + str(Path(__file__).resolve().parent.parent / "daily-stock-analysis" / "ZhuLinsen-daily_stock_analysis-a448886"), +] -_HAS_DSA = _DSA_BASE.is_dir() and (_DSA_BASE / "data_provider" / "base.py").exists() +_DSA_BASE = None +for _c in _DSA_CANDIDATES: + _p = Path(_c) + if _p.is_dir() and (_p / "data_provider" / "base.py").exists(): + _DSA_BASE = _p + break + +_HAS_DSA = _DSA_BASE is not None def enrich_analysis_context(region: str = "cn") -> str: diff --git a/mo_provider.py b/mo_provider.py index 68b483b..b9bd646 100644 --- a/mo_provider.py +++ b/mo_provider.py @@ -36,14 +36,22 @@ logger = logging.getLogger(__name__) # ── 路径配置 ───────────────────────────────────────────────────────── -# DSA 源码路径(相对于 MoFin 项目) -_DSA_BASE = os.path.normpath(os.path.join( - os.path.dirname(os.path.abspath(__file__)), - "..", "daily-stock-analysis", - "ZhuLinsen-daily_stock_analysis-a448886" -)) +# DSA 源码路径(按优先级尝试) +_DSA_CANDIDATES = [ + "/home/hmo/daily-stock-analysis", # 服务器部署路径 + os.path.normpath(os.path.join( # 本地开发路径 + os.path.dirname(os.path.abspath(__file__)), + "..", "daily-stock-analysis", "ZhuLinsen-daily_stock_analysis-a448886" + )), +] -_HAS_DSA = os.path.isdir(_DSA_BASE) +_DSA_BASE = None +for _c in _DSA_CANDIDATES: + if os.path.isdir(_c) and os.path.isfile(os.path.join(_c, "data_provider", "base.py")): + _DSA_BASE = _c + break + +_HAS_DSA = _DSA_BASE is not None # ── MoDataProvider ───────────────────────────────────────────────────