major update
Some checks failed
Deploy / lint (push) Failing after 8s
Deploy / test (push) Has been skipped
Deploy / deploy (push) Has been skipped

This commit is contained in:
Dennis Thiessen
2026-02-27 16:08:09 +01:00
parent 61ab24490d
commit 181cfe6588
71 changed files with 7647 additions and 281 deletions

View File

@@ -7,6 +7,34 @@ from datetime import datetime
from pydantic import BaseModel, Field
class SubScoreResponse(BaseModel):
"""A single sub-score within a dimension breakdown."""
name: str
score: float
weight: float
raw_value: float | str | None = None
description: str = ""
class ScoreBreakdownResponse(BaseModel):
"""Breakdown of a dimension score into sub-scores."""
sub_scores: list[SubScoreResponse]
formula: str
unavailable: list[dict[str, str]] = []
class CompositeBreakdownResponse(BaseModel):
"""Breakdown of the composite score showing dimension weights and re-normalization."""
weights: dict[str, float]
available_dimensions: list[str]
missing_dimensions: list[str]
renormalized_weights: dict[str, float]
formula: str
class DimensionScoreResponse(BaseModel):
"""A single dimension score."""
@@ -14,6 +42,7 @@ class DimensionScoreResponse(BaseModel):
score: float
is_stale: bool
computed_at: datetime | None = None
breakdown: ScoreBreakdownResponse | None = None
class ScoreResponse(BaseModel):
@@ -26,6 +55,7 @@ class ScoreResponse(BaseModel):
dimensions: list[DimensionScoreResponse] = []
missing_dimensions: list[str] = []
computed_at: datetime | None = None
composite_breakdown: CompositeBreakdownResponse | None = None
class WeightUpdateRequest(BaseModel):