Refactor serialization logic in VertexBuildModel class
This commit is contained in:
parent
ef321fcebe
commit
bec9346a98
1 changed files with 12 additions and 1 deletions
|
|
@ -79,7 +79,12 @@ class VertexBuildModel(BaseModel):
|
||||||
@field_serializer("data", "artifacts")
|
@field_serializer("data", "artifacts")
|
||||||
def serialize_dict(v):
|
def serialize_dict(v):
|
||||||
if isinstance(v, dict):
|
if isinstance(v, dict):
|
||||||
# map_dict = to_map(v)
|
# check if the value of each key is a BaseModel or a list of BaseModels
|
||||||
|
for key, value in v.items():
|
||||||
|
if isinstance(value, BaseModel):
|
||||||
|
v[key] = value.model_dump()
|
||||||
|
elif isinstance(value, list) and all(isinstance(i, BaseModel) for i in value):
|
||||||
|
v[key] = [i.model_dump() for i in value]
|
||||||
return json.dumps(v)
|
return json.dumps(v)
|
||||||
return v
|
return v
|
||||||
|
|
||||||
|
|
@ -92,6 +97,12 @@ class VertexBuildModel(BaseModel):
|
||||||
return v
|
return v
|
||||||
return v
|
return v
|
||||||
|
|
||||||
|
@field_serializer("params")
|
||||||
|
def serialize_params(v):
|
||||||
|
if isinstance(v, list) and all(isinstance(i, BaseModel) for i in v):
|
||||||
|
return json.dumps([i.model_dump() for i in v])
|
||||||
|
return v
|
||||||
|
|
||||||
@validator("data", pre=True)
|
@validator("data", pre=True)
|
||||||
def validate_data(cls, v):
|
def validate_data(cls, v):
|
||||||
if isinstance(v, str):
|
if isinstance(v, str):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue