"""同步任务注册表。 所有 `SyncTask` 子类在此集中注册,外部通过 `get_task(dataset_id)` 或 遍历 `TASKS` 字典使用。 """ from app.tasks.task_industry_sector import SyncIndustrySector from app.tasks.task_kline_5min import SyncKline5Min from app.tasks.task_kline_daily import SyncKlineDaily from app.tasks.task_kline_index import SyncKlineIndex from app.tasks.task_market_regime import SyncMarketRegime from app.tasks.task_moneyflow import SyncMoneyflow from app.tasks.task_sector_features import SyncSectorFeatures from app.tasks.task_share_snapshot import SyncShareSnapshot from app.tasks.task_stocks_basic import SyncStocksBasic TASKS: dict[str, type] = { cls.dataset_id: cls for cls in ( SyncStocksBasic, SyncKlineDaily, SyncKlineIndex, SyncKline5Min, SyncMoneyflow, SyncIndustrySector, SyncSectorFeatures, SyncShareSnapshot, SyncMarketRegime, ) } def get_task(dataset_id: str): """通过 dataset_id 取同步任务类实例,找不到抛 KeyError。""" if dataset_id not in TASKS: raise KeyError(f"未知的同步任务: {dataset_id!r},可选: {sorted(TASKS)}") return TASKS[dataset_id]() __all__ = ["TASKS", "get_task"]