fix(HEL-494): enforce datahub as sole website market boundary

Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
总管
2026-09-09 00:22:27 +08:00
co-authored by multica-agent
parent 8a7d1f3698
commit c9e2d30780
22 changed files with 212 additions and 216 deletions
+11 -14
View File
@@ -14,7 +14,7 @@ from backend.bootstrap.config import (
validate_text,
)
from backend.data.providers.ifind_client import IfindError
from backend.data.providers.tushare_client import TushareClient, TushareError
from backend.data.providers.tushare_client import TushareError
from backend.data.providers.tushare_helpers import _moneyflow_payload, _optional_number
from backend.data.realtime import RealtimeAggregateError
from backend.features.market.backfill_history import (
@@ -61,16 +61,14 @@ class MarketServiceMixin:
self._tushare_client(),
ifind=self.ifind,
)
def _tushare_client(self) -> TushareClient:
def _tushare_client(self) -> Any:
override = getattr(self, "_market_client_override", None)
if override is not None:
return override
gateway = getattr(self, "data_gateway", None)
if gateway is not None:
return gateway.tushare()
# Compatibility for isolated legacy unit-test service stubs.
client = TushareClient(self.token)
aggregator = getattr(self, "realtime_aggregator", None)
if aggregator is not None:
client.realtime_aggregator = aggregator
return client
if gateway is None:
raise RuntimeError("数据中枢尚未装配。")
return gateway.tushare()
def _now(self) -> datetime:
clock = getattr(self, "clock", None)
@@ -178,11 +176,10 @@ class MarketServiceMixin:
return "最近可用交易日"
return f"{int(compact[4:6])}{int(compact[6:8])}"
@classmethod
def _preparing_display_notice(cls, actual_date: str, requested_date: str) -> str:
shown = cls._chinese_month_day(actual_date)
def _preparing_display_notice(self, actual_date: str, requested_date: str) -> str:
shown = self._chinese_month_day(actual_date)
requested = str(requested_date or "").replace("-", "")
if requested == date.today().strftime("%Y%m%d"):
if requested == self._now().strftime("%Y%m%d"):
return f"今日数据正在准备,当前展示 {shown}"
return f"所选日期数据尚未到齐,当前展示 {shown}"