lsst-ctrl-mpexec 29.2025.3600__tar.gz → 29.2025.3800__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {lsst_ctrl_mpexec-29.2025.3600/python/lsst_ctrl_mpexec.egg-info → lsst_ctrl_mpexec-29.2025.3800}/PKG-INFO +1 -1
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/cli/opt/options.py +2 -1
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/showInfo.py +12 -2
- lsst_ctrl_mpexec-29.2025.3800/python/lsst/ctrl/mpexec/version.py +2 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800/python/lsst_ctrl_mpexec.egg-info}/PKG-INFO +1 -1
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/tests/test_cmdLineFwk.py +25 -2
- lsst_ctrl_mpexec-29.2025.3600/python/lsst/ctrl/mpexec/version.py +0 -2
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/COPYRIGHT +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/LICENSE +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/MANIFEST.in +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/README.rst +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/bsd_license.txt +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/doc/lsst.ctrl.mpexec/CHANGES.rst +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/doc/lsst.ctrl.mpexec/configuring-pipetask-tasks.rst +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/doc/lsst.ctrl.mpexec/index.rst +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/doc/lsst.ctrl.mpexec/pipetask.rst +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/gpl-v3.0.txt +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/pyproject.toml +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/__init__.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/__init__.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/__init__.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/_pipeline_graph_factory.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/cli/__init__.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/cli/butler_factory.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/cli/cmd/__init__.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/cli/cmd/commands.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/cli/opt/__init__.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/cli/opt/arguments.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/cli/opt/optionGroups.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/cli/pipetask.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/cli/script/__init__.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/cli/script/build.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/cli/script/cleanup.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/cli/script/confirmable.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/cli/script/pre_exec_init_qbb.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/cli/script/purge.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/cli/script/qgraph.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/cli/script/report.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/cli/script/run.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/cli/script/run_qbb.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/cli/script/update_graph_run.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/cli/utils.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/execFixupDataId.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/executionGraphFixup.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/log_capture.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/mpGraphExecutor.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/preExecInit.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/py.typed +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/quantumGraphExecutor.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/reports.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/separablePipelineExecutor.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/simple_pipeline_executor.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/singleQuantumExecutor.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/taskFactory.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/util.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst_ctrl_mpexec.egg-info/SOURCES.txt +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst_ctrl_mpexec.egg-info/dependency_links.txt +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst_ctrl_mpexec.egg-info/entry_points.txt +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst_ctrl_mpexec.egg-info/requires.txt +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst_ctrl_mpexec.egg-info/top_level.txt +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst_ctrl_mpexec.egg-info/zip-safe +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/setup.cfg +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/tests/test_cliCmdCleanup.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/tests/test_cliCmdPurge.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/tests/test_cliCmdQgraph.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/tests/test_cliCmdReport.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/tests/test_cliCmdUpdateGraphRun.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/tests/test_cliScript.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/tests/test_cliUtils.py +0 -0
- {lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/tests/test_preExecInit.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lsst-ctrl-mpexec
|
|
3
|
-
Version: 29.2025.
|
|
3
|
+
Version: 29.2025.3800
|
|
4
4
|
Summary: Pipeline execution infrastructure for the Rubin Observatory LSST Science Pipelines.
|
|
5
5
|
Author-email: Rubin Observatory Data Management <dm-admin@lists.lsst.org>
|
|
6
6
|
License: BSD 3-Clause License
|
|
@@ -318,7 +318,8 @@ show_option = MWOptionDecorator(
|
|
|
318
318
|
given its label or all tasks; ``pipeline`` to show pipeline
|
|
319
319
|
composition; ``graph`` to show information about quanta;
|
|
320
320
|
``workflow`` to show information about quanta and their
|
|
321
|
-
dependency; ``tasks`` to show task composition; ``
|
|
321
|
+
dependency; ``tasks`` to show task composition; ``subsets`` to
|
|
322
|
+
show subset labels and associated tasks; ``uri`` to show
|
|
322
323
|
predicted dataset URIs of quanta; ``pipeline-graph`` for a
|
|
323
324
|
text-based visualization of the pipeline (tasks and dataset types);
|
|
324
325
|
``task-graph`` for a text-based visualization of just the tasks.
|
{lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/showInfo.py
RENAMED
|
@@ -111,6 +111,7 @@ class ShowInfo:
|
|
|
111
111
|
"dump-config",
|
|
112
112
|
"pipeline-graph",
|
|
113
113
|
"task-graph",
|
|
114
|
+
"subsets",
|
|
114
115
|
}
|
|
115
116
|
graph_commands = {"graph", "workflow", "uri"}
|
|
116
117
|
|
|
@@ -131,7 +132,9 @@ class ShowInfo:
|
|
|
131
132
|
known = self.pipeline_commands | self.graph_commands
|
|
132
133
|
unknown = set(commands) - known
|
|
133
134
|
if unknown:
|
|
134
|
-
raise ValueError(
|
|
135
|
+
raise ValueError(
|
|
136
|
+
f"Unknown value(s) for show: {unknown} (choose from '{', '.join(sorted(known))}')"
|
|
137
|
+
)
|
|
135
138
|
|
|
136
139
|
@property
|
|
137
140
|
def unhandled(self) -> frozenset[str]:
|
|
@@ -151,7 +154,6 @@ class ShowInfo:
|
|
|
151
154
|
if command not in self.commands:
|
|
152
155
|
continue
|
|
153
156
|
args = self.commands[command]
|
|
154
|
-
|
|
155
157
|
match command:
|
|
156
158
|
case "pipeline":
|
|
157
159
|
print(pipeline_graph_factory.pipeline, file=self.stream)
|
|
@@ -166,6 +168,14 @@ class ShowInfo:
|
|
|
166
168
|
self._showConfigHistory(pipeline_graph_factory(visualization_only=True), arg)
|
|
167
169
|
case "tasks":
|
|
168
170
|
self._showTaskHierarchy(pipeline_graph_factory(visualization_only=True))
|
|
171
|
+
case "subsets":
|
|
172
|
+
print(
|
|
173
|
+
"\n".join(
|
|
174
|
+
f"{subset}:\n" + "\n".join(f" - {s}" for s in sorted(tasks))
|
|
175
|
+
for subset, tasks in dict(pipeline_graph_factory.pipeline.subsets).items()
|
|
176
|
+
),
|
|
177
|
+
file=self.stream,
|
|
178
|
+
)
|
|
169
179
|
case "pipeline-graph":
|
|
170
180
|
visualization.show(
|
|
171
181
|
pipeline_graph_factory(visualization_only=True), self.stream, dataset_types=True
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lsst-ctrl-mpexec
|
|
3
|
-
Version: 29.2025.
|
|
3
|
+
Version: 29.2025.3800
|
|
4
4
|
Summary: Pipeline execution infrastructure for the Rubin Observatory LSST Science Pipelines.
|
|
5
5
|
Author-email: Rubin Observatory Data Management <dm-admin@lists.lsst.org>
|
|
6
6
|
License: BSD 3-Clause License
|
|
@@ -439,13 +439,22 @@ class CmdLineFwkTestCase(unittest.TestCase):
|
|
|
439
439
|
actions = [_ACTION_ADD_TASK(f"{_TASK_CLASS}:task"), _ACTION_CONFIG("task:addend=100")]
|
|
440
440
|
kwargs = _makeArgs(pipeline_actions=actions).__dict__
|
|
441
441
|
pipeline_graph_factory = build(**kwargs)
|
|
442
|
+
pipeline_graph_factory.pipeline.addLabeledSubset("test_subset", "test description", {"task"})
|
|
442
443
|
|
|
443
444
|
with self.assertRaises(ValueError):
|
|
444
445
|
ShowInfo(["unrecognized", "config"])
|
|
445
446
|
|
|
446
447
|
stream = StringIO()
|
|
447
448
|
show = ShowInfo(
|
|
448
|
-
[
|
|
449
|
+
[
|
|
450
|
+
"pipeline",
|
|
451
|
+
"config",
|
|
452
|
+
"history=task::addend",
|
|
453
|
+
"tasks",
|
|
454
|
+
"subsets",
|
|
455
|
+
"dump-config",
|
|
456
|
+
"config=task::add*",
|
|
457
|
+
],
|
|
449
458
|
stream=stream,
|
|
450
459
|
)
|
|
451
460
|
show.show_pipeline_info(pipeline_graph_factory)
|
|
@@ -522,6 +531,20 @@ class CmdLineFwkTestCase(unittest.TestCase):
|
|
|
522
531
|
show.show_pipeline_info(pipeline_graph_factory)
|
|
523
532
|
self.assertIn("Pipeline has no tasks named notask", str(cm.exception))
|
|
524
533
|
|
|
534
|
+
stream = StringIO()
|
|
535
|
+
show = ShowInfo(["tasks"], stream=stream)
|
|
536
|
+
show.show_pipeline_info(pipeline_graph_factory)
|
|
537
|
+
stream.seek(0)
|
|
538
|
+
output = stream.read().strip()
|
|
539
|
+
self.assertIn("### Subtasks for task `lsst.pipe.base.tests.simpleQGraph.AddTask'", output)
|
|
540
|
+
|
|
541
|
+
stream = StringIO()
|
|
542
|
+
show = ShowInfo(["subsets"], stream=stream)
|
|
543
|
+
show.show_pipeline_info(pipeline_graph_factory)
|
|
544
|
+
stream.seek(0)
|
|
545
|
+
output = stream.read().strip()
|
|
546
|
+
self.assertIn("test_subset", output)
|
|
547
|
+
|
|
525
548
|
|
|
526
549
|
class CmdLineFwkTestCaseWithButler(unittest.TestCase):
|
|
527
550
|
"""A test case for CmdLineFwk."""
|
|
@@ -537,7 +560,7 @@ class CmdLineFwkTestCaseWithButler(unittest.TestCase):
|
|
|
537
560
|
super().tearDownClass()
|
|
538
561
|
|
|
539
562
|
def testSimpleQGraph(self):
|
|
540
|
-
"""Test
|
|
563
|
+
"""Test successful execution of trivial quantum graph."""
|
|
541
564
|
args = _makeArgs(butler_config=self.root, input="test", output="output")
|
|
542
565
|
butler = makeSimpleButler(self.root, run=args.input, inMemory=False)
|
|
543
566
|
populateButler(self.pipeline, butler)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/doc/lsst.ctrl.mpexec/CHANGES.rst
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/doc/lsst.ctrl.mpexec/index.rst
RENAMED
|
File without changes
|
{lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/doc/lsst.ctrl.mpexec/pipetask.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/__init__.py
RENAMED
|
File without changes
|
{lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/cli/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/py.typed
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/reports.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/python/lsst/ctrl/mpexec/util.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_ctrl_mpexec-29.2025.3600 → lsst_ctrl_mpexec-29.2025.3800}/tests/test_cliCmdUpdateGraphRun.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|