From 62aed793f89f3aa3a7ab619285e2f13067f00f88 Mon Sep 17 00:00:00 2001 From: Erfan Nourbakhsh Date: Sun, 2 Mar 2025 00:48:02 -0500 Subject: [PATCH] Allow Mermaid diagrams to be saved as images --- python/lsst/ctrl/mpexec/cli/script/build.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/python/lsst/ctrl/mpexec/cli/script/build.py b/python/lsst/ctrl/mpexec/cli/script/build.py index f78d45ba..c6e790ba 100644 --- a/python/lsst/ctrl/mpexec/cli/script/build.py +++ b/python/lsst/ctrl/mpexec/cli/script/build.py @@ -129,10 +129,22 @@ def build( # type: ignore ) if pipeline_mermaid: - with open(pipeline_mermaid, "w") as stream: + # Determine output format based on file extension. + if pipeline_mermaid.endswith(".svg"): + output_format = "svg" + file_mode = "wb" + elif pipeline_mermaid.endswith(".png"): + output_format = "png" + file_mode = "wb" + else: # Default to the text-based mmd format. + output_format = "mmd" + file_mode = "w" + + with open(pipeline_mermaid, file_mode) as stream: visualization.show_mermaid( pipeline.to_graph(butler.registry if butler is not None else None, visualization_only=True), stream, + output_format=output_format, dataset_types=True, task_classes="full", )