rebuild(stage-5): establish market data gateway and charts

This commit is contained in:
leefer
2026-07-30 02:35:42 +08:00
parent 40ad5d6836
commit cf0ab7026f
45 changed files with 2701 additions and 46 deletions
+26
View File
@@ -0,0 +1,26 @@
from __future__ import annotations
from backend.data.contracts import ProviderResult
class DataQualityError(RuntimeError):
pass
MINIMUM_COVERAGE = {
"calendar": 1.0,
"entities": 0.98,
"daily_chart": 1.0,
"minute_chart": 1.0,
}
def require_quality(dataset: str, result: ProviderResult) -> ProviderResult:
minimum = MINIMUM_COVERAGE.get(dataset, 1.0)
if not result.rows:
raise DataQualityError(f"{dataset} returned no real observations")
if result.metadata.coverage < minimum:
raise DataQualityError(
f"{dataset} coverage {result.metadata.coverage:.3f} is below {minimum:.3f}"
)
return result