diff --git a/app/requirements.txt b/app/requirements.txt index 4773bc4..05dfe65 100644 --- a/app/requirements.txt +++ b/app/requirements.txt @@ -1,6 +1,7 @@ fastapi playwright pydantic +pydantic-settings uvicorn[standard] Wand yggdrasil-mc==0.1b6 \ No newline at end of file diff --git a/app/settings.py b/app/settings.py index dfa71d3..3490e2e 100644 --- a/app/settings.py +++ b/app/settings.py @@ -1,4 +1,4 @@ -from pydantic import BaseSettings +from pydantic_settings import BaseSettings class Settings(BaseSettings): diff --git a/app/skinview3d/models.py b/app/skinview3d/models.py index ff322b8..5362ca9 100644 --- a/app/skinview3d/models.py +++ b/app/skinview3d/models.py @@ -1,5 +1,6 @@ -from pydantic import BaseModel, root_validator, confloat +from pydantic import model_validator, Field, BaseModel import base64 +from typing_extensions import Annotated class BackendInfo(BaseModel): @@ -8,8 +9,8 @@ class BackendInfo(BaseModel): class CommonResponse(BaseModel): - front: bytes | None - back: bytes | None + front: bytes | None = None + back: bytes | None = None both: bytes | None = None backendInfo: BackendInfo @@ -29,14 +30,15 @@ class All_Response_Json(BaseModel): both_b64: str backendInfo: BackendInfo - @root_validator(pre=True) + @model_validator(mode="before") + @classmethod def convertToBase64(cls, values): for i in ("front", "back", "both"): values[f"{i}_b64"] = base64.b64encode(values[i]) if values[i] else '' return values class CommonOptions(BaseModel): - definition: confloat(ge=0.8, le=3.5) = 1.5 + definition: Annotated[float, Field(ge=0.8, le=3.5)] = 1.5 transparent: bool = False class CommonQuery(CommonOptions):