Parcourir la source

fix: enhance file extension condition check for if-else node (#17060)

tags/1.2.0
Arcaner il y a 7 mois
Parent
révision
becd03a4aa
Aucun compte lié à l'adresse e-mail de l'auteur
1 fichiers modifiés avec 15 ajouts et 1 suppressions
  1. 15
    1
      api/core/workflow/utils/condition/processor.py

+ 15
- 1
api/core/workflow/utils/condition/processor.py Voir le fichier

for condition in sub_conditions: for condition in sub_conditions:
key = FileAttribute(condition.key) key = FileAttribute(condition.key)
values = [file_manager.get_attr(file=file, attr=key) for file in files] 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 = [ sub_group_results = [
_evaluate_condition( _evaluate_condition(
value=value, value=value,
operator=condition.comparison_operator, operator=condition.comparison_operator,
expected=condition.value,
expected=expected_value,
) )
for value in values for value in values
] ]

Chargement…
Annuler
Enregistrer