chore: update to component utils logic (#8086)
* update to component utils logic * Update data_operations.py * [autofix.ci] apply automated fixes * Update component_utils.py --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
This commit is contained in:
parent
777200fab3
commit
d07d1d4bd9
2 changed files with 22 additions and 13 deletions
|
|
@ -7,7 +7,7 @@ from langflow.io import DataInput, Output
|
|||
from langflow.logging import logger
|
||||
from langflow.schema import Data
|
||||
from langflow.schema.dotdict import dotdict
|
||||
from langflow.utils.component_utils import set_current_fields
|
||||
from langflow.utils.component_utils import set_current_fields, set_field_display
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from collections.abc import Callable
|
||||
|
|
@ -385,6 +385,7 @@ class DataOperationsComponent(Component):
|
|||
action_fields=self.actions_data,
|
||||
selected_action=action,
|
||||
default_fields=self.default_keys,
|
||||
func=set_field_display,
|
||||
)
|
||||
|
||||
# Handle no operations case
|
||||
|
|
@ -395,6 +396,7 @@ class DataOperationsComponent(Component):
|
|||
action_fields=self.actions_data,
|
||||
selected_action=None,
|
||||
default_fields=self.default_keys,
|
||||
func=set_field_display,
|
||||
)
|
||||
|
||||
return build_config
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
from collections.abc import Callable
|
||||
from typing import Any
|
||||
|
||||
from langflow.schema.dotdict import dotdict
|
||||
|
|
@ -52,17 +53,17 @@ def update_input_types(build_config: dotdict) -> dotdict:
|
|||
return build_config
|
||||
|
||||
|
||||
def set_field_display(build_config: dotdict, field: str, is_visible: bool | None = None) -> dotdict:
|
||||
def set_field_display(build_config: dotdict, field: str, value: bool | None = None) -> dotdict:
|
||||
"""Set whether a field should be displayed in the UI."""
|
||||
if field in build_config and isinstance(build_config[field], dict) and "show" in build_config[field]:
|
||||
build_config[field]["show"] = is_visible
|
||||
build_config[field]["show"] = value
|
||||
return build_config
|
||||
|
||||
|
||||
def set_multiple_field_display(
|
||||
build_config: dotdict,
|
||||
fields: dict[str, bool] | None = None,
|
||||
is_visible: bool | None = None,
|
||||
value: bool | None = None,
|
||||
field_list: list[str] | None = None,
|
||||
) -> dotdict:
|
||||
"""Set display property for multiple fields at once."""
|
||||
|
|
@ -71,21 +72,23 @@ def set_multiple_field_display(
|
|||
build_config = set_field_display(build_config, field, visibility)
|
||||
elif field_list is not None:
|
||||
for field in field_list:
|
||||
build_config = set_field_display(build_config, field, is_visible)
|
||||
build_config = set_field_display(build_config, field, value)
|
||||
return build_config
|
||||
|
||||
|
||||
def set_field_advanced(build_config: dotdict, field: str, is_advanced: bool | None = None) -> dotdict:
|
||||
def set_field_advanced(build_config: dotdict, field: str, value: bool | None = None) -> dotdict:
|
||||
"""Set whether a field is considered 'advanced' in the UI."""
|
||||
if value is None:
|
||||
value = False
|
||||
if field in build_config and isinstance(build_config[field], dict):
|
||||
build_config[field]["advanced"] = is_advanced
|
||||
build_config[field]["advanced"] = value
|
||||
return build_config
|
||||
|
||||
|
||||
def set_multiple_field_advanced(
|
||||
build_config: dotdict,
|
||||
fields: dict[str, bool] | None = None,
|
||||
is_advanced: bool | None = None,
|
||||
value: bool | None = None,
|
||||
field_list: list[str] | None = None,
|
||||
) -> dotdict:
|
||||
"""Set advanced property for multiple fields at once."""
|
||||
|
|
@ -94,7 +97,7 @@ def set_multiple_field_advanced(
|
|||
build_config = set_field_advanced(build_config, field, advanced)
|
||||
elif field_list is not None:
|
||||
for field in field_list:
|
||||
build_config = set_field_advanced(build_config, field, is_advanced)
|
||||
build_config = set_field_advanced(build_config, field, value)
|
||||
return build_config
|
||||
|
||||
|
||||
|
|
@ -116,22 +119,26 @@ def set_current_fields(
|
|||
action_fields: dict[str, list[str]],
|
||||
selected_action: str | None = None,
|
||||
default_fields: list[str] = DEFAULT_FIELDS,
|
||||
func: Callable[[dotdict, str, bool], dotdict] = set_field_display,
|
||||
default_value: bool | None = None,
|
||||
) -> dotdict:
|
||||
"""Set the current fields for a selected action."""
|
||||
# action_fields = {action1: [field1, field2], action2: [field3, field4]}
|
||||
# we need to show action of one field and disable the rest
|
||||
if default_value is None:
|
||||
default_value = False
|
||||
if selected_action in action_fields:
|
||||
for field in action_fields[selected_action]:
|
||||
build_config = set_field_display(build_config=build_config, field=field, is_visible=True)
|
||||
build_config = func(build_config, field, not default_value)
|
||||
for key, value in action_fields.items():
|
||||
if key != selected_action:
|
||||
for field in value:
|
||||
build_config = set_field_display(build_config=build_config, field=field, is_visible=False)
|
||||
build_config = func(build_config, field, default_value)
|
||||
if selected_action is None:
|
||||
for value in action_fields.values():
|
||||
for field in value:
|
||||
build_config = set_field_display(build_config=build_config, field=field, is_visible=False)
|
||||
build_config = func(build_config, field, default_value)
|
||||
if default_fields is not None:
|
||||
for field in default_fields:
|
||||
build_config = set_field_display(build_config=build_config, field=field, is_visible=True)
|
||||
build_config = func(build_config, field, not default_value)
|
||||
return build_config
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue