feat(HEL-382): 搭建 datahub 底座和盘后正式数据链路

新增独立 xiaobai-datahub 服务(SQLite WAL、Tushare 盘后发布、/v1 契约和管理后台),不改现站页面与数据链路。

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
总工
2026-09-02 12:05:26 +08:00
co-authored by Cursor multica-agent
parent c2ebc0ab91
commit 3498dd7a4b
52 changed files with 4259 additions and 0 deletions
+23
View File
@@ -0,0 +1,23 @@
from __future__ import annotations
import math
from typing import Any
def finite_number(value: Any, default: float | None = None) -> float | None:
"""Return a finite float, or default (None means JSON null)."""
if value is None or value == "":
return default
try:
number = float(value)
except (TypeError, ValueError):
return default
if not math.isfinite(number):
return default
return number
def round4(value: float | None) -> float | None:
if value is None:
return None
return round(float(value), 4)