lsst-ctrl-bps 30.0.1rc1__tar.gz → 30.2026.300__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_bps-30.0.1rc1/python/lsst_ctrl_bps.egg-info → lsst_ctrl_bps-30.2026.300}/PKG-INFO +3 -3
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/doc/lsst.ctrl.bps/CHANGES.rst +0 -44
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/doc/lsst.ctrl.bps/quickstart.rst +0 -3
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/pyproject.toml +13 -5
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/bps_config.py +4 -4
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/clustered_quantum_graph.py +6 -7
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/construct.py +1 -2
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/generic_workflow.py +4 -4
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/initialize.py +1 -2
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/quantum_clustering_funcs.py +1 -1
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/transform.py +10 -10
- lsst_ctrl_bps-30.2026.300/python/lsst/ctrl/bps/version.py +2 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/wms_service.py +5 -5
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300/python/lsst_ctrl_bps.egg-info}/PKG-INFO +3 -3
- lsst_ctrl_bps-30.0.1rc1/python/lsst/ctrl/bps/version.py +0 -2
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/COPYRIGHT +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/LICENSE +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/MANIFEST.in +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/README.md +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/bsd_license.txt +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/doc/lsst.ctrl.bps/index.rst +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/gpl-v3.0.txt +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/__init__.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/__init__.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/__init__.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/_exceptions.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/bps_draw.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/bps_reports.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/bps_utils.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/cancel.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/cli/__init__.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/cli/bps.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/cli/cmd/__init__.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/cli/cmd/commands.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/cli/opt/__init__.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/cli/opt/arguments.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/cli/opt/option_groups.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/cli/opt/options.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/constants.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/drivers.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/etc/bps_defaults.yaml +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/ping.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/pre_transform.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/prepare.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/report.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/restart.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/status.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/submit.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/tests/config_test_utils.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/tests/gw_test_utils.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst_ctrl_bps.egg-info/SOURCES.txt +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst_ctrl_bps.egg-info/dependency_links.txt +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst_ctrl_bps.egg-info/entry_points.txt +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst_ctrl_bps.egg-info/requires.txt +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst_ctrl_bps.egg-info/top_level.txt +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst_ctrl_bps.egg-info/zip-safe +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/setup.cfg +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/tests/test_bps_reports.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/tests/test_bps_utils.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/tests/test_bpsconfig.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/tests/test_cli_commands.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/tests/test_clustered_quantum_graph.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/tests/test_construct.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/tests/test_drivers.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/tests/test_generic_workflow.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/tests/test_initialize.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/tests/test_ping.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/tests/test_pre_transform.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/tests/test_quantum_clustering_funcs.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/tests/test_report.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/tests/test_status.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/tests/test_transform.py +0 -0
- {lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/tests/test_wms_service.py +0 -0
{lsst_ctrl_bps-30.0.1rc1/python/lsst_ctrl_bps.egg-info → lsst_ctrl_bps-30.2026.300}/PKG-INFO
RENAMED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lsst-ctrl-bps
|
|
3
|
-
Version: 30.
|
|
3
|
+
Version: 30.2026.300
|
|
4
4
|
Summary: Pluggable execution of workflow graphs from Rubin pipelines.
|
|
5
5
|
Author-email: Rubin Observatory Data Management <dm-admin@lists.lsst.org>
|
|
6
6
|
License-Expression: BSD-3-Clause OR GPL-3.0-or-later
|
|
7
7
|
Project-URL: Homepage, https://github.com/lsst/ctrl_bps
|
|
8
|
-
Project-URL: Source, https://github.com/lsst/ctrl_bps
|
|
9
8
|
Keywords: lsst
|
|
10
9
|
Classifier: Intended Audience :: Science/Research
|
|
11
10
|
Classifier: Operating System :: OS Independent
|
|
12
11
|
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.12
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.13
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.14
|
|
16
16
|
Classifier: Topic :: Scientific/Engineering :: Astronomy
|
|
17
|
-
Requires-Python: >=3.
|
|
17
|
+
Requires-Python: >=3.11.0
|
|
18
18
|
Description-Content-Type: text/markdown
|
|
19
19
|
License-File: COPYRIGHT
|
|
20
20
|
License-File: LICENSE
|
|
@@ -1,47 +1,3 @@
|
|
|
1
|
-
lsst-ctrl-bps v30.0.1 (2026-02-03)
|
|
2
|
-
==================================
|
|
3
|
-
|
|
4
|
-
Dropped Python 3.11.
|
|
5
|
-
Tested with Python 3.14.
|
|
6
|
-
|
|
7
|
-
Other Changes and Additions
|
|
8
|
-
---------------------------
|
|
9
|
-
|
|
10
|
-
- - Bumped minimum Python version to 3.12.
|
|
11
|
-
- Dropped ``black`` and ``isort`` sections from ``pyproject.toml``.
|
|
12
|
-
- Switched documentation build to use ``sphinxutils``. (`DM-54006 <https://rubinobs.atlassian.net/browse/DM-54006>`_)
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
lsst-ctrl-bps v30.0.0 (2026-01-16)
|
|
16
|
-
==================================
|
|
17
|
-
|
|
18
|
-
New Features
|
|
19
|
-
------------
|
|
20
|
-
|
|
21
|
-
- Added support for transferring input files to the execution site and bringing the produced output files back to the submit site when using ``bps submitcmd``. (`DM-48479 <https://rubinobs.atlassian.net/browse/DM-48479>`_)
|
|
22
|
-
- Added ``bpsGenerateConfig`` and ``bpsEval`` to run functions to produce config values. ``bpsGenerateConfig`` is used when inserting or updating one or more key/value pairs. ``bpsEval`` is for replacing part of a string value. (`DM-50616 <https://rubinobs.atlassian.net/browse/DM-50616>`_)
|
|
23
|
-
|
|
24
|
-
Bug Fixes
|
|
25
|
-
---------
|
|
26
|
-
|
|
27
|
-
- Fixed bug where the ``return_exit_codes`` command line value was not passed to the plugin's report function. While it was correctly used when displaying the report, not having the value didn't allow the plugin to optimize its report function. (`DM-52791 <https://rubinobs.atlassian.net/browse/DM-52791>`_)
|
|
28
|
-
|
|
29
|
-
Performance Enhancement
|
|
30
|
-
-----------------------
|
|
31
|
-
|
|
32
|
-
- Switched the default ``finalJob`` implementation to the new ``aggregate-graph`` command, which makes use of multiple cores much more effectively than ``transfer-from-graph``. (`DM-52360 <https://rubinobs.atlassian.net/browse/DM-52360>`_)
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
Other Changes and Additions
|
|
36
|
-
---------------------------
|
|
37
|
-
|
|
38
|
-
- Removed exit code 1 from the default for ``finalJob``\ 's ``retryUnlessExit`` as the majority of these are related to system issues which could be transient. (`DM-51313 <https://rubinobs.atlassian.net/browse/DM-51313>`_)
|
|
39
|
-
- Modified the BPS report driver so it compiles exit code summary only when necessary, i.e., when ``--return-exit-codes`` option was used with ``bps report``. (`DM-52898 <https://rubinobs.atlassian.net/browse/DM-52898>`_)
|
|
40
|
-
- Added a custom __new__ method to the GenericWorkflow class so **ctrl_bps** can work when using NetworkX 3.6. (`DM-53492 <https://rubinobs.atlassian.net/browse/DM-53492>`_)
|
|
41
|
-
- Made the BPS reporting mechanism a bit more robust. If the BPS plugin does not explicitly includes jobs labels for which there are no failures in the run's exit code summary, it will try to use the run's job summary to do that. (`DM-51261 <https://rubinobs.atlassian.net/browse/DM-51261>`_)
|
|
42
|
-
- Used the new ``PredictedQuantumGraph`` class internally and default to the new QG file format via the "``.qg``" extension. (`DM-52339 <https://rubinobs.atlassian.net/browse/DM-52339>`_)
|
|
43
|
-
|
|
44
|
-
|
|
45
1
|
lsst-ctrl-bps v29.1.0 (2025-06-13)
|
|
46
2
|
==================================
|
|
47
3
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "lsst-ctrl-bps"
|
|
7
|
-
requires-python = ">=3.
|
|
7
|
+
requires-python = ">=3.11.0"
|
|
8
8
|
description = "Pluggable execution of workflow graphs from Rubin pipelines."
|
|
9
9
|
license = "BSD-3-Clause OR GPL-3.0-or-later"
|
|
10
10
|
license-files = ["COPYRIGHT", "LICENSE", "bsd_license.txt", "gpl-v3.0.txt"]
|
|
@@ -16,6 +16,7 @@ classifiers = [
|
|
|
16
16
|
"Intended Audience :: Science/Research",
|
|
17
17
|
"Operating System :: OS Independent",
|
|
18
18
|
"Programming Language :: Python :: 3",
|
|
19
|
+
"Programming Language :: Python :: 3.11",
|
|
19
20
|
"Programming Language :: Python :: 3.12",
|
|
20
21
|
"Programming Language :: Python :: 3.13",
|
|
21
22
|
"Programming Language :: Python :: 3.14",
|
|
@@ -37,9 +38,8 @@ dynamic = ["version"]
|
|
|
37
38
|
|
|
38
39
|
[project.urls]
|
|
39
40
|
"Homepage" = "https://github.com/lsst/ctrl_bps"
|
|
40
|
-
"Source" = "https://github.com/lsst/ctrl_bps"
|
|
41
|
-
|
|
42
41
|
[project.optional-dependencies]
|
|
42
|
+
|
|
43
43
|
test = [
|
|
44
44
|
"pytest >= 3.2",
|
|
45
45
|
"pytest-openfiles >= 0.5.0"
|
|
@@ -98,6 +98,15 @@ bps = "lsst.ctrl.bps.cli.bps:main"
|
|
|
98
98
|
name = "An API Removal or Deprecation"
|
|
99
99
|
showcontent = true
|
|
100
100
|
|
|
101
|
+
[tool.black]
|
|
102
|
+
line-length = 110
|
|
103
|
+
target-version = ["py311"]
|
|
104
|
+
|
|
105
|
+
[tool.isort]
|
|
106
|
+
profile = "black"
|
|
107
|
+
line_length = 110
|
|
108
|
+
known_first_party = ["lsst"]
|
|
109
|
+
|
|
101
110
|
[tool.lsst_versions]
|
|
102
111
|
write_to = "python/lsst/ctrl/bps/version.py"
|
|
103
112
|
|
|
@@ -125,7 +134,7 @@ exclude_lines = [
|
|
|
125
134
|
|
|
126
135
|
[tool.ruff]
|
|
127
136
|
line-length = 110
|
|
128
|
-
target-version = "
|
|
137
|
+
target-version = "py311"
|
|
129
138
|
exclude = [
|
|
130
139
|
"__init__.py",
|
|
131
140
|
]
|
|
@@ -191,7 +200,6 @@ checks = [
|
|
|
191
200
|
"RT01", # Unfortunately our @property trigger this.
|
|
192
201
|
"RT02", # Does not want named return value. DM style says we do.
|
|
193
202
|
"SS05", # pydocstyle is better at finding infinitive verb.
|
|
194
|
-
"RT03", # Temporarily disable for sphinx empty returns.
|
|
195
203
|
]
|
|
196
204
|
exclude = [
|
|
197
205
|
'^test_.*', # Do not test docstrings in test code.
|
|
@@ -87,7 +87,7 @@ class BpsConfig(Config):
|
|
|
87
87
|
afterwards. WMS settings takes precedence over provided defaults.
|
|
88
88
|
wms_service_class_fqn : `str`, optional
|
|
89
89
|
Fully qualified name of the WMS service class to use to get plugin's
|
|
90
|
-
specific default settings. If
|
|
90
|
+
specific default settings. If ``None`` (default), the WMS service
|
|
91
91
|
class provided by
|
|
92
92
|
|
|
93
93
|
1. ``other`` config,
|
|
@@ -197,7 +197,7 @@ class BpsConfig(Config):
|
|
|
197
197
|
----------
|
|
198
198
|
key : `str`
|
|
199
199
|
Key to look for in config.
|
|
200
|
-
default :
|
|
200
|
+
default : Any, optional
|
|
201
201
|
Default value to return if the key is not in the config.
|
|
202
202
|
|
|
203
203
|
Returns
|
|
@@ -256,7 +256,7 @@ class BpsConfig(Config):
|
|
|
256
256
|
----------
|
|
257
257
|
key : `str`
|
|
258
258
|
Key to look for in config.
|
|
259
|
-
opt : `dict` [`str`,
|
|
259
|
+
opt : `dict` [`str`, `Any`], optional
|
|
260
260
|
Options dictionary to use while searching. All are optional.
|
|
261
261
|
|
|
262
262
|
``"curvals"``
|
|
@@ -264,7 +264,7 @@ class BpsConfig(Config):
|
|
|
264
264
|
(curr_<sectname>) or variable replacements.
|
|
265
265
|
(`dict`, optional)
|
|
266
266
|
``"default"``
|
|
267
|
-
Value to return if not found. (
|
|
267
|
+
Value to return if not found. (`Any`, optional)
|
|
268
268
|
``"replaceEnvVars"``
|
|
269
269
|
If search result is string, whether to replace environment
|
|
270
270
|
variables inside it with special placeholder (<ENV:name>).
|
|
@@ -61,7 +61,7 @@ class QuantaCluster:
|
|
|
61
61
|
be unique within ClusteredQuantumGraph.
|
|
62
62
|
label : `str`
|
|
63
63
|
Value used to group clusters.
|
|
64
|
-
tags : `dict` [`str`,
|
|
64
|
+
tags : `dict` [`str`, `Any`], optional
|
|
65
65
|
Arbitrary key/value pairs for the cluster.
|
|
66
66
|
|
|
67
67
|
Raises
|
|
@@ -248,8 +248,7 @@ class ClusteredQuantumGraph:
|
|
|
248
248
|
|
|
249
249
|
Parameters
|
|
250
250
|
----------
|
|
251
|
-
clusters_for_adding : `QuantaCluster` or
|
|
252
|
-
`~collections.abc.Iterable` [`QuantaCluster`]
|
|
251
|
+
clusters_for_adding : `QuantaCluster` or `Iterable` [`QuantaCluster`]
|
|
253
252
|
The cluster to be added to the ClusteredQuantumGraph.
|
|
254
253
|
"""
|
|
255
254
|
for cluster in ensure_iterable(clusters_for_adding):
|
|
@@ -312,7 +311,7 @@ class ClusteredQuantumGraph:
|
|
|
312
311
|
|
|
313
312
|
Returns
|
|
314
313
|
-------
|
|
315
|
-
names :
|
|
314
|
+
names : `Iterator` [`str`]
|
|
316
315
|
Iterator over names of clusters.
|
|
317
316
|
"""
|
|
318
317
|
return self._cluster_graph.nodes()
|
|
@@ -322,7 +321,7 @@ class ClusteredQuantumGraph:
|
|
|
322
321
|
|
|
323
322
|
Returns
|
|
324
323
|
-------
|
|
325
|
-
clusters :
|
|
324
|
+
clusters : `Iterator` [`lsst.ctrl.bps.QuantaCluster`]
|
|
326
325
|
Iterator over clusters in topological order.
|
|
327
326
|
"""
|
|
328
327
|
return map(self.get_cluster, topological_sort(self._cluster_graph))
|
|
@@ -338,7 +337,7 @@ class ClusteredQuantumGraph:
|
|
|
338
337
|
|
|
339
338
|
Returns
|
|
340
339
|
-------
|
|
341
|
-
clusters :
|
|
340
|
+
clusters : `Iterator` [`lsst.ctrl.bps.QuantaCluster`]
|
|
342
341
|
Iterator over successors of given cluster.
|
|
343
342
|
"""
|
|
344
343
|
return map(self.get_cluster, self._cluster_graph.successors(name))
|
|
@@ -354,7 +353,7 @@ class ClusteredQuantumGraph:
|
|
|
354
353
|
|
|
355
354
|
Returns
|
|
356
355
|
-------
|
|
357
|
-
clusters :
|
|
356
|
+
clusters : `Iterator` [`lsst.ctrl.bps.QuantaCluster`]
|
|
358
357
|
Iterator over predecessors of given cluster.
|
|
359
358
|
"""
|
|
360
359
|
return map(self.get_cluster, self._cluster_graph.predecessors(name))
|
|
@@ -181,8 +181,7 @@ def create_job_files(
|
|
|
181
181
|
The mapping between file keys and file paths.
|
|
182
182
|
prefix : `str` | `pathlib.Path`
|
|
183
183
|
The root directory to which the files will be written.
|
|
184
|
-
path_creator :
|
|
185
|
-
[[`pathlib.Path`, `pathlib.Path`], `pathlib.Path`]
|
|
184
|
+
path_creator : `Callable` [[`Path`, `Path`], `Path`]
|
|
186
185
|
File category that determines actions that need to be taken during
|
|
187
186
|
file creation.
|
|
188
187
|
|
{lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/generic_workflow.py
RENAMED
|
@@ -428,7 +428,7 @@ class GenericWorkflow(DiGraph):
|
|
|
428
428
|
----------
|
|
429
429
|
data : `bool`, optional
|
|
430
430
|
Whether to return the file data as well as the file object name
|
|
431
|
-
(The default is
|
|
431
|
+
(The default is False).
|
|
432
432
|
transfer_only : `bool`, optional
|
|
433
433
|
Whether to only return files for which a workflow management system
|
|
434
434
|
would be responsible for transferring.
|
|
@@ -490,7 +490,7 @@ class GenericWorkflow(DiGraph):
|
|
|
490
490
|
----------
|
|
491
491
|
node_for_adding : `lsst.ctrl.bps.GenericWorkflowJob`
|
|
492
492
|
Job to be added to generic workflow.
|
|
493
|
-
**attr
|
|
493
|
+
**attr
|
|
494
494
|
Needed to match original networkx function, but not used.
|
|
495
495
|
"""
|
|
496
496
|
self.add_job(node_for_adding)
|
|
@@ -524,7 +524,7 @@ class GenericWorkflow(DiGraph):
|
|
|
524
524
|
ebunch_to_add : Iterable [`tuple` [`str`, `str`]]
|
|
525
525
|
Iterable of job name pairs between which a dependency should be
|
|
526
526
|
saved.
|
|
527
|
-
**attr :
|
|
527
|
+
**attr : keyword arguments, optional
|
|
528
528
|
Data can be assigned using keyword arguments (not currently used).
|
|
529
529
|
"""
|
|
530
530
|
for edge_to_add in ebunch_to_add:
|
|
@@ -539,7 +539,7 @@ class GenericWorkflow(DiGraph):
|
|
|
539
539
|
Name of parent job.
|
|
540
540
|
v_of_edge : `str`
|
|
541
541
|
Name of child job.
|
|
542
|
-
**attr
|
|
542
|
+
**attr : keyword arguments, optional
|
|
543
543
|
Attributes to save with edge.
|
|
544
544
|
"""
|
|
545
545
|
if u_of_edge not in self:
|
|
@@ -58,8 +58,7 @@ def init_submission(
|
|
|
58
58
|
----------
|
|
59
59
|
config_file : `str`
|
|
60
60
|
Name of the configuration file.
|
|
61
|
-
validators :
|
|
62
|
-
[`~collections.abc.Callable` [[`BpsConfig`], `None`]], optional
|
|
61
|
+
validators : `Iterable[Callable[[BpsConfig], None]]`, optional
|
|
63
62
|
A list of functions performing checks on the given configuration.
|
|
64
63
|
Each function should take a single argument, a BpsConfig object, and
|
|
65
64
|
raise if the check fails. By default, no checks are performed.
|
|
@@ -789,7 +789,7 @@ def get_cluster_name_from_info(
|
|
|
789
789
|
-------
|
|
790
790
|
cluster_name : `str`
|
|
791
791
|
Name of the cluster in which to add the given node.
|
|
792
|
-
info : dict [`str`,
|
|
792
|
+
info : dict [`str`, `Any`]
|
|
793
793
|
Information needed if creating a new node.
|
|
794
794
|
"""
|
|
795
795
|
# Gather info for cluster name template into a dictionary.
|
|
@@ -210,7 +210,7 @@ def _enhance_command(config, generic_workflow, gwjob, cached_job_values):
|
|
|
210
210
|
gwjob : `lsst.ctrl.bps.GenericWorkflowJob`
|
|
211
211
|
Generic workflow job to which the updated executable, arguments,
|
|
212
212
|
and values should be saved.
|
|
213
|
-
cached_job_values : `dict` [`str`, dict[`str`,
|
|
213
|
+
cached_job_values : `dict` [`str`, dict[`str`, `Any`]]
|
|
214
214
|
Cached values common across jobs with same label. Updated if values
|
|
215
215
|
aren't already saved for given gwjob's label.
|
|
216
216
|
"""
|
|
@@ -286,7 +286,7 @@ def _fill_arguments(use_shared, generic_workflow, arguments, cmdvals):
|
|
|
286
286
|
Generic workflow containing the job.
|
|
287
287
|
arguments : `str`
|
|
288
288
|
String containing placeholders.
|
|
289
|
-
cmdvals : `dict` [`str`,
|
|
289
|
+
cmdvals : `dict` [`str`, `Any`]
|
|
290
290
|
Any command line values that can be used to replace placeholders.
|
|
291
291
|
|
|
292
292
|
Returns
|
|
@@ -365,14 +365,14 @@ def _get_job_values(config, search_opt, cmd_line_key):
|
|
|
365
365
|
----------
|
|
366
366
|
config : `lsst.ctrl.bps.BpsConfig`
|
|
367
367
|
Bps configuration.
|
|
368
|
-
search_opt : `dict` [`str`,
|
|
368
|
+
search_opt : `dict` [`str`, `Any`]
|
|
369
369
|
Search options to be used when searching config.
|
|
370
370
|
cmd_line_key : `str` or None
|
|
371
371
|
Which command line key to search for (e.g., "runQuantumCommand").
|
|
372
372
|
|
|
373
373
|
Returns
|
|
374
374
|
-------
|
|
375
|
-
job_values : `dict` [ `str`,
|
|
375
|
+
job_values : `dict` [ `str`, `Any` ]`
|
|
376
376
|
A mapping between job attributes and their values.
|
|
377
377
|
"""
|
|
378
378
|
_LOG.debug("cmd_line_key=%s, search_opt=%s", cmd_line_key, search_opt)
|
|
@@ -443,7 +443,7 @@ def _handle_job_values(quantum_job_values, gwjob, attributes=_ATTRS_ALL):
|
|
|
443
443
|
Job values for running single Quantum.
|
|
444
444
|
gwjob : `lsst.ctrl.bps.GenericWorkflowJob`
|
|
445
445
|
Generic workflow job in which to store the universal values.
|
|
446
|
-
attributes :
|
|
446
|
+
attributes : `Iterable` [`str`], optional
|
|
447
447
|
Job attributes to be set in the job following different rules.
|
|
448
448
|
The default value is _ATTRS_ALL.
|
|
449
449
|
"""
|
|
@@ -463,7 +463,7 @@ def _handle_job_values_universal(quantum_job_values, gwjob, attributes=_ATTRS_UN
|
|
|
463
463
|
Job values for running single Quantum.
|
|
464
464
|
gwjob : `lsst.ctrl.bps.GenericWorkflowJob`
|
|
465
465
|
Generic workflow job in which to store the universal values.
|
|
466
|
-
attributes :
|
|
466
|
+
attributes : `Iterable` [`str`], optional
|
|
467
467
|
Job attributes to be set in the job following different rules.
|
|
468
468
|
The default value is _ATTRS_UNIVERSAL.
|
|
469
469
|
"""
|
|
@@ -502,11 +502,11 @@ def _handle_job_values_max(quantum_job_values, gwjob, attributes=_ATTRS_MAX):
|
|
|
502
502
|
|
|
503
503
|
Parameters
|
|
504
504
|
----------
|
|
505
|
-
quantum_job_values : `dict` [`str`,
|
|
505
|
+
quantum_job_values : `dict` [`str`, `Any`]
|
|
506
506
|
Job values for running single Quantum.
|
|
507
507
|
gwjob : `lsst.ctrl.bps.GenericWorkflowJob`
|
|
508
508
|
Generic workflow job in which to store the aggregate values.
|
|
509
|
-
attributes :
|
|
509
|
+
attributes : `Iterable` [`str`], optional
|
|
510
510
|
Job attributes to be set in the job following different rules.
|
|
511
511
|
The default value is _ATTR_MAX.
|
|
512
512
|
"""
|
|
@@ -547,11 +547,11 @@ def _handle_job_values_sum(quantum_job_values, gwjob, attributes=_ATTRS_SUM):
|
|
|
547
547
|
|
|
548
548
|
Parameters
|
|
549
549
|
----------
|
|
550
|
-
quantum_job_values : `dict` [`str`,
|
|
550
|
+
quantum_job_values : `dict` [`str`, `Any`]
|
|
551
551
|
Job values for running single Quantum.
|
|
552
552
|
gwjob : `lsst.ctrl.bps.GenericWorkflowJob`
|
|
553
553
|
Generic workflow job in which to store the aggregate values.
|
|
554
|
-
attributes :
|
|
554
|
+
attributes : `Iterable` [`str`], optional
|
|
555
555
|
Job attributes to be set in the job following different rules.
|
|
556
556
|
The default value is _ATTRS_SUM.
|
|
557
557
|
"""
|
|
@@ -121,14 +121,14 @@ class WmsSpecificInfo:
|
|
|
121
121
|
|
|
122
122
|
Returns
|
|
123
123
|
-------
|
|
124
|
-
context : `dict` [`str`,
|
|
124
|
+
context : `dict` [`str`, `Any`]
|
|
125
125
|
A copy of the dictionary representing the mapping between
|
|
126
126
|
*every* template variable and its value.
|
|
127
127
|
|
|
128
128
|
Notes
|
|
129
129
|
-----
|
|
130
130
|
The property returns a *shallow* copy of the dictionary representing
|
|
131
|
-
the context as the intended purpose of the
|
|
131
|
+
the context as the intended purpose of the ``WmsSpecificInfo`` is to
|
|
132
132
|
pass a small number of brief messages from WMS to BPS reporting
|
|
133
133
|
subsystem. Hence, it is assumed that the dictionary will only contain
|
|
134
134
|
immutable objects (e.g. strings, numbers).
|
|
@@ -157,7 +157,7 @@ class WmsSpecificInfo:
|
|
|
157
157
|
----------
|
|
158
158
|
template : `str`
|
|
159
159
|
A message template.
|
|
160
|
-
context : `dict` [`str`,
|
|
160
|
+
context : `dict` [`str`, `Any`], optional
|
|
161
161
|
A mapping between template variables and their values.
|
|
162
162
|
**kwargs
|
|
163
163
|
Additional keyword arguments.
|
|
@@ -296,7 +296,7 @@ class BaseWmsService:
|
|
|
296
296
|
-----
|
|
297
297
|
This property is currently being used in ``BpsConfig.__init__()``.
|
|
298
298
|
As long as that's the case it cannot be changed to return
|
|
299
|
-
a
|
|
299
|
+
a ``BpsConfig`` instance.
|
|
300
300
|
"""
|
|
301
301
|
return None
|
|
302
302
|
|
|
@@ -386,7 +386,7 @@ class BaseWmsService:
|
|
|
386
386
|
|
|
387
387
|
Returns
|
|
388
388
|
-------
|
|
389
|
-
job_ids : `list` [
|
|
389
|
+
job_ids : `list` [`Any`]
|
|
390
390
|
Only job ids to be used by cancel and other functions. Typically
|
|
391
391
|
this means top-level jobs (i.e., not children jobs).
|
|
392
392
|
"""
|
{lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300/python/lsst_ctrl_bps.egg-info}/PKG-INFO
RENAMED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lsst-ctrl-bps
|
|
3
|
-
Version: 30.
|
|
3
|
+
Version: 30.2026.300
|
|
4
4
|
Summary: Pluggable execution of workflow graphs from Rubin pipelines.
|
|
5
5
|
Author-email: Rubin Observatory Data Management <dm-admin@lists.lsst.org>
|
|
6
6
|
License-Expression: BSD-3-Clause OR GPL-3.0-or-later
|
|
7
7
|
Project-URL: Homepage, https://github.com/lsst/ctrl_bps
|
|
8
|
-
Project-URL: Source, https://github.com/lsst/ctrl_bps
|
|
9
8
|
Keywords: lsst
|
|
10
9
|
Classifier: Intended Audience :: Science/Research
|
|
11
10
|
Classifier: Operating System :: OS Independent
|
|
12
11
|
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.12
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.13
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.14
|
|
16
16
|
Classifier: Topic :: Scientific/Engineering :: Astronomy
|
|
17
|
-
Requires-Python: >=3.
|
|
17
|
+
Requires-Python: >=3.11.0
|
|
18
18
|
Description-Content-Type: text/markdown
|
|
19
19
|
License-File: COPYRIGHT
|
|
20
20
|
License-File: LICENSE
|
|
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_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/cli/cmd/__init__.py
RENAMED
|
File without changes
|
{lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/cli/cmd/commands.py
RENAMED
|
File without changes
|
{lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/cli/opt/__init__.py
RENAMED
|
File without changes
|
{lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/cli/opt/arguments.py
RENAMED
|
File without changes
|
{lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/cli/opt/option_groups.py
RENAMED
|
File without changes
|
{lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/cli/opt/options.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/etc/bps_defaults.yaml
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
|
{lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst/ctrl/bps/tests/gw_test_utils.py
RENAMED
|
File without changes
|
{lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst_ctrl_bps.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst_ctrl_bps.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst_ctrl_bps.egg-info/requires.txt
RENAMED
|
File without changes
|
{lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst_ctrl_bps.egg-info/top_level.txt
RENAMED
|
File without changes
|
{lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/python/lsst_ctrl_bps.egg-info/zip-safe
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
|
{lsst_ctrl_bps-30.0.1rc1 → lsst_ctrl_bps-30.2026.300}/tests/test_quantum_clustering_funcs.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|