lsst-ctrl-bps-htcondor 28.2025.600__tar.gz → 28.2025.800__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-28.2025.600/python/lsst_ctrl_bps_htcondor.egg-info → lsst_ctrl_bps_htcondor-28.2025.800}/PKG-INFO +1 -1
- {lsst_ctrl_bps_htcondor-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800}/pyproject.toml +13 -0
- {lsst_ctrl_bps_htcondor-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800}/python/lsst/ctrl/bps/htcondor/htcondor_service.py +8 -7
- {lsst_ctrl_bps_htcondor-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800}/python/lsst/ctrl/bps/htcondor/lssthtc.py +15 -15
- lsst_ctrl_bps_htcondor-28.2025.800/python/lsst/ctrl/bps/htcondor/version.py +2 -0
- {lsst_ctrl_bps_htcondor-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800/python/lsst_ctrl_bps_htcondor.egg-info}/PKG-INFO +1 -1
- {lsst_ctrl_bps_htcondor-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800}/tests/test_htcondor_service.py +1 -0
- {lsst_ctrl_bps_htcondor-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800}/tests/test_lssthtc.py +1 -0
- {lsst_ctrl_bps_htcondor-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800}/tests/test_provisioner.py +1 -0
- lsst_ctrl_bps_htcondor-28.2025.600/python/lsst/ctrl/bps/htcondor/version.py +0 -2
- {lsst_ctrl_bps_htcondor-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800}/COPYRIGHT +0 -0
- {lsst_ctrl_bps_htcondor-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800}/LICENSE +0 -0
- {lsst_ctrl_bps_htcondor-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800}/MANIFEST.in +0 -0
- {lsst_ctrl_bps_htcondor-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800}/README.rst +0 -0
- {lsst_ctrl_bps_htcondor-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800}/bsd_license.txt +0 -0
- {lsst_ctrl_bps_htcondor-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800}/doc/lsst.ctrl.bps.htcondor/CHANGES.rst +0 -0
- {lsst_ctrl_bps_htcondor-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800}/doc/lsst.ctrl.bps.htcondor/index.rst +0 -0
- {lsst_ctrl_bps_htcondor-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800}/doc/lsst.ctrl.bps.htcondor/userguide.rst +0 -0
- {lsst_ctrl_bps_htcondor-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800}/gpl-v3.0.txt +0 -0
- {lsst_ctrl_bps_htcondor-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800}/python/lsst/ctrl/bps/htcondor/__init__.py +0 -0
- {lsst_ctrl_bps_htcondor-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800}/python/lsst/ctrl/bps/htcondor/etc/__init__.py +0 -0
- {lsst_ctrl_bps_htcondor-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800}/python/lsst/ctrl/bps/htcondor/etc/htcondor_defaults.yaml +0 -0
- {lsst_ctrl_bps_htcondor-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800}/python/lsst/ctrl/bps/htcondor/final_post.sh +0 -0
- {lsst_ctrl_bps_htcondor-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800}/python/lsst/ctrl/bps/htcondor/handlers.py +0 -0
- {lsst_ctrl_bps_htcondor-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800}/python/lsst/ctrl/bps/htcondor/htcondor_config.py +0 -0
- {lsst_ctrl_bps_htcondor-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800}/python/lsst/ctrl/bps/htcondor/provisioner.py +0 -0
- {lsst_ctrl_bps_htcondor-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800}/python/lsst_ctrl_bps_htcondor.egg-info/SOURCES.txt +0 -0
- {lsst_ctrl_bps_htcondor-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800}/python/lsst_ctrl_bps_htcondor.egg-info/dependency_links.txt +0 -0
- {lsst_ctrl_bps_htcondor-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800}/python/lsst_ctrl_bps_htcondor.egg-info/requires.txt +0 -0
- {lsst_ctrl_bps_htcondor-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800}/python/lsst_ctrl_bps_htcondor.egg-info/top_level.txt +0 -0
- {lsst_ctrl_bps_htcondor-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800}/python/lsst_ctrl_bps_htcondor.egg-info/zip-safe +0 -0
- {lsst_ctrl_bps_htcondor-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800}/setup.cfg +0 -0
- {lsst_ctrl_bps_htcondor-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800}/tests/test_handlers.py +0 -0
|
@@ -96,6 +96,7 @@ target-version = ["py311"]
|
|
|
96
96
|
[tool.isort]
|
|
97
97
|
profile = "black"
|
|
98
98
|
line_length = 110
|
|
99
|
+
known_first_party = ["lsst"]
|
|
99
100
|
|
|
100
101
|
[tool.lsst_versions]
|
|
101
102
|
write_to = "python/lsst/ctrl/bps/htcondor/version.py"
|
|
@@ -145,6 +146,9 @@ select = [
|
|
|
145
146
|
"D", # pydocstyle
|
|
146
147
|
"UP", # pyupgrade
|
|
147
148
|
"C4",
|
|
149
|
+
"I", # isort
|
|
150
|
+
"RUF022", # sort __all__
|
|
151
|
+
"B", # bugbear
|
|
148
152
|
]
|
|
149
153
|
extend-select = [
|
|
150
154
|
"RUF100", # Warn about unused noqa
|
|
@@ -156,6 +160,15 @@ max-doc-length = 79
|
|
|
156
160
|
[tool.ruff.lint.pydocstyle]
|
|
157
161
|
convention = "numpy"
|
|
158
162
|
|
|
163
|
+
[tool.ruff.lint.isort]
|
|
164
|
+
known-first-party = ["lsst"]
|
|
165
|
+
# Without this ruff introspection comes to the wrong conclusion.
|
|
166
|
+
known-third-party = ["htcondor"]
|
|
167
|
+
|
|
168
|
+
[tool.ruff.format]
|
|
169
|
+
docstring-code-format = true
|
|
170
|
+
docstring-code-line-length = 79
|
|
171
|
+
|
|
159
172
|
[tool.numpydoc_validation]
|
|
160
173
|
checks = [
|
|
161
174
|
"all", # All except the rules listed below.
|
|
@@ -39,6 +39,8 @@ from pathlib import Path
|
|
|
39
39
|
from typing import Any
|
|
40
40
|
|
|
41
41
|
import htcondor
|
|
42
|
+
from packaging import version
|
|
43
|
+
|
|
42
44
|
from lsst.ctrl.bps import (
|
|
43
45
|
BaseWmsService,
|
|
44
46
|
BaseWmsWorkflow,
|
|
@@ -52,7 +54,6 @@ from lsst.ctrl.bps import (
|
|
|
52
54
|
from lsst.ctrl.bps.bps_utils import chdir, create_count_summary
|
|
53
55
|
from lsst.daf.butler import Config
|
|
54
56
|
from lsst.utils.timer import time_this
|
|
55
|
-
from packaging import version
|
|
56
57
|
|
|
57
58
|
from .htcondor_config import HTC_DEFAULTS_URI
|
|
58
59
|
from .lssthtc import (
|
|
@@ -372,7 +373,7 @@ class HTCondorService(BaseWmsService):
|
|
|
372
373
|
|
|
373
374
|
# Prune child jobs where DAG job is in queue (i.e., aren't orphans).
|
|
374
375
|
job_ids = []
|
|
375
|
-
for
|
|
376
|
+
for job_info in results.values():
|
|
376
377
|
for job_id, job_ad in job_info.items():
|
|
377
378
|
_LOG.debug("job_id=%s DAGManJobId=%s", job_id, job_ad.get("DAGManJobId", "None"))
|
|
378
379
|
if "DAGManJobId" not in job_ad:
|
|
@@ -759,7 +760,7 @@ def _translate_job_cmds(cached_vals, generic_workflow, gwjob):
|
|
|
759
760
|
jobcmds["retry_until"] = f"{gwjob.retry_unless_exit}"
|
|
760
761
|
elif isinstance(gwjob.retry_unless_exit, list):
|
|
761
762
|
jobcmds["retry_until"] = (
|
|
762
|
-
f
|
|
763
|
+
f"member(ExitCode, {{{','.join([str(x) for x in gwjob.retry_unless_exit])}}})"
|
|
763
764
|
)
|
|
764
765
|
else:
|
|
765
766
|
raise ValueError("retryUnlessExit must be an integer or a list of integers.")
|
|
@@ -2133,11 +2134,11 @@ def _gather_site_values(config, compute_site):
|
|
|
2133
2134
|
|
|
2134
2135
|
key = f".site.{compute_site}.profile.condor"
|
|
2135
2136
|
if key in config:
|
|
2136
|
-
for
|
|
2137
|
-
if
|
|
2138
|
-
site_values["attrs"][
|
|
2137
|
+
for subkey, val in config[key].items():
|
|
2138
|
+
if subkey.startswith("+"):
|
|
2139
|
+
site_values["attrs"][subkey[1:]] = val
|
|
2139
2140
|
else:
|
|
2140
|
-
site_values["profile"][
|
|
2141
|
+
site_values["profile"][subkey] = val
|
|
2141
2142
|
|
|
2142
2143
|
return site_values
|
|
2143
2144
|
|
|
@@ -34,38 +34,38 @@ level. LSST workflows are more complicated.
|
|
|
34
34
|
"""
|
|
35
35
|
|
|
36
36
|
__all__ = [
|
|
37
|
+
"MISSING_ID",
|
|
37
38
|
"DagStatus",
|
|
39
|
+
"HTCDag",
|
|
40
|
+
"HTCJob",
|
|
38
41
|
"JobStatus",
|
|
39
42
|
"NodeStatus",
|
|
40
43
|
"RestrictedDict",
|
|
41
|
-
"
|
|
42
|
-
"
|
|
44
|
+
"condor_history",
|
|
45
|
+
"condor_q",
|
|
46
|
+
"condor_search",
|
|
47
|
+
"condor_status",
|
|
43
48
|
"htc_backup_files",
|
|
44
49
|
"htc_check_dagman_output",
|
|
45
50
|
"htc_create_submit_from_cmd",
|
|
46
51
|
"htc_create_submit_from_dag",
|
|
47
52
|
"htc_create_submit_from_file",
|
|
48
53
|
"htc_escape",
|
|
49
|
-
"htc_write_attribs",
|
|
50
|
-
"htc_write_condor_file",
|
|
51
54
|
"htc_query_history",
|
|
52
55
|
"htc_query_present",
|
|
53
|
-
"htc_version",
|
|
54
56
|
"htc_submit_dag",
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"update_job_info",
|
|
60
|
-
"MISSING_ID",
|
|
61
|
-
"summary_from_dag",
|
|
57
|
+
"htc_version",
|
|
58
|
+
"htc_write_attribs",
|
|
59
|
+
"htc_write_condor_file",
|
|
60
|
+
"pegasus_name_to_label",
|
|
62
61
|
"read_dag_info",
|
|
63
62
|
"read_dag_log",
|
|
64
63
|
"read_dag_nodes_log",
|
|
65
64
|
"read_dag_status",
|
|
66
65
|
"read_node_status",
|
|
66
|
+
"summary_from_dag",
|
|
67
|
+
"update_job_info",
|
|
67
68
|
"write_dag_info",
|
|
68
|
-
"pegasus_name_to_label",
|
|
69
69
|
]
|
|
70
70
|
|
|
71
71
|
|
|
@@ -688,7 +688,7 @@ def htc_create_submit_from_file(submit_file):
|
|
|
688
688
|
for line in fh:
|
|
689
689
|
line = line.strip()
|
|
690
690
|
if not line.startswith("#") and not line == "queue":
|
|
691
|
-
(key, val) = re.split(r"\s*=\s*", line, 1)
|
|
691
|
+
(key, val) = re.split(r"\s*=\s*", line, maxsplit=1)
|
|
692
692
|
descriptors[key] = val
|
|
693
693
|
|
|
694
694
|
# Avoid UserWarning: the line 'copy_to_spool = False' was
|
|
@@ -1028,7 +1028,7 @@ class HTCDag(networkx.DiGraph):
|
|
|
1028
1028
|
for edge in self.edges():
|
|
1029
1029
|
print(f"PARENT {edge[0]} CHILD {edge[1]}", file=fh)
|
|
1030
1030
|
if self.graph["final_job"]:
|
|
1031
|
-
print(f
|
|
1031
|
+
print(f"FINAL {self.graph['final_job'].name}:", file=fh)
|
|
1032
1032
|
self.graph["final_job"].dump(fh)
|
|
1033
1033
|
|
|
1034
1034
|
def write_dot(self, filename):
|
|
@@ -34,6 +34,7 @@ from pathlib import Path
|
|
|
34
34
|
from shutil import copy2
|
|
35
35
|
|
|
36
36
|
import htcondor
|
|
37
|
+
|
|
37
38
|
from lsst.ctrl.bps import BpsConfig, GenericWorkflowExec, GenericWorkflowJob, WmsStates
|
|
38
39
|
from lsst.ctrl.bps.htcondor.htcondor_config import HTC_DEFAULTS_URI
|
|
39
40
|
from lsst.ctrl.bps.htcondor.htcondor_service import (
|
|
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-28.2025.600 → lsst_ctrl_bps_htcondor-28.2025.800}/tests/test_handlers.py
RENAMED
|
File without changes
|