lsst-ctrl-bps-htcondor 30.0.0rc2__tar.gz → 30.0.1__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_htcondor-30.0.0rc2/python/lsst_ctrl_bps_htcondor.egg-info → lsst_ctrl_bps_htcondor-30.0.1}/PKG-INFO +3 -3
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/doc/lsst.ctrl.bps.htcondor/CHANGES.rst +44 -2
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/doc/lsst.ctrl.bps.htcondor/userguide.rst +10 -7
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/pyproject.toml +4 -12
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/python/lsst/ctrl/bps/htcondor/dagman_configurator.py +1 -1
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/python/lsst/ctrl/bps/htcondor/htcondor_service.py +2 -2
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/python/lsst/ctrl/bps/htcondor/lssthtc.py +19 -11
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/python/lsst/ctrl/bps/htcondor/prepare_utils.py +5 -1
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/python/lsst/ctrl/bps/htcondor/version.py +1 -1
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1/python/lsst_ctrl_bps_htcondor.egg-info}/PKG-INFO +3 -3
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/tests/test_lssthtc.py +2 -0
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/tests/test_prepare_utils.py +13 -0
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/COPYRIGHT +0 -0
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/LICENSE +0 -0
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/MANIFEST.in +0 -0
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/README.rst +0 -0
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/bsd_license.txt +0 -0
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/doc/lsst.ctrl.bps.htcondor/index.rst +0 -0
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/gpl-v3.0.txt +0 -0
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/python/lsst/ctrl/bps/htcondor/__init__.py +0 -0
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/python/lsst/ctrl/bps/htcondor/common_utils.py +0 -0
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/python/lsst/ctrl/bps/htcondor/etc/__init__.py +0 -0
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/python/lsst/ctrl/bps/htcondor/etc/htcondor_defaults.yaml +0 -0
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/python/lsst/ctrl/bps/htcondor/final_post.sh +0 -0
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/python/lsst/ctrl/bps/htcondor/handlers.py +0 -0
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/python/lsst/ctrl/bps/htcondor/htcondor_config.py +0 -0
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/python/lsst/ctrl/bps/htcondor/htcondor_workflow.py +0 -0
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/python/lsst/ctrl/bps/htcondor/provisioner.py +0 -0
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/python/lsst/ctrl/bps/htcondor/report_utils.py +0 -0
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/python/lsst_ctrl_bps_htcondor.egg-info/SOURCES.txt +0 -0
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/python/lsst_ctrl_bps_htcondor.egg-info/dependency_links.txt +0 -0
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/python/lsst_ctrl_bps_htcondor.egg-info/requires.txt +0 -0
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/python/lsst_ctrl_bps_htcondor.egg-info/top_level.txt +0 -0
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/python/lsst_ctrl_bps_htcondor.egg-info/zip-safe +0 -0
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/setup.cfg +0 -0
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/tests/test_common_utils.py +0 -0
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/tests/test_dagman_configurator.py +0 -0
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/tests/test_handlers.py +0 -0
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/tests/test_htcondor_service.py +0 -0
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/tests/test_provisioner.py +0 -0
- {lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/tests/test_report_utils.py +0 -0
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lsst-ctrl-bps-htcondor
|
|
3
|
-
Version: 30.0.
|
|
3
|
+
Version: 30.0.1
|
|
4
4
|
Summary: HTCondor plugin for lsst-ctrl-bps.
|
|
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_htcondor
|
|
8
|
+
Project-URL: Source, https://github.com/lsst/ctrl_bps_htcondor
|
|
8
9
|
Keywords: lsst
|
|
9
10
|
Classifier: Intended Audience :: Science/Research
|
|
10
11
|
Classifier: Operating System :: OS Independent
|
|
11
12
|
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.12.0
|
|
18
18
|
Description-Content-Type: text/x-rst
|
|
19
19
|
License-File: COPYRIGHT
|
|
20
20
|
License-File: LICENSE
|
|
@@ -1,3 +1,45 @@
|
|
|
1
|
+
lsst-ctrl-bps-htcondor v30.0.1 (2026-02-03)
|
|
2
|
+
===========================================
|
|
3
|
+
|
|
4
|
+
Dropped support for Python 3.11.
|
|
5
|
+
Tested with Python 3.14.
|
|
6
|
+
|
|
7
|
+
Other Changes and Additions
|
|
8
|
+
---------------------------
|
|
9
|
+
|
|
10
|
+
- - Switched docs action to use ``sphinxutils``.
|
|
11
|
+
- Bumped minimum Python version to 3.12.
|
|
12
|
+
- Dropped ``black`` and ``isort`` sections from ``pyproject.toml``. (`DM-54005 <https://rubinobs.atlassian.net/browse/DM-54005>`_)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
lsst-ctrl-bps-htcondor v30.0.0 (2026-01-16)
|
|
16
|
+
===========================================
|
|
17
|
+
|
|
18
|
+
New Features
|
|
19
|
+
------------
|
|
20
|
+
|
|
21
|
+
- Added ability to bring the output files produced during job's execution back to the submit site. (`DM-48479 <https://rubinobs.atlassian.net/browse/DM-48479>`_)
|
|
22
|
+
- Added ability to save job stdout/stderr across job retries by setting ``overwriteJobFiles`` to ``false`` in the submit yaml. (`DM-51905 <https://rubinobs.atlassian.net/browse/DM-51905>`_)
|
|
23
|
+
- Added a mechanism that lets the user configure DAGMan via submit YAML. (`DM-52778 <https://rubinobs.atlassian.net/browse/DM-52778>`_)
|
|
24
|
+
- Added using the given priority as the DAG node priority in addition to the HTCondor job priority. (`DM-53753 <https://rubinobs.atlassian.net/browse/DM-53753>`_)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
Bug Fixes
|
|
28
|
+
---------
|
|
29
|
+
|
|
30
|
+
- Fixed bug causing ``bps status --id`` to always report ``MISFIT`` status. Bug was introduced in DM-51868. (`DM-53014 <https://rubinobs.atlassian.net/browse/DM-53014>`_)
|
|
31
|
+
- Fixed bug causing finalJob's memory to not be increased on retries like on regular payload jobs. (`DM-53053 <https://rubinobs.atlassian.net/browse/DM-53053>`_)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
Other Changes and Additions
|
|
35
|
+
---------------------------
|
|
36
|
+
|
|
37
|
+
- Redirected payload's ``stderr`` and ``stdout`` to the same file (``*.out``) to reduce number of files the plugin creates during submission. (`DM-31879 <https://rubinobs.atlassian.net/browse/DM-31879>`_)
|
|
38
|
+
- Added documentation on ``condor_tail`` and ``condor_ssh_to_job``. (`DM-50900 <https://rubinobs.atlassian.net/browse/DM-50900>`_)
|
|
39
|
+
- Fixed issue with some failed jobs being reported as deleted when using ``bps report`` with HTCondor plugin. (`DM-51868 <https://rubinobs.atlassian.net/browse/DM-51868>`_)
|
|
40
|
+
- Divided ``htcondor_service.py`` and ``test_htcondor_service.py`` into smaller files. (`DM-52552 <https://rubinobs.atlassian.net/browse/DM-52552>`_)
|
|
41
|
+
|
|
42
|
+
|
|
1
43
|
lsst-ctrl-bps-htcondor v29.1.0 (2025-06-13)
|
|
2
44
|
===========================================
|
|
3
45
|
|
|
@@ -136,8 +178,8 @@ Other Changes and Additions
|
|
|
136
178
|
- Make HTCondor treat all jobs exiting with a signal as if they ran out of memory. (`DM-32968 <https://rubinobs.atlassian.net/browse/DM-32968>`_)
|
|
137
179
|
- Make HTCondor plugin pass a group and user attribute to any batch systems that require such attributes for accounting purposes. (`DM-33887 <https://rubinobs.atlassian.net/browse/DM-33887>`_)
|
|
138
180
|
|
|
139
|
-
|
|
140
|
-
|
|
181
|
+
lsst-ctrl-bps-htcondor v23.0.0 (2021-12-10)
|
|
182
|
+
===========================================
|
|
141
183
|
|
|
142
184
|
New Features
|
|
143
185
|
------------
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
User Guide
|
|
2
|
+
==========
|
|
3
|
+
|
|
1
4
|
.. _htc-plugin-overview:
|
|
2
5
|
|
|
3
6
|
Overview
|
|
@@ -6,7 +9,7 @@ Overview
|
|
|
6
9
|
LSST Batch Processing Service (BPS) allows large-scale workflows to execute in
|
|
7
10
|
well-managed fashion, potentially in multiple environments. The service is
|
|
8
11
|
provided by the `ctrl_bps`_ package. ``ctrl_bps_htcondor`` is a plugin
|
|
9
|
-
allowing
|
|
12
|
+
allowing ``ctrl_bps`` to execute workflows on computational resources managed by
|
|
10
13
|
`HTCondor`_.
|
|
11
14
|
|
|
12
15
|
.. _htc-plugin-preqs:
|
|
@@ -89,8 +92,8 @@ Job Environment
|
|
|
89
92
|
^^^^^^^^^^^^^^^
|
|
90
93
|
|
|
91
94
|
By default, the htcondor jobs copy the environment from the shell in which
|
|
92
|
-
|
|
93
|
-
submission yaml, use an
|
|
95
|
+
``bps submit`` was executed. To set or override an environment variable via
|
|
96
|
+
submission yaml, use an ``environment`` section. Other yaml values and pre-existing
|
|
94
97
|
environment variables can be used. Some examples:
|
|
95
98
|
|
|
96
99
|
.. code-block:: YAML
|
|
@@ -104,7 +107,7 @@ environment variables can be used. Some examples:
|
|
|
104
107
|
|
|
105
108
|
.. note::
|
|
106
109
|
|
|
107
|
-
The
|
|
110
|
+
The ``environment`` section has to be at the root level. There is no
|
|
108
111
|
way to change the environment inside another level (e.g., per site,
|
|
109
112
|
per cluster, per pipeline task)
|
|
110
113
|
|
|
@@ -397,11 +400,11 @@ by ``provisioningMaxIdleTime`` (default value: 15 min., see below) or maximum
|
|
|
397
400
|
wall time is reached.
|
|
398
401
|
|
|
399
402
|
The provisioning job is expected to run as long as the workflow. If the job
|
|
400
|
-
dies, the job status will be
|
|
401
|
-
the job status will be
|
|
403
|
+
dies, the job status will be ``FAILED``. If the job just completed successfully,
|
|
404
|
+
the job status will be ``SUCCEEDED`` with a message saying it ended early (which
|
|
402
405
|
may or may not cause a problem since existing glideins could remain running).
|
|
403
406
|
To get more information about either of these cases, check the job output
|
|
404
|
-
and error files in the
|
|
407
|
+
and error files in the ``jobs/provisioningJob`` subdirectory.
|
|
405
408
|
|
|
406
409
|
|
|
407
410
|
If the automatic provisioning of the resources is enabled, the script that the
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "lsst-ctrl-bps-htcondor"
|
|
7
|
-
requires-python = ">=3.
|
|
7
|
+
requires-python = ">=3.12.0"
|
|
8
8
|
description = "HTCondor plugin for lsst-ctrl-bps."
|
|
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,7 +16,6 @@ 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",
|
|
20
19
|
"Programming Language :: Python :: 3.12",
|
|
21
20
|
"Programming Language :: Python :: 3.13",
|
|
22
21
|
"Programming Language :: Python :: 3.14",
|
|
@@ -36,6 +35,7 @@ dynamic = ["version"]
|
|
|
36
35
|
|
|
37
36
|
[project.urls]
|
|
38
37
|
"Homepage" = "https://github.com/lsst/ctrl_bps_htcondor"
|
|
38
|
+
"Source" = "https://github.com/lsst/ctrl_bps_htcondor"
|
|
39
39
|
|
|
40
40
|
[project.optional-dependencies]
|
|
41
41
|
test = [
|
|
@@ -93,15 +93,6 @@ version = { attr = "lsst_versions.get_lsst_version" }
|
|
|
93
93
|
name = "An API Removal or Deprecation"
|
|
94
94
|
showcontent = true
|
|
95
95
|
|
|
96
|
-
[tool.black]
|
|
97
|
-
line-length = 110
|
|
98
|
-
target-version = ["py311"]
|
|
99
|
-
|
|
100
|
-
[tool.isort]
|
|
101
|
-
profile = "black"
|
|
102
|
-
line_length = 110
|
|
103
|
-
known_first_party = ["lsst"]
|
|
104
|
-
|
|
105
96
|
[tool.lsst_versions]
|
|
106
97
|
write_to = "python/lsst/ctrl/bps/htcondor/version.py"
|
|
107
98
|
|
|
@@ -127,7 +118,7 @@ exclude_lines = [
|
|
|
127
118
|
]
|
|
128
119
|
|
|
129
120
|
[tool.ruff]
|
|
130
|
-
target-version = "
|
|
121
|
+
target-version = "py312"
|
|
131
122
|
line-length = 110
|
|
132
123
|
exclude = [
|
|
133
124
|
"__init__.py",
|
|
@@ -194,6 +185,7 @@ checks = [
|
|
|
194
185
|
"RT01", # Unfortunately our @property trigger this.
|
|
195
186
|
"RT02", # Does not want named return value. DM style says we do.
|
|
196
187
|
"SS05", # pydocstyle is better at finding infinitive verb.
|
|
188
|
+
"RT03", # Temporarily disable for sphinx empty returns.
|
|
197
189
|
]
|
|
198
190
|
exclude = [
|
|
199
191
|
'^__init__$',
|
|
@@ -91,7 +91,7 @@ class DagmanConfigurator:
|
|
|
91
91
|
----------
|
|
92
92
|
config : `lsst.ctrl.bps.BpsConfig`
|
|
93
93
|
BPS configuration.
|
|
94
|
-
search_opts : `dict` [`str`,
|
|
94
|
+
search_opts : `dict` [`str`, `~typing.Any`], optional
|
|
95
95
|
Options to use while searching the BPS configuration for values.
|
|
96
96
|
|
|
97
97
|
Raises
|
|
@@ -100,7 +100,7 @@ class HTCondorService(BaseWmsService):
|
|
|
100
100
|
|
|
101
101
|
Returns
|
|
102
102
|
-------
|
|
103
|
-
workflow : `lsst.ctrl.bps.
|
|
103
|
+
workflow : `lsst.ctrl.bps.htcondor.HTCondorWorkflow`
|
|
104
104
|
HTCondor workflow ready to be run.
|
|
105
105
|
"""
|
|
106
106
|
_LOG.debug("out_prefix = '%s'", out_prefix)
|
|
@@ -141,7 +141,7 @@ class HTCondorService(BaseWmsService):
|
|
|
141
141
|
|
|
142
142
|
Parameters
|
|
143
143
|
----------
|
|
144
|
-
workflow : `lsst.ctrl.bps.
|
|
144
|
+
workflow : `lsst.ctrl.bps.htcondor.HTCondorWorkflow`
|
|
145
145
|
A single HTCondor workflow to submit. run_id is updated after
|
|
146
146
|
successful submission to WMS.
|
|
147
147
|
**kwargs : `~typing.Any`
|
|
@@ -234,6 +234,7 @@ HTC_VALID_JOB_DAG_KEYS = {
|
|
|
234
234
|
"retry_unless_exit",
|
|
235
235
|
"abort_dag_on",
|
|
236
236
|
"abort_exit",
|
|
237
|
+
"priority",
|
|
237
238
|
}
|
|
238
239
|
HTC_VERSION = version.parse(htcondor.__version__)
|
|
239
240
|
|
|
@@ -243,7 +244,7 @@ class RestrictedDict(MutableMapping):
|
|
|
243
244
|
|
|
244
245
|
Parameters
|
|
245
246
|
----------
|
|
246
|
-
valid_keys :
|
|
247
|
+
valid_keys : `~collections.abc.Container`
|
|
247
248
|
Strings that are valid keys.
|
|
248
249
|
init_data : `dict` or `RestrictedDict`, optional
|
|
249
250
|
Initial data.
|
|
@@ -490,7 +491,7 @@ def htc_write_attribs(stream, attrs):
|
|
|
490
491
|
|
|
491
492
|
Parameters
|
|
492
493
|
----------
|
|
493
|
-
stream : `~
|
|
494
|
+
stream : `~typing.TextIO`
|
|
494
495
|
Output text stream (typically an open file).
|
|
495
496
|
attrs : `dict`
|
|
496
497
|
HTCondor job attributes (dictionary of attribute key, value).
|
|
@@ -512,7 +513,7 @@ def htc_write_condor_file(
|
|
|
512
513
|
|
|
513
514
|
Parameters
|
|
514
515
|
----------
|
|
515
|
-
filename : `str` or os.PathLike
|
|
516
|
+
filename : `str` or `os.PathLike`
|
|
516
517
|
Filename for the HTCondor submit file.
|
|
517
518
|
job_name : `str`
|
|
518
519
|
Job name to use in submit file.
|
|
@@ -823,7 +824,7 @@ def _htc_write_job_commands(stream, name, commands):
|
|
|
823
824
|
|
|
824
825
|
Parameters
|
|
825
826
|
----------
|
|
826
|
-
stream : `~
|
|
827
|
+
stream : `~typing.TextIO`
|
|
827
828
|
Writeable text stream (typically an opened file).
|
|
828
829
|
name : `str`
|
|
829
830
|
Job name.
|
|
@@ -884,6 +885,12 @@ def _htc_write_job_commands(stream, name, commands):
|
|
|
884
885
|
file=stream,
|
|
885
886
|
)
|
|
886
887
|
|
|
888
|
+
if "priority" in commands and commands["priority"]:
|
|
889
|
+
print(
|
|
890
|
+
f"PRIORITY {name} {commands['priority']}",
|
|
891
|
+
file=stream,
|
|
892
|
+
)
|
|
893
|
+
|
|
887
894
|
|
|
888
895
|
class HTCJob:
|
|
889
896
|
"""HTCondor job for use in building DAG.
|
|
@@ -974,7 +981,7 @@ class HTCJob:
|
|
|
974
981
|
|
|
975
982
|
Parameters
|
|
976
983
|
----------
|
|
977
|
-
stream : `
|
|
984
|
+
stream : `~typing.TextIO`
|
|
978
985
|
Output Stream.
|
|
979
986
|
dag_rel_path : `str`
|
|
980
987
|
Relative path of dag to submit directory.
|
|
@@ -1002,7 +1009,7 @@ class HTCJob:
|
|
|
1002
1009
|
|
|
1003
1010
|
Parameters
|
|
1004
1011
|
----------
|
|
1005
|
-
fh : `~
|
|
1012
|
+
fh : `~typing.TextIO`
|
|
1006
1013
|
Output stream.
|
|
1007
1014
|
"""
|
|
1008
1015
|
printer = pprint.PrettyPrinter(indent=4, stream=fh)
|
|
@@ -1016,8 +1023,9 @@ class HTCDag(networkx.DiGraph):
|
|
|
1016
1023
|
|
|
1017
1024
|
Parameters
|
|
1018
1025
|
----------
|
|
1019
|
-
data :
|
|
1020
|
-
Initial graph
|
|
1026
|
+
data : `~typing.Any`
|
|
1027
|
+
Initial graph data of any format that is supported
|
|
1028
|
+
by the to_network_graph() function.
|
|
1021
1029
|
name : `str`
|
|
1022
1030
|
Name for DAG.
|
|
1023
1031
|
"""
|
|
@@ -1209,7 +1217,7 @@ class HTCDag(networkx.DiGraph):
|
|
|
1209
1217
|
|
|
1210
1218
|
Parameters
|
|
1211
1219
|
----------
|
|
1212
|
-
fh : `
|
|
1220
|
+
fh : `typing.IO`
|
|
1213
1221
|
Where to dump DAG info as text.
|
|
1214
1222
|
"""
|
|
1215
1223
|
for key, value in self.graph:
|
|
@@ -1296,7 +1304,7 @@ def condor_query(constraint=None, schedds=None, query_func=htc_query_present, **
|
|
|
1296
1304
|
HTCondor schedulers which to query for job information. If None
|
|
1297
1305
|
(default), the query will be run against the history file of
|
|
1298
1306
|
the local scheduler only.
|
|
1299
|
-
query_func :
|
|
1307
|
+
query_func : `~collections.abc.Callable`
|
|
1300
1308
|
An query function which takes following arguments:
|
|
1301
1309
|
|
|
1302
1310
|
- ``schedds``: Schedulers to query (`list` [`htcondor.Schedd`]).
|
|
@@ -1653,7 +1661,7 @@ def read_dag_status(wms_path: str | os.PathLike) -> dict[str, Any]:
|
|
|
1653
1661
|
|
|
1654
1662
|
Parameters
|
|
1655
1663
|
----------
|
|
1656
|
-
wms_path : `str` or `os.PathLike
|
|
1664
|
+
wms_path : `str` or `os.PathLike`
|
|
1657
1665
|
Path that includes node status file for a run.
|
|
1658
1666
|
|
|
1659
1667
|
Returns
|
|
@@ -306,7 +306,11 @@ def _translate_dag_cmds(gwjob):
|
|
|
306
306
|
DAGMan commands for the job.
|
|
307
307
|
"""
|
|
308
308
|
# Values in the dag script that just are name mappings.
|
|
309
|
-
dag_translation = {
|
|
309
|
+
dag_translation = {
|
|
310
|
+
"abort_on_value": "abort_dag_on",
|
|
311
|
+
"abort_return_value": "abort_exit",
|
|
312
|
+
"priority": "priority",
|
|
313
|
+
}
|
|
310
314
|
|
|
311
315
|
dagcmds = {}
|
|
312
316
|
for gwkey, htckey in dag_translation.items():
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
__all__ = ["__version__"]
|
|
2
|
-
__version__ = "30.0.
|
|
2
|
+
__version__ = "30.0.1"
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lsst-ctrl-bps-htcondor
|
|
3
|
-
Version: 30.0.
|
|
3
|
+
Version: 30.0.1
|
|
4
4
|
Summary: HTCondor plugin for lsst-ctrl-bps.
|
|
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_htcondor
|
|
8
|
+
Project-URL: Source, https://github.com/lsst/ctrl_bps_htcondor
|
|
8
9
|
Keywords: lsst
|
|
9
10
|
Classifier: Intended Audience :: Science/Research
|
|
10
11
|
Classifier: Operating System :: OS Independent
|
|
11
12
|
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.12.0
|
|
18
18
|
Description-Content-Type: text/x-rst
|
|
19
19
|
License-File: COPYRIGHT
|
|
20
20
|
License-File: LICENSE
|
|
@@ -724,6 +724,7 @@ class HtcWriteJobCommands(unittest.TestCase):
|
|
|
724
724
|
"retry": 3,
|
|
725
725
|
"retry_unless_exit": 1,
|
|
726
726
|
"abort_dag_on": {"node_exit": 100, "abort_exit": 4},
|
|
727
|
+
"priority": 123,
|
|
727
728
|
}
|
|
728
729
|
|
|
729
730
|
truth = """SCRIPT DEFER 1 120 DEBUG debug_pre.txt ALL PRE job1 exec1 arg1 arg2
|
|
@@ -733,6 +734,7 @@ VARS job1 spaces="a space"
|
|
|
733
734
|
PRE_SKIP job1 1
|
|
734
735
|
RETRY job1 3 UNLESS-EXIT 1
|
|
735
736
|
ABORT-DAG-ON job1 100 RETURN 4
|
|
737
|
+
PRIORITY job1 123
|
|
736
738
|
"""
|
|
737
739
|
mockfh = io.StringIO()
|
|
738
740
|
lssthtc._htc_write_job_commands(mockfh, "job1", dag_cmds)
|
{lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/tests/test_prepare_utils.py
RENAMED
|
@@ -134,6 +134,19 @@ class TranslateJobCmdsTestCase(unittest.TestCase):
|
|
|
134
134
|
self.assertEqual(htc_commands["max_retries"], 0)
|
|
135
135
|
|
|
136
136
|
|
|
137
|
+
class TranslateDagCmdsTestCase(unittest.TestCase):
|
|
138
|
+
"""Test _translate_dag_cmds method."""
|
|
139
|
+
|
|
140
|
+
def setUp(self):
|
|
141
|
+
self.gw_exec = GenericWorkflowExec("test_exec", "/dummy/dir/pipetask")
|
|
142
|
+
|
|
143
|
+
def testPriority(self):
|
|
144
|
+
gwjob = GenericWorkflowJob("priority", "label1", executable=self.gw_exec)
|
|
145
|
+
gwjob.priority = 100
|
|
146
|
+
dag_commands = prepare_utils._translate_dag_cmds(gwjob)
|
|
147
|
+
self.assertEqual(dag_commands["priority"], 100)
|
|
148
|
+
|
|
149
|
+
|
|
137
150
|
class GroupToSubdagTestCase(unittest.TestCase):
|
|
138
151
|
"""Test _group_to_subdag function."""
|
|
139
152
|
|
|
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
|
|
File without changes
|
|
File without changes
|
{lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/tests/test_common_utils.py
RENAMED
|
File without changes
|
{lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/tests/test_dagman_configurator.py
RENAMED
|
File without changes
|
|
File without changes
|
{lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/tests/test_htcondor_service.py
RENAMED
|
File without changes
|
{lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/tests/test_provisioner.py
RENAMED
|
File without changes
|
{lsst_ctrl_bps_htcondor-30.0.0rc2 → lsst_ctrl_bps_htcondor-30.0.1}/tests/test_report_utils.py
RENAMED
|
File without changes
|