From 6357752b244d62ef77403d7d745169f7a017f88a Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Fri, 16 Feb 2024 11:01:29 -0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20chore(base.py):=20update=20seria?= =?UTF-8?q?lize=5Fdisplay=5Fname=20method=20to=20handle=20cases=20where=20?= =?UTF-8?q?display=5Fname=20is=20not=20set=20and=20convert=20name=20to=20t?= =?UTF-8?q?itle=20case=20if=20title=5Fcase=20is=20True?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/langflow/template/field/base.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/backend/langflow/template/field/base.py b/src/backend/langflow/template/field/base.py index 021c0104d..798d07b55 100644 --- a/src/backend/langflow/template/field/base.py +++ b/src/backend/langflow/template/field/base.py @@ -1,8 +1,7 @@ from typing import Any, Callable, Optional, Union -from pydantic import BaseModel, ConfigDict, Field, field_serializer - from langflow.field_typing.range_spec import RangeSpec +from pydantic import BaseModel, ConfigDict, Field, field_serializer class TemplateField(BaseModel): @@ -64,6 +63,9 @@ class TemplateField(BaseModel): range_spec: Optional[RangeSpec] = Field(default=None, serialization_alias="rangeSpec") """Range specification for the field. Defaults to None.""" + title_case: bool = True + """Specifies if the field should be displayed in title case. Defaults to True.""" + def to_dict(self): return self.model_dump(by_alias=True, exclude_none=True) @@ -76,3 +78,15 @@ class TemplateField(BaseModel): if value == "float" and self.range_spec is None: self.range_spec = RangeSpec() return value + + @field_serializer("display_name") + def serialize_display_name(self, value, _info): + # If display_name is not set, use name and convert to title case + # if title_case is True + if value is None: + # name is probably a snake_case string + # Ex: "file_path" -> "File Path" + value = self.name.replace("_", " ") + if self.title_case: + value = value.title() + return value