diff options
Diffstat (limited to 'src/gap_pipeline/models.py')
| -rw-r--r-- | src/gap_pipeline/models.py | 17 |
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(): |
