refactor: Add HandleInput to inputs module

This commit is contained in:
ogabrielluiz 2024-06-13 16:50:57 -03:00
commit ffae471c7b
3 changed files with 17 additions and 3 deletions

View file

@ -5,11 +5,12 @@ from .inputs import (
FileInput,
FloatInput,
IntInput,
MultilineInput,
NestedDictInput,
PromptInput,
SecretStrInput,
StrInput,
MultilineInput,
HandleInput,
)
__all__ = [
@ -24,4 +25,5 @@ __all__ = [
"FileInput",
"PromptInput",
"MultilineInput",
"HandleInput",
]

View file

@ -25,7 +25,7 @@ SerializableFieldTypes = Annotated[FieldTypes, PlainSerializer(lambda v: v.value
class BaseInputMixin(BaseModel):
model_config = ConfigDict(arbitrary_types_allowed=True)
field_type: Optional[SerializableFieldTypes] = Field(default=FieldTypes.TEXT)
field_type: Optional[SerializableFieldTypes | str] = Field(default=FieldTypes.TEXT)
required: bool = False
"""Specifies if the field is required. Defaults to False."""

View file

@ -1,6 +1,6 @@
from typing import Callable, Optional, Union
from pydantic import Field
from pydantic import Field, model_validator
from langflow.inputs.validators import StrictBoolean
@ -16,6 +16,17 @@ from .input_mixin import (
)
class HandleInput(BaseInputMixin):
input_types: list[str] = Field(default_factory=list)
field_type: Optional[str] = ""
@model_validator(mode="after")
def validate_model_type(self):
# FieldType should be a string
self.field_type = " | ".join(self.input_types)
return self
class PromptInput(BaseInputMixin, ListableInputMixin):
field_type: Optional[SerializableFieldTypes] = FieldTypes.PROMPT
@ -83,4 +94,5 @@ InputTypes = Union[
FileInput,
PromptInput,
MultilineInput,
HandleInput,
]