Skip to content

Commit be3cd09

Browse files
committed
feat: Wire ValidatedProvider into main pipeline
Changes: - _load_data() now wraps provider in ValidatedProvider when config.data.validated = True - Falls back gracefully if secondary provider (adata) unavailable - Config: config.data.validated (bool, default false) - Schema: DataConfig.validated field added Usage: config/default.yaml → data.validated: true # Pipeline auto-creates ValidatedProvider(primary + adata) 1192 passed (all existing)
1 parent c653804 commit be3cd09

3 files changed

Lines changed: 22 additions & 1 deletion

File tree

config/default.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ universe:
1111
# --- Data ---
1212
data:
1313
provider: "synthetic" # synthetic, tushare, baostock, postgres
14+
validated: false # Cross-source validation (requires 2+ providers)
1415
synthetic:
1516
embedded_alpha: false # false=pure noise for research; true=embedded patterns for demo
1617
start_date: "2021-01-01"

config/schema.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ class SyntheticConfig:
1717

1818
@dataclass
1919
class DataConfig:
20-
provider: str = "baostock" # synthetic, baostock, tushare, postgres
20+
provider: str = "baostock"
21+
validated: bool = False # synthetic, baostock, tushare, postgres
2122
synthetic: SyntheticConfig = field(default_factory=SyntheticConfig)
2223
start_date: str = "2021-01-01"
2324
end_date: str = "2025-12-31"

main.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,25 @@ def _load_data(config, use_tushare: bool = True, use_baostock: bool = False):
9393
embedded_alpha=embedded,
9494
)
9595

96+
# Optional: wrap in ValidatedProvider for cross-source validation
97+
validated = getattr(config.data, 'validated', False)
98+
if validated and configured_provider != "synthetic":
99+
try:
100+
from quant_platform.data.providers.adata_provider import AdataProvider
101+
from quant_platform.data.providers.validated_provider import ValidatedProvider
102+
103+
secondary = AdataProvider()
104+
# Quick test if adata works
105+
_ = secondary.get_metadata()
106+
107+
provider = ValidatedProvider(
108+
providers={"primary": provider, "secondary": secondary},
109+
primary="primary",
110+
)
111+
logger.info("Multi-source validation enabled: primary + adata")
112+
except Exception:
113+
logger.info("Secondary provider (adata) unavailable — running without validation")
114+
96115
pipeline = DataPipeline(
97116
provider=provider,
98117
start_date=config.data.start_date,

0 commit comments

Comments
 (0)