Optimize signal read paths and enforce score invariants

This commit is contained in:
2026-07-11 16:04:13 +02:00
parent fdc49d0e28
commit 9450831ef3
13 changed files with 426 additions and 170 deletions
+3 -3
View File
@@ -3,9 +3,9 @@
from datetime import date, datetime
from sqlalchemy import select
from sqlalchemy.dialects.postgresql import insert as pg_insert
from sqlalchemy.ext.asyncio import AsyncSession
from app.database import insert_for_session
from app.exceptions import NotFoundError, ValidationError
from app.models.ohlcv import OHLCVRecord
from app.models.ticker import Ticker
@@ -53,7 +53,7 @@ async def upsert_ohlcv(
_validate_ohlcv(high, low, open_, close, volume, record_date)
ticker = await _get_ticker(db, symbol)
stmt = pg_insert(OHLCVRecord).values(
stmt = insert_for_session(db, OHLCVRecord).values(
ticker_id=ticker.id,
date=record_date,
open=open_,
@@ -64,7 +64,7 @@ async def upsert_ohlcv(
created_at=datetime.utcnow(),
)
stmt = stmt.on_conflict_do_update(
constraint="uq_ohlcv_ticker_date",
index_elements=["ticker_id", "date"],
set_={
"open": stmt.excluded.open,
"high": stmt.excluded.high,