diff --git a/lib/galaxy/workflow/steps.py b/lib/galaxy/workflow/steps.py index 8810e1b78771..b7951434d744 100644 --- a/lib/galaxy/workflow/steps.py +++ b/lib/galaxy/workflow/steps.py @@ -3,6 +3,7 @@ """ import math +from itertools import chain from galaxy.util.topsort import ( CycleError, @@ -58,16 +59,16 @@ 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]: - 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))