📝 (base.py): add field_validator decorator to validate name field based on dataType in SourceHandle class

This commit is contained in:
ogabrielluiz 2024-06-17 20:18:23 -03:00
commit 22c5d34038

View file

@ -1,7 +1,7 @@
from typing import TYPE_CHECKING, Any, List, Optional
from loguru import logger
from pydantic import BaseModel, Field
from pydantic import BaseModel, Field, field_validator
from langflow.schema.schema import INPUT_FIELD_NAME
from langflow.services.monitor.utils import log_message
@ -19,6 +19,17 @@ class SourceHandle(BaseModel):
default_factory=list, description="List of output types for the source handle."
)
@field_validator("name", mode="before")
@classmethod
def validate_name(cls, v, _info):
if _info.data["dataType"] == "GroupNode":
# 'OpenAIModel-u4iGV_text_output'
splits = v.split("_", 1)
if len(splits) != 2:
raise ValueError(f"Invalid source handle name {v}")
v = splits[1]
return v
class TargetHandle(BaseModel):
fieldName: str = Field(..., description="Field name for the target handle.")