fix: use categorical regime fundamentals
Deploy / lint (push) Successful in 8s
Deploy / test (push) Successful in 1m13s
Deploy / deploy (push) Successful in 37s

This commit is contained in:
2026-07-15 10:13:22 +02:00
parent ced066dc01
commit f714782fa4
7 changed files with 257 additions and 58 deletions
+12 -5
View File
@@ -1,7 +1,9 @@
"""Market-level endpoints (benchmark regime + AI/Tech regime-change monitor)."""
from typing import Literal
from fastapi import APIRouter, Depends, Query
from pydantic import BaseModel, Field, field_validator
from pydantic import BaseModel, ConfigDict, Field, field_validator
from sqlalchemy.ext.asyncio import AsyncSession
from app.dependencies import get_db, require_access, require_admin
@@ -55,8 +57,10 @@ class RegimeConfigUpdate(BaseModel):
class RegimeFundamentalsUpdate(BaseModel):
f1_score: float | None = None
f3_score: float | None = None
model_config = ConfigDict(extra="forbid")
capex: dict[str, Literal["raising", "holding", "cutting", "unknown"]] | None = None
good_news_stock_down: Literal["yes", "no", "mixed"] | None = None
locked: bool | None = None
@@ -108,9 +112,12 @@ async def update_regime_fundamentals(
_admin: User = Depends(require_admin),
db: AsyncSession = Depends(get_db),
) -> APIEnvelope:
"""Manually override F1/F3 (locks out the LLM refresh until unlocked)."""
"""Manually override categorical F1/F3 observations."""
data = await regime_monitor_service.set_fundamental_overrides(
db, f1_score=body.f1_score, f3_score=body.f3_score, locked=body.locked
db,
capex=body.capex,
good_news_stock_down=body.good_news_stock_down,
locked=body.locked,
)
return APIEnvelope(status="success", data=data)