refactor: Update BaseInputMixin to validate input assignment

This commit is contained in:
ogabrielluiz 2024-06-14 15:32:55 -03:00
commit c97d90c4ad
2 changed files with 3 additions and 5 deletions

View file

@ -11,7 +11,6 @@ from langflow.inputs.inputs import InputTypes
from langflow.schema.artifact import get_artifact_type, post_process_raw
from langflow.schema.data import Data
from langflow.template.field.base import UNDEFINED, Input, Output
from langflow.utils.util import is_class_method
from .custom_component import CustomComponent
@ -63,9 +62,8 @@ class Component(CustomComponent):
if key not in self._inputs:
raise ValueError(f"Input {key} not found in arguments")
input_ = self._inputs[key]
# validate_inputs must be a classmethod
if hasattr(input_, "validate_value") and is_class_method(func=input_.validate_value, cls=input_):
input_.validate_value(value)
# BaseInputMixin has a `validate_assignment=True`
input_.value = value
def set_attributes(self, params: dict):
self._validate_inputs(params)

View file

@ -22,7 +22,7 @@ SerializableFieldTypes = Annotated[FieldTypes, PlainSerializer(lambda v: v.value
# Base mixin for common input field attributes and methods
class BaseInputMixin(BaseModel):
class BaseInputMixin(BaseModel, validate_assignment=True):
model_config = ConfigDict(arbitrary_types_allowed=True)
field_type: Optional[SerializableFieldTypes | str] = Field(default=FieldTypes.TEXT)