Merge branch 'cz/mergeAll' into fix/minor_ui_adjustments
This commit is contained in:
commit
965b18a4de
1 changed files with 24 additions and 21 deletions
|
|
@ -7,7 +7,26 @@ from pydantic import BaseModel, Field, field_serializer, field_validator
|
||||||
from langflow.schema.message import Message
|
from langflow.schema.message import Message
|
||||||
|
|
||||||
|
|
||||||
class TransactionModel(BaseModel):
|
class DefaultModel(BaseModel):
|
||||||
|
class Config:
|
||||||
|
from_attributes = True
|
||||||
|
populate_by_name = True
|
||||||
|
json_encoders = {
|
||||||
|
datetime: lambda v: v.isoformat(),
|
||||||
|
}
|
||||||
|
|
||||||
|
def json(self, **kwargs):
|
||||||
|
# Usa a função de serialização personalizada
|
||||||
|
return super().json(**kwargs, encoder=self.custom_encoder)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def custom_encoder(obj):
|
||||||
|
if isinstance(obj, datetime):
|
||||||
|
return obj.isoformat()
|
||||||
|
raise TypeError(f"Object of type {obj.__class__.__name__} is not JSON serializable")
|
||||||
|
|
||||||
|
|
||||||
|
class TransactionModel(DefaultModel):
|
||||||
index: Optional[int] = Field(default=None)
|
index: Optional[int] = Field(default=None)
|
||||||
timestamp: Optional[datetime] = Field(default_factory=datetime.now, alias="timestamp")
|
timestamp: Optional[datetime] = Field(default_factory=datetime.now, alias="timestamp")
|
||||||
vertex_id: str
|
vertex_id: str
|
||||||
|
|
@ -18,10 +37,6 @@ class TransactionModel(BaseModel):
|
||||||
error: Optional[str] = None
|
error: Optional[str] = None
|
||||||
flow_id: Optional[str] = Field(default=None, alias="flow_id")
|
flow_id: Optional[str] = Field(default=None, alias="flow_id")
|
||||||
|
|
||||||
class Config:
|
|
||||||
from_attributes = True
|
|
||||||
populate_by_name = True
|
|
||||||
|
|
||||||
# validate target_args in case it is a JSON
|
# validate target_args in case it is a JSON
|
||||||
@field_validator("outputs", "inputs", mode="before")
|
@field_validator("outputs", "inputs", mode="before")
|
||||||
def validate_target_args(cls, v):
|
def validate_target_args(cls, v):
|
||||||
|
|
@ -36,7 +51,7 @@ class TransactionModel(BaseModel):
|
||||||
return v
|
return v
|
||||||
|
|
||||||
|
|
||||||
class TransactionModelResponse(BaseModel):
|
class TransactionModelResponse(DefaultModel):
|
||||||
index: Optional[int] = Field(default=None)
|
index: Optional[int] = Field(default=None)
|
||||||
timestamp: Optional[datetime] = Field(default_factory=datetime.now, alias="timestamp")
|
timestamp: Optional[datetime] = Field(default_factory=datetime.now, alias="timestamp")
|
||||||
vertex_id: str
|
vertex_id: str
|
||||||
|
|
@ -48,10 +63,6 @@ class TransactionModelResponse(BaseModel):
|
||||||
source: Optional[str] = None
|
source: Optional[str] = None
|
||||||
target: Optional[str] = None
|
target: Optional[str] = None
|
||||||
|
|
||||||
class Config:
|
|
||||||
from_attributes = True
|
|
||||||
populate_by_name = True
|
|
||||||
|
|
||||||
# validate target_args in case it is a JSON
|
# validate target_args in case it is a JSON
|
||||||
@field_validator("outputs", "inputs", mode="before")
|
@field_validator("outputs", "inputs", mode="before")
|
||||||
def validate_target_args(cls, v):
|
def validate_target_args(cls, v):
|
||||||
|
|
@ -69,7 +80,7 @@ class TransactionModelResponse(BaseModel):
|
||||||
return v
|
return v
|
||||||
|
|
||||||
|
|
||||||
class MessageModel(BaseModel):
|
class MessageModel(DefaultModel):
|
||||||
index: Optional[int] = Field(default=None)
|
index: Optional[int] = Field(default=None)
|
||||||
flow_id: Optional[str] = Field(default=None, alias="flow_id")
|
flow_id: Optional[str] = Field(default=None, alias="flow_id")
|
||||||
timestamp: datetime = Field(default_factory=datetime.now)
|
timestamp: datetime = Field(default_factory=datetime.now)
|
||||||
|
|
@ -79,10 +90,6 @@ class MessageModel(BaseModel):
|
||||||
text: str
|
text: str
|
||||||
files: list[str] = []
|
files: list[str] = []
|
||||||
|
|
||||||
class Config:
|
|
||||||
from_attributes = True
|
|
||||||
populate_by_name = True
|
|
||||||
|
|
||||||
@field_validator("files", mode="before")
|
@field_validator("files", mode="before")
|
||||||
def validate_files(cls, v):
|
def validate_files(cls, v):
|
||||||
if isinstance(v, str):
|
if isinstance(v, str):
|
||||||
|
|
@ -125,7 +132,7 @@ class MessageModelRequest(MessageModel):
|
||||||
session_id: str = Field(default="")
|
session_id: str = Field(default="")
|
||||||
|
|
||||||
|
|
||||||
class VertexBuildModel(BaseModel):
|
class VertexBuildModel(DefaultModel):
|
||||||
index: Optional[int] = Field(default=None, alias="index", exclude=True)
|
index: Optional[int] = Field(default=None, alias="index", exclude=True)
|
||||||
id: Optional[str] = Field(default=None, alias="id")
|
id: Optional[str] = Field(default=None, alias="id")
|
||||||
flow_id: str
|
flow_id: str
|
||||||
|
|
@ -135,10 +142,6 @@ class VertexBuildModel(BaseModel):
|
||||||
artifacts: dict
|
artifacts: dict
|
||||||
timestamp: datetime = Field(default_factory=datetime.now)
|
timestamp: datetime = Field(default_factory=datetime.now)
|
||||||
|
|
||||||
class Config:
|
|
||||||
from_attributes = True
|
|
||||||
populate_by_name = True
|
|
||||||
|
|
||||||
@field_serializer("data", "artifacts")
|
@field_serializer("data", "artifacts")
|
||||||
def serialize_dict(v):
|
def serialize_dict(v):
|
||||||
if isinstance(v, dict):
|
if isinstance(v, dict):
|
||||||
|
|
@ -148,7 +151,7 @@ class VertexBuildModel(BaseModel):
|
||||||
v[key] = value.model_dump()
|
v[key] = value.model_dump()
|
||||||
elif isinstance(value, list) and all(isinstance(i, BaseModel) for i in value):
|
elif isinstance(value, list) and all(isinstance(i, BaseModel) for i in value):
|
||||||
v[key] = [i.model_dump() for i in value]
|
v[key] = [i.model_dump() for i in value]
|
||||||
return json.dumps(v)
|
return json.dumps(v, default=str)
|
||||||
elif isinstance(v, BaseModel):
|
elif isinstance(v, BaseModel):
|
||||||
return v.model_dump_json()
|
return v.model_dump_json()
|
||||||
return v
|
return v
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue