From 023178db2fd3ac05cc50b0efaf43710079229351 Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Thu, 4 Apr 2024 15:53:33 +0200 Subject: [PATCH 1/2] Fix saving workflows with freehand_comments only --- lib/galaxy/workflow/steps.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/galaxy/workflow/steps.py b/lib/galaxy/workflow/steps.py index f1cb776c9b94..61b11d5295b1 100644 --- a/lib/galaxy/workflow/steps.py +++ b/lib/galaxy/workflow/steps.py @@ -57,11 +57,12 @@ def order_workflow_steps(steps, comments): else: sortable_comments.append(comment) - # consider comments to find normalization position - min_left_comments = min(comment.position[0] for comment in sortable_comments) - min_top_comments = min(comment.position[1] for comment in sortable_comments) - min_left = min(min_left_comments, min_left) - min_top = min(min_top_comments, min_top) + if sortable_comments: + # consider comments to find normalization position + min_left_comments = min(comment.position[0] for comment in sortable_comments) + min_top_comments = min(comment.position[1] for comment in sortable_comments) + min_left = min(min_left_comments, min_left) + min_top = min(min_top_comments, min_top) # normalize comments by min_left and min_top for comment_list in [sortable_comments, freehand_comments]: From b825f798caed03241a01e9fe4669bc4ecb4b9d45 Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Thu, 4 Apr 2024 16:14:55 +0200 Subject: [PATCH 2/2] Reduce for loop nesting --- lib/galaxy/workflow/steps.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/galaxy/workflow/steps.py b/lib/galaxy/workflow/steps.py index 61b11d5295b1..a9db778805e6 100644 --- a/lib/galaxy/workflow/steps.py +++ b/lib/galaxy/workflow/steps.py @@ -2,6 +2,7 @@ workflow steps. """ import math +from itertools import chain from galaxy.util.topsort import ( CycleError, @@ -65,9 +66,8 @@ def order_workflow_steps(steps, comments): min_top = min(min_top_comments, min_top) # normalize comments by min_left and min_top - for comment_list in [sortable_comments, freehand_comments]: - for comment in comment_list: - comment.position = [comment.position[0] - min_left, comment.position[1] - min_top] + for comment in chain(sortable_comments, freehand_comments): + comment.position = [comment.position[0] - min_left, comment.position[1] - min_top] # order by Euclidean distance to the origin sortable_comments.sort(key=lambda comment: math.sqrt(comment.position[0] ** 2 + comment.position[1] ** 2))