From 8b00c8a6b0d9ba71541ee25b649a2e9b673b5018 Mon Sep 17 00:00:00 2001 From: Bryan Brancotte <bryan.brancotte@pasteur.fr> Date: Tue, 13 Feb 2024 15:09:26 +0100 Subject: [PATCH] quoting labels to prevent error with symbole equal in labels --- src/outils_graph.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/outils_graph.py b/src/outils_graph.py index 7b4aae0..95a9313 100644 --- a/src/outils_graph.py +++ b/src/outils_graph.py @@ -45,22 +45,28 @@ def generate_graph_mermaid(filename, dico, label_node = True, label_edge = True, import re for match in re.finditer(r"object at (\w+)>", txt): return match.group(1) + + def quoted(label): + if not label.strip(): + return label + return f'"{label}"' + def get_graph_wo_operations_mermaid_temp(dico, txt, count): count+=1 for node in dico["nodes"]: tab= count*"\t" if(node['name']==''): if(label_node): - txt+=f"{tab}{get_id(node['id'])}(({node['xlabel']}));\n" + txt+=f"{tab}{get_id(node['id'])}(({quoted(node['xlabel'])}));\n" else: txt+=f"{tab}{get_id(node['id'])}(({' '}));\n" else: - txt+=f"{tab}{get_id(node['id'])}({node['name']});\n" + txt+=f"{tab}{get_id(node['id'])}({quoted(node['name'])});\n" for edge in dico["edges"]: tab= count*"\t" if(label_edge): - txt+=f"{tab}{get_id(edge['A'])}--{edge['label']}-->{get_id(edge['B'])};\n" + txt+=f"{tab}{get_id(edge['A'])}--{quoted(edge['label'])}-->{get_id(edge['B'])};\n" else: txt+=f"{tab}{get_id(edge['A'])}-->{get_id(edge['B'])};\n" for subworkflow in dico["subworkflows"]: -- GitLab