feat: 新增股票基础数据获取模块 stock_basic

- 新增 get_stock_basic 和 sync_all_stocks 函数
- 完善 Tushare 数据获取模块体系
- 测试用例重构:从 Mock 改为真实 API 调用
- 更新 API 文档,添加接口使用示例
- 更新开发规范:添加 Mock 使用规范
This commit is contained in:
2026-01-31 04:30:29 +08:00
parent e625a53162
commit 38e78a5326
10 changed files with 341 additions and 339 deletions

View File

@@ -57,14 +57,24 @@ def get_daily(
if adj:
params["adj"] = adj
if factors:
params["factors"] = factors
# Tushare expects factors as comma-separated string, not list
if isinstance(factors, list):
factors_str = ",".join(factors)
else:
factors_str = factors
params["factors"] = factors_str
print(f"[get_daily] factors param: '{factors_str}'")
if adjfactor:
params["adjfactor"] = "True"
# Fetch data
data = client.query("daily", **params)
# Fetch data using pro_bar (supports factors like tor, vr)
print(f"[get_daily] Query params: {params}")
data = client.query("pro_bar", **params)
if data.empty:
if not data.empty:
print(f"[get_daily] Returned columns: {data.columns.tolist()}")
print(f"[get_daily] Sample row: {data.iloc[0].to_dict()}")
else:
print(f"[get_daily] No data for ts_code={ts_code}")
return data