diff --git a/api/core/workflow/utils/condition/processor.py b/api/core/workflow/utils/condition/processor.py index c61b3d1861..9795387788 100644 --- a/api/core/workflow/utils/condition/processor.py +++ b/api/core/workflow/utils/condition/processor.py @@ -375,11 +375,25 @@ def _process_sub_conditions( for condition in sub_conditions: key = FileAttribute(condition.key) values = [file_manager.get_attr(file=file, attr=key) for file in files] + expected_value = condition.value + if key == FileAttribute.EXTENSION: + if not isinstance(expected_value, str): + raise TypeError("Expected value must be a string when key is FileAttribute.EXTENSION") + if expected_value and not expected_value.startswith("."): + expected_value = "." + expected_value + + normalized_values = [] + for value in values: + if value and isinstance(value, str): + if not value.startswith("."): + value = "." + value + normalized_values.append(value) + values = normalized_values sub_group_results = [ _evaluate_condition( value=value, operator=condition.comparison_operator, - expected=condition.value, + expected=expected_value, ) for value in values ]