lsst-ctrl-bps 29.2025.4700__py3-none-any.whl → 30.0.0__py3-none-any.whl
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/drivers.py +28 -14
- lsst/ctrl/bps/generic_workflow.py +12 -0
- lsst/ctrl/bps/report.py +3 -14
- lsst/ctrl/bps/version.py +1 -1
- {lsst_ctrl_bps-29.2025.4700.dist-info → lsst_ctrl_bps-30.0.0.dist-info}/METADATA +1 -1
- {lsst_ctrl_bps-29.2025.4700.dist-info → lsst_ctrl_bps-30.0.0.dist-info}/RECORD +14 -14
- {lsst_ctrl_bps-29.2025.4700.dist-info → lsst_ctrl_bps-30.0.0.dist-info}/WHEEL +1 -1
- {lsst_ctrl_bps-29.2025.4700.dist-info → lsst_ctrl_bps-30.0.0.dist-info}/entry_points.txt +0 -0
- {lsst_ctrl_bps-29.2025.4700.dist-info → lsst_ctrl_bps-30.0.0.dist-info}/licenses/COPYRIGHT +0 -0
- {lsst_ctrl_bps-29.2025.4700.dist-info → lsst_ctrl_bps-30.0.0.dist-info}/licenses/LICENSE +0 -0
- {lsst_ctrl_bps-29.2025.4700.dist-info → lsst_ctrl_bps-30.0.0.dist-info}/licenses/bsd_license.txt +0 -0
- {lsst_ctrl_bps-29.2025.4700.dist-info → lsst_ctrl_bps-30.0.0.dist-info}/licenses/gpl-v3.0.txt +0 -0
- {lsst_ctrl_bps-29.2025.4700.dist-info → lsst_ctrl_bps-30.0.0.dist-info}/top_level.txt +0 -0
- {lsst_ctrl_bps-29.2025.4700.dist-info → lsst_ctrl_bps-30.0.0.dist-info}/zip-safe +0 -0
lsst/ctrl/bps/drivers.py
CHANGED
|
@@ -55,6 +55,7 @@ from lsst.utils.timer import time_this
|
|
|
55
55
|
from lsst.utils.usage import get_peak_mem_usage
|
|
56
56
|
|
|
57
57
|
from . import BPS_DEFAULTS, BPS_SEARCH_ORDER, DEFAULT_MEM_FMT, DEFAULT_MEM_UNIT, BpsConfig
|
|
58
|
+
from .bps_reports import compile_code_summary, compile_job_summary
|
|
58
59
|
from .bps_utils import _dump_env_info, _dump_pkg_info, _make_id_link
|
|
59
60
|
from .cancel import cancel
|
|
60
61
|
from .construct import construct
|
|
@@ -68,7 +69,7 @@ from .initialize import (
|
|
|
68
69
|
from .ping import ping
|
|
69
70
|
from .pre_transform import acquire_quantum_graph, cluster_quanta
|
|
70
71
|
from .prepare import prepare
|
|
71
|
-
from .report import
|
|
72
|
+
from .report import display_report, retrieve_report
|
|
72
73
|
from .restart import restart
|
|
73
74
|
from .status import status
|
|
74
75
|
from .submit import submit
|
|
@@ -400,20 +401,31 @@ def restart_driver(wms_service, run_id):
|
|
|
400
401
|
print("Restart failed: Unknown error")
|
|
401
402
|
|
|
402
403
|
|
|
403
|
-
def report_driver(
|
|
404
|
-
|
|
404
|
+
def report_driver(
|
|
405
|
+
wms_service: str | None = None,
|
|
406
|
+
run_id: str | None = None,
|
|
407
|
+
user: str | None = None,
|
|
408
|
+
hist_days: float = 0.0,
|
|
409
|
+
pass_thru: str | None = None,
|
|
410
|
+
is_global: bool = False,
|
|
411
|
+
return_exit_codes: bool = False,
|
|
412
|
+
):
|
|
413
|
+
"""Print out the summary of jobs submitted for execution.
|
|
405
414
|
|
|
406
415
|
Parameters
|
|
407
416
|
----------
|
|
408
|
-
wms_service : `str
|
|
417
|
+
wms_service : `str`, optional
|
|
409
418
|
Name of the class.
|
|
410
|
-
run_id : `str
|
|
419
|
+
run_id : `str`, optional
|
|
411
420
|
A run id the report will be restricted to.
|
|
412
|
-
user : `str
|
|
421
|
+
user : `str`, optional
|
|
413
422
|
A user the report will be restricted to.
|
|
414
|
-
hist_days : `float
|
|
415
|
-
Number of days.
|
|
416
|
-
|
|
423
|
+
hist_days : `float`, optional
|
|
424
|
+
Number of past days to consider while preparing the report. By default,
|
|
425
|
+
only the currently running workflows are included in the report.
|
|
426
|
+
If the report is restricted to a single run (i.e., ``run_id`` is set),
|
|
427
|
+
the history search will be limited by default to two past days.
|
|
428
|
+
pass_thru : `str`, optional
|
|
417
429
|
A string to pass directly to the WMS service class.
|
|
418
430
|
is_global : `bool`, optional
|
|
419
431
|
If set, all available job queues will be queried for job information.
|
|
@@ -430,17 +442,19 @@ def report_driver(wms_service, run_id, user, hist_days, pass_thru, is_global=Fal
|
|
|
430
442
|
Only applicable in the context of a WMS with associated
|
|
431
443
|
handlers to return exit codes from jobs.
|
|
432
444
|
"""
|
|
433
|
-
if wms_service
|
|
445
|
+
if not wms_service:
|
|
434
446
|
default_config = BpsConfig(BPS_DEFAULTS)
|
|
435
447
|
wms_service = os.environ.get("BPS_WMS_SERVICE_CLASS", default_config["wmsServiceClass"])
|
|
436
448
|
|
|
437
|
-
# When reporting on single run:
|
|
438
|
-
# * increase history until better mechanism for handling completed jobs
|
|
439
|
-
# available.
|
|
449
|
+
# When reporting on a single run:
|
|
450
|
+
# * increase history until a better mechanism for handling completed jobs
|
|
451
|
+
# is available.
|
|
440
452
|
# * massage the retrieved reports using BPS report postprocessors.
|
|
441
453
|
if run_id:
|
|
442
454
|
hist_days = max(hist_days, 2)
|
|
443
|
-
postprocessors =
|
|
455
|
+
postprocessors = [compile_job_summary]
|
|
456
|
+
if return_exit_codes:
|
|
457
|
+
postprocessors.append(compile_code_summary)
|
|
444
458
|
else:
|
|
445
459
|
postprocessors = None
|
|
446
460
|
|
|
@@ -332,6 +332,18 @@ class GenericWorkflow(DiGraph):
|
|
|
332
332
|
self.run_id = None
|
|
333
333
|
self._final: GenericWorkflowJob | GenericWorkflow | None = None
|
|
334
334
|
|
|
335
|
+
# Starting from ver. 3.6 of NetworkX, the DiGraph class defines its custom
|
|
336
|
+
# __new__ method that explicitly defines arguments it accepts. As a result,
|
|
337
|
+
# we need to override it to let our subclass use different ones.
|
|
338
|
+
#
|
|
339
|
+
# Notes
|
|
340
|
+
# -----
|
|
341
|
+
# Most likely overriding __new__ in this manner will prevent us from using
|
|
342
|
+
# different graph backends with our subclass. However, since we are not
|
|
343
|
+
# using any backends, this should not be a problem at the moment.
|
|
344
|
+
def __new__(cls, *args, **kwargs) -> "GenericWorkflow":
|
|
345
|
+
return object.__new__(cls)
|
|
346
|
+
|
|
335
347
|
@property
|
|
336
348
|
def name(self) -> str:
|
|
337
349
|
"""Retrieve name of generic workflow.
|
lsst/ctrl/bps/report.py
CHANGED
|
@@ -31,7 +31,7 @@ Note: Expectations are that future reporting effort will revolve around LSST
|
|
|
31
31
|
oriented database tables.
|
|
32
32
|
"""
|
|
33
33
|
|
|
34
|
-
__all__ = ["
|
|
34
|
+
__all__ = ["display_report", "retrieve_report"]
|
|
35
35
|
|
|
36
36
|
import logging
|
|
37
37
|
import sys
|
|
@@ -40,20 +40,9 @@ from typing import TextIO
|
|
|
40
40
|
|
|
41
41
|
from lsst.utils import doImportType
|
|
42
42
|
|
|
43
|
-
from .bps_reports import
|
|
44
|
-
DetailedRunReport,
|
|
45
|
-
ExitCodesReport,
|
|
46
|
-
SummaryRunReport,
|
|
47
|
-
compile_code_summary,
|
|
48
|
-
compile_job_summary,
|
|
49
|
-
)
|
|
43
|
+
from .bps_reports import DetailedRunReport, ExitCodesReport, SummaryRunReport
|
|
50
44
|
from .wms_service import BaseWmsService, WmsRunReport, WmsStates
|
|
51
45
|
|
|
52
|
-
BPS_POSTPROCESSORS = (compile_job_summary, compile_code_summary)
|
|
53
|
-
"""Postprocessors for massaging run reports
|
|
54
|
-
(`tuple` [`Callable` [[`WmsRunReport`], None]).
|
|
55
|
-
"""
|
|
56
|
-
|
|
57
46
|
_LOG = logging.getLogger(__name__)
|
|
58
47
|
|
|
59
48
|
|
|
@@ -167,7 +156,7 @@ def retrieve_report(
|
|
|
167
156
|
pass_thru: str | None = None,
|
|
168
157
|
is_global: bool = False,
|
|
169
158
|
return_exit_codes: bool = False,
|
|
170
|
-
postprocessors: Sequence[Callable[[WmsRunReport],
|
|
159
|
+
postprocessors: Sequence[Callable[[WmsRunReport], list[str]]] | None = None,
|
|
171
160
|
) -> tuple[list[WmsRunReport], list[str]]:
|
|
172
161
|
"""Retrieve summary of jobs submitted for execution.
|
|
173
162
|
|
lsst/ctrl/bps/version.py
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
__all__ = ["__version__"]
|
|
2
|
-
__version__ = "
|
|
2
|
+
__version__ = "30.0.0"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lsst-ctrl-bps
|
|
3
|
-
Version:
|
|
3
|
+
Version: 30.0.0
|
|
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
|
|
@@ -10,19 +10,19 @@ lsst/ctrl/bps/cancel.py,sha256=mAdBi-oUpepyo-1MCqx_I34dbm6cqT0VJu3d2-y9T2Y,3317
|
|
|
10
10
|
lsst/ctrl/bps/clustered_quantum_graph.py,sha256=vpsjyzIr6e5as6rkRphrleY8q2I_8xXE3BawLGCtTlo,18167
|
|
11
11
|
lsst/ctrl/bps/constants.py,sha256=dsnsNMqwU6Xl_ln6nQ0PmxsghlbBY9mLJWf2rlzYayQ,1733
|
|
12
12
|
lsst/ctrl/bps/construct.py,sha256=o-JhTF_eehRiIxy3xe2UgBISyKNBg-kduthGiqfa50g,8100
|
|
13
|
-
lsst/ctrl/bps/drivers.py,sha256=
|
|
14
|
-
lsst/ctrl/bps/generic_workflow.py,sha256=
|
|
13
|
+
lsst/ctrl/bps/drivers.py,sha256=TKFEzg00ju7E_XeaXKtQWLVyZWzfwr-g5qu5twix5fI,23212
|
|
14
|
+
lsst/ctrl/bps/generic_workflow.py,sha256=wqLzvFlYccXMb7HQ12dryCKCnPaswwmBmFEh6T0alzk,54299
|
|
15
15
|
lsst/ctrl/bps/initialize.py,sha256=DCQwB9ZSo_36Ncs8jMJwxKZcYCu46jjww6rzyiuMFKY,7554
|
|
16
16
|
lsst/ctrl/bps/ping.py,sha256=orwTZUNFtlexMYFcNWW_48jaa7Jo1oK4_eb_HuC-p5E,2235
|
|
17
17
|
lsst/ctrl/bps/pre_transform.py,sha256=uxhSiG-_NyX175nL7d1dvOmLprdbN_gxaWr7X7nzhXE,10931
|
|
18
18
|
lsst/ctrl/bps/prepare.py,sha256=Fa2OEQIo4Pa8R5WmRo0PvJgXWNjynRijATvu1x80qlw,3129
|
|
19
19
|
lsst/ctrl/bps/quantum_clustering_funcs.py,sha256=UuVHtwsoSIUJnAPyoIGX46TzoZRD6gIzgNrPFPaq3G8,32143
|
|
20
|
-
lsst/ctrl/bps/report.py,sha256=
|
|
20
|
+
lsst/ctrl/bps/report.py,sha256=h6LuOUdsqGiKRzge-oPX3RUD32Pen2IpmQRU9EsXuYY,8763
|
|
21
21
|
lsst/ctrl/bps/restart.py,sha256=yVwxeviLiehyIfPmwU-H3tJ9ou7OWZZcrNf8PMxjr8o,2298
|
|
22
22
|
lsst/ctrl/bps/status.py,sha256=Lrt0cAqROv77B8UvYXGimCa4cDHBD1N0K2Xx7oS6fXk,3362
|
|
23
23
|
lsst/ctrl/bps/submit.py,sha256=Ev-yhcoZwtBPIo5bRt_4XFJRtgQBd8JHUurEfn01HpU,2880
|
|
24
24
|
lsst/ctrl/bps/transform.py,sha256=y_78yBO17T4oBJ-3tCKtMwcgaT45XrLxwtEEr1vUIMQ,34687
|
|
25
|
-
lsst/ctrl/bps/version.py,sha256
|
|
25
|
+
lsst/ctrl/bps/version.py,sha256=--s7nTlXrHcUGZfOJGTF8_DCdIUv7QPWWD7as9kq0iY,49
|
|
26
26
|
lsst/ctrl/bps/wms_service.py,sha256=l3T6i1MG72dhHY0KXMUlBjWUpCLOfaySs7o2W8oCwhs,18891
|
|
27
27
|
lsst/ctrl/bps/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
28
28
|
lsst/ctrl/bps/cli/bps.py,sha256=CHfAL-U4mSi-FqeGKtmkX5nI5H9gkRre4XEWNVdeMRk,2559
|
|
@@ -35,13 +35,13 @@ lsst/ctrl/bps/cli/opt/options.py,sha256=pZQpjJ2Vrx6kYJGs5vVERBMFstPocwBXHffxkWkm
|
|
|
35
35
|
lsst/ctrl/bps/etc/bps_defaults.yaml,sha256=6NNym1z1lF3FhVE2y6e0bixHPA6OISuPpaBVd83Va1A,4932
|
|
36
36
|
lsst/ctrl/bps/tests/config_test_utils.py,sha256=WM8Vrigk4OO0TBoL1A73a6hLhf2a6-ACD20fROJ0U7A,3537
|
|
37
37
|
lsst/ctrl/bps/tests/gw_test_utils.py,sha256=zVVQqzwSiQgPgk9TnqDzgR7uDnaTMeuBLYKA8vOp5RI,22452
|
|
38
|
-
lsst_ctrl_bps-
|
|
39
|
-
lsst_ctrl_bps-
|
|
40
|
-
lsst_ctrl_bps-
|
|
41
|
-
lsst_ctrl_bps-
|
|
42
|
-
lsst_ctrl_bps-
|
|
43
|
-
lsst_ctrl_bps-
|
|
44
|
-
lsst_ctrl_bps-
|
|
45
|
-
lsst_ctrl_bps-
|
|
46
|
-
lsst_ctrl_bps-
|
|
47
|
-
lsst_ctrl_bps-
|
|
38
|
+
lsst_ctrl_bps-30.0.0.dist-info/licenses/COPYRIGHT,sha256=Lc6NoAEFQ65v_SmtS9NwfHTOuSUtC2Umbjv5zyowiQM,61
|
|
39
|
+
lsst_ctrl_bps-30.0.0.dist-info/licenses/LICENSE,sha256=pRExkS03v0MQW-neNfIcaSL6aiAnoLxYgtZoFzQ6zkM,232
|
|
40
|
+
lsst_ctrl_bps-30.0.0.dist-info/licenses/bsd_license.txt,sha256=7MIcv8QRX9guUtqPSBDMPz2SnZ5swI-xZMqm_VDSfxY,1606
|
|
41
|
+
lsst_ctrl_bps-30.0.0.dist-info/licenses/gpl-v3.0.txt,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
42
|
+
lsst_ctrl_bps-30.0.0.dist-info/METADATA,sha256=CCUdXWdBFqij8nrtHRt4e04DTjUvxtmLXWDTqB_c5go,2207
|
|
43
|
+
lsst_ctrl_bps-30.0.0.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
|
|
44
|
+
lsst_ctrl_bps-30.0.0.dist-info/entry_points.txt,sha256=d6FhN79h7s9frdBI7YkScsGEInwpGGub49pAjXWbIbI,51
|
|
45
|
+
lsst_ctrl_bps-30.0.0.dist-info/top_level.txt,sha256=eUWiOuVVm9wwTrnAgiJT6tp6HQHXxIhj2QSZ7NYZH80,5
|
|
46
|
+
lsst_ctrl_bps-30.0.0.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
47
|
+
lsst_ctrl_bps-30.0.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lsst_ctrl_bps-29.2025.4700.dist-info → lsst_ctrl_bps-30.0.0.dist-info}/licenses/bsd_license.txt
RENAMED
|
File without changes
|
{lsst_ctrl_bps-29.2025.4700.dist-info → lsst_ctrl_bps-30.0.0.dist-info}/licenses/gpl-v3.0.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|