From c39bb39772373601f3b4f127432be3b1eb5298d2 Mon Sep 17 00:00:00 2001 From: Cristhian Zanforlin Lousa Date: Thu, 16 Jan 2025 15:41:17 -0300 Subject: [PATCH] fix: pass slider input values correctly, add test (#5735) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * ✨ (base.py): Update field validation to include "slider" type in addition to "float" type for better parameter handling 📝 (constants.py): Add "slider" type to the list of DIRECT_TYPES for consistency and completeness * ✅ (test_inputs.py): add unit test for SliderInput class to ensure it initializes with correct value * 🐛 (base.py): fix comparison of field type with a list by changing it to a set to ensure correct condition evaluation * [autofix.ci] apply automated fixes * fix format * [autofix.ci] apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- src/backend/base/langflow/graph/vertex/base.py | 2 +- src/backend/base/langflow/utils/constants.py | 13 +------------ src/backend/tests/unit/inputs/test_inputs.py | 6 ++++++ 3 files changed, 8 insertions(+), 13 deletions(-) diff --git a/src/backend/base/langflow/graph/vertex/base.py b/src/backend/base/langflow/graph/vertex/base.py index bda54255b..05177d111 100644 --- a/src/backend/base/langflow/graph/vertex/base.py +++ b/src/backend/base/langflow/graph/vertex/base.py @@ -395,7 +395,7 @@ class Vertex: params[field_name] = int(val) except ValueError: params[field_name] = val - elif field.get("type") == "float" and val is not None: + elif field.get("type") in {"float", "slider"} and val is not None: try: params[field_name] = float(val) except ValueError: diff --git a/src/backend/base/langflow/utils/constants.py b/src/backend/base/langflow/utils/constants.py index 21e39fcc7..8346019aa 100644 --- a/src/backend/base/langflow/utils/constants.py +++ b/src/backend/base/langflow/utils/constants.py @@ -52,18 +52,7 @@ def python_function(text: str) -> str: PYTHON_BASIC_TYPES = [str, bool, int, float, tuple, list, dict, set] -DIRECT_TYPES = [ - "str", - "bool", - "dict", - "int", - "float", - "Any", - "prompt", - "code", - "NestedDict", - "table", -] +DIRECT_TYPES = ["str", "bool", "dict", "int", "float", "Any", "prompt", "code", "NestedDict", "table", "slider"] LOADERS_INFO: list[dict[str, Any]] = [ diff --git a/src/backend/tests/unit/inputs/test_inputs.py b/src/backend/tests/unit/inputs/test_inputs.py index 8d4386bcb..2a946a2a9 100644 --- a/src/backend/tests/unit/inputs/test_inputs.py +++ b/src/backend/tests/unit/inputs/test_inputs.py @@ -17,6 +17,7 @@ from langflow.inputs.inputs import ( NestedDictInput, PromptInput, SecretStrInput, + SliderInput, StrInput, TableInput, ) @@ -30,6 +31,11 @@ def test_table_input_valid(): assert data.value == [{"key": "value"}, {"key2": "value2"}] +def test_slider_input_valid(): + data = SliderInput(name="valid_slider", value=10) + assert data.value == 10 + + def test_table_input_invalid(): with pytest.raises(ValidationError): TableInput(name="invalid_table", value="invalid")