summaryrefslogtreecommitdiff
path: root/src/gap_pipeline/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/gap_pipeline/models.py')
-rw-r--r--src/gap_pipeline/models.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/gap_pipeline/models.py b/src/gap_pipeline/models.py
index 6fab32f..9b0f214 100644
--- a/src/gap_pipeline/models.py
+++ b/src/gap_pipeline/models.py
@@ -2,11 +2,12 @@
from __future__ import annotations
+import json
import re
from datetime import datetime, timezone
from typing import Any, Literal
-from pydantic import BaseModel, ConfigDict, Field, model_validator
+from pydantic import BaseModel, ConfigDict, Field, field_validator, model_validator
SCHEMA_VERSION = "gap-prompt-faithful-v1"
@@ -194,6 +195,20 @@ class JudgeVerdict(StrictModel):
blocking_issues: str = ""
patch_suggestion: str = ""
+ @field_validator(
+ "step_by_step_check",
+ "blocking_issues",
+ "patch_suggestion",
+ mode="before",
+ )
+ @classmethod
+ def normalize_text_fields(cls, value: Any) -> str:
+ if value is None:
+ return ""
+ if isinstance(value, str):
+ return value
+ return json.dumps(value, ensure_ascii=False, sort_keys=True)
+
@model_validator(mode="after")
def validate_verdict(self) -> "JudgeVerdict":
if self.verdict == "accept" and self.blocking_issues.strip():