Skip to content

Commit

Permalink
Move pipeline-dot build from cmdLineFwk to builder
Browse files Browse the repository at this point in the history
This commit moves the pipeline-dot build logic from cmdLineFwk into
cli/script/build.py.
As part of this commit, a switch to using the same back-end display args
parser as --show pipeline-graph is also made.
  • Loading branch information
leeskelvin committed Jun 6, 2024
1 parent f1e75d8 commit 492ce6c
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 5 deletions.
6 changes: 4 additions & 2 deletions python/lsst/ctrl/mpexec/cli/cmd/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,10 +124,12 @@ def build(ctx: click.Context, **kwargs: Any) -> None:
"""
kwargs = _collectActions(ctx, **kwargs)
show = ShowInfo(kwargs.pop("show", []))
if kwargs.get("butler_config") is not None and {"pipeline-graph", "task-graph"}.isdisjoint(show.commands):
if kwargs.get("butler_config") is not None and (
{"pipeline-graph", "task-graph"}.isdisjoint(show.commands) and not kwargs.get("pipeline_dot")
):
raise click.ClickException(
"--butler-config was provided but nothing uses it "
"(only --show pipeline-graph and --show task-graph do)."
"(only --show pipeline-graph, --show task-graph and --pipeline-dot do)."
)
script.build(**kwargs, show=show)
_unhandledShow(show, "build")
Expand Down
10 changes: 10 additions & 0 deletions python/lsst/ctrl/mpexec/cli/script/build.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
from types import SimpleNamespace

from lsst.daf.butler import Butler
from lsst.pipe.base.pipeline_graph import visualization

from ... import CmdLineFwk
from ..utils import _PipelineAction
Expand Down Expand Up @@ -114,6 +115,15 @@ def build( # type: ignore
else:
butler = None

if pipeline_dot:
with open(pipeline_dot, "w") as stream:
visualization.show_dot(

Check warning on line 120 in python/lsst/ctrl/mpexec/cli/script/build.py

View check run for this annotation

Codecov / codecov/patch

python/lsst/ctrl/mpexec/cli/script/build.py#L120

Added line #L120 was not covered by tests
pipeline.to_graph(butler.registry if butler is not None else None),
stream,
dataset_types=True,
task_classes="full",
)

show.show_pipeline_info(pipeline, butler=butler)

return pipeline
3 changes: 0 additions & 3 deletions python/lsst/ctrl/mpexec/cmdLineFwk.py
Original file line number Diff line number Diff line change
Expand Up @@ -582,9 +582,6 @@ def makePipeline(self, args: SimpleNamespace) -> Pipeline:
if args.save_pipeline:
pipeline.write_to_uri(args.save_pipeline)

if args.pipeline_dot:
pipeline2dot(pipeline, args.pipeline_dot)

return pipeline

def makeGraph(self, pipeline: Pipeline, args: SimpleNamespace) -> QuantumGraph | None:
Expand Down

0 comments on commit 492ce6c

Please sign in to comment.