blackopsrepl's picture
Add Employee Scheduling Quickstart Demo
e510416
raw
history blame contribute delete
786 Bytes
from solverforge_legacy.solver.score import HardSoftDecimalScore
from typing import Any
from pydantic import BaseModel, ConfigDict, PlainSerializer, BeforeValidator
from pydantic.alias_generators import to_camel
ScoreSerializer = PlainSerializer(
lambda score: str(score) if score is not None else None, return_type=str | None
)
def validate_score(v: Any) -> Any:
if isinstance(v, HardSoftDecimalScore) or v is None:
return v
if isinstance(v, str):
return HardSoftDecimalScore.parse(v)
raise ValueError('"score" should be a string')
ScoreValidator = BeforeValidator(validate_score)
class JsonDomainBase(BaseModel):
model_config = ConfigDict(
alias_generator=to_camel,
populate_by_name=True,
from_attributes=True,
)