Exclude index field in VertexBuildModel and add VertexBuildMapModel

This commit is contained in:
Gabriel Luiz Freitas Almeida 2024-01-31 15:38:34 -03:00
commit d1bd00cbf9

View file

@ -47,7 +47,7 @@ class MessageModel(BaseModel):
class VertexBuildModel(BaseModel):
index: Optional[int] = Field(default=None, alias="index")
index: Optional[int] = Field(default=None, alias="index", exclude=True)
id: Optional[str] = Field(default=None, alias="id")
flow_id: str
valid: bool
@ -80,3 +80,17 @@ class VertexBuildModel(BaseModel):
if isinstance(v, str):
return json.loads(v)
return v
class VertexBuildMapModel(BaseModel):
vertex_builds: dict[str, list[VertexBuildModel]]
@classmethod
def from_list_of_dicts(cls, vertex_build_dicts):
vertex_build_map = {}
for vertex_build_dict in vertex_build_dicts:
vertex_build = VertexBuildModel(**vertex_build_dict)
if vertex_build.id not in vertex_build_map:
vertex_build_map[vertex_build.id] = []
vertex_build_map[vertex_build.id].append(vertex_build)
return cls(vertex_builds=vertex_build_map)