From 0b91156b6cc70899c26631d0683ff8ee1bafb41d Mon Sep 17 00:00:00 2001 From: ogabrielluiz Date: Mon, 17 Jun 2024 17:39:48 -0300 Subject: [PATCH] refactor: Update TextInput validation to handle list values --- src/backend/base/langflow/inputs/inputs.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/backend/base/langflow/inputs/inputs.py b/src/backend/base/langflow/inputs/inputs.py index 540e1f894..c01f25130 100644 --- a/src/backend/base/langflow/inputs/inputs.py +++ b/src/backend/base/langflow/inputs/inputs.py @@ -57,9 +57,8 @@ class MessageInput(StrInput): class TextInput(StrInput): input_types: list[str] = ["Message"] - @field_validator("value") - @classmethod - def validate_value(cls, v: Any, _info): + @staticmethod + def _validate_value(v: Any, _info): value = None if isinstance(v, str): value = v @@ -76,10 +75,19 @@ class TextInput(StrInput): f"You can set `text_key` to one of the following keys: {keys} or set the value using another Component." ) else: - raise ValueError(f"Invalid input type {type(v)}") - if isinstance(value, str): - return value - raise ValueError(f"Invalid value type {type(value)}") + raise ValueError(f"Invalid value type {type(v)}") + return value + + @field_validator("value") + @classmethod + def validate_value(cls, v: Any, _info): + is_list = _info.data["is_list"] + value = None + if is_list: + value = [cls._validate_value(vv, _info) for vv in v] + else: + value = cls._validate_value(v, _info) + return value class MultilineInput(BaseInputMixin):