快速开始
bagelquant-data 是 provider 中立的数据层,用于管理 provider 适配器、本地数据湖快照、元数据和面板形状读取。
安装
uv add bagelquant-data
如果需要使用 Tushare:
uv add "bagelquant-data[tushare]"
注册 Provider
from bagelquant_data.datasource import DataSourceRegistry, TushareDataSource
registry = DataSourceRegistry()
registry.register(TushareDataSource(token="your-token"))
创建本地数据湖
from bagelquant_data.lake import DataLakeManager, LocalDataLake
lake = LocalDataLake(".bagelquant-data-lake")
manager = DataLakeManager(lake, registry=registry)
写入或刷新数据
自定义数据可以直接写入 pandas frame:
manager.add("custom", "prices", prices)
Provider 数据通过 DataRequest 读取并保存为本地快照:
from bagelquant_data.datasource import DataRequest
manager.update(
"tushare",
DataRequest(
dataset="daily",
fields=("ts_code", "trade_date", "close"),
start_date="2024-01-01",
end_date="2024-01-31",
),
)
读取数据
from bagelquant_data.loader import Loader
loaded = Loader(registry=registry, lake=lake).source("tushare").load(
"daily",
fields=("open", "close"),
start_date="2024-01-01",
end_date="2024-01-31",
)
frame = loaded.data
研究输入通常读取为日期乘资产的面板形状:
retrieved = Loader(registry=registry, lake=lake).source("tushare").load_panel(
dataset="daily",
field="close",
universe=["000001.SZ", "600000.SH"],
start_date="2024-01-01",
end_date="2024-12-31",
)
RetrievedPanel 暴露 pandas 数据、calendar 和 universe,由下游包决定如何构建自己的 domain 对象。