lsst-ctrl-bps-htcondor 29.2025.4200__tar.gz → 29.2025.4400__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.
Files changed (40) hide show
  1. {lsst_ctrl_bps_htcondor-29.2025.4200/python/lsst_ctrl_bps_htcondor.egg-info → lsst_ctrl_bps_htcondor-29.2025.4400}/PKG-INFO +4 -3
  2. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/pyproject.toml +4 -3
  3. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/python/lsst/ctrl/bps/htcondor/report_utils.py +1 -0
  4. lsst_ctrl_bps_htcondor-29.2025.4400/python/lsst/ctrl/bps/htcondor/version.py +2 -0
  5. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400/python/lsst_ctrl_bps_htcondor.egg-info}/PKG-INFO +4 -3
  6. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/tests/test_report_utils.py +14 -12
  7. lsst_ctrl_bps_htcondor-29.2025.4200/python/lsst/ctrl/bps/htcondor/version.py +0 -2
  8. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/COPYRIGHT +0 -0
  9. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/LICENSE +0 -0
  10. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/MANIFEST.in +0 -0
  11. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/README.rst +0 -0
  12. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/bsd_license.txt +0 -0
  13. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/doc/lsst.ctrl.bps.htcondor/CHANGES.rst +0 -0
  14. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/doc/lsst.ctrl.bps.htcondor/index.rst +0 -0
  15. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/doc/lsst.ctrl.bps.htcondor/userguide.rst +0 -0
  16. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/gpl-v3.0.txt +0 -0
  17. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/python/lsst/ctrl/bps/htcondor/__init__.py +0 -0
  18. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/python/lsst/ctrl/bps/htcondor/common_utils.py +0 -0
  19. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/python/lsst/ctrl/bps/htcondor/etc/__init__.py +0 -0
  20. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/python/lsst/ctrl/bps/htcondor/etc/htcondor_defaults.yaml +0 -0
  21. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/python/lsst/ctrl/bps/htcondor/final_post.sh +0 -0
  22. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/python/lsst/ctrl/bps/htcondor/handlers.py +0 -0
  23. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/python/lsst/ctrl/bps/htcondor/htcondor_config.py +0 -0
  24. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/python/lsst/ctrl/bps/htcondor/htcondor_service.py +0 -0
  25. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/python/lsst/ctrl/bps/htcondor/htcondor_workflow.py +0 -0
  26. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/python/lsst/ctrl/bps/htcondor/lssthtc.py +0 -0
  27. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/python/lsst/ctrl/bps/htcondor/prepare_utils.py +0 -0
  28. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/python/lsst/ctrl/bps/htcondor/provisioner.py +0 -0
  29. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/python/lsst_ctrl_bps_htcondor.egg-info/SOURCES.txt +0 -0
  30. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/python/lsst_ctrl_bps_htcondor.egg-info/dependency_links.txt +0 -0
  31. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/python/lsst_ctrl_bps_htcondor.egg-info/requires.txt +0 -0
  32. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/python/lsst_ctrl_bps_htcondor.egg-info/top_level.txt +0 -0
  33. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/python/lsst_ctrl_bps_htcondor.egg-info/zip-safe +0 -0
  34. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/setup.cfg +0 -0
  35. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/tests/test_common_utils.py +0 -0
  36. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/tests/test_handlers.py +0 -0
  37. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/tests/test_htcondor_service.py +0 -0
  38. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/tests/test_lssthtc.py +0 -0
  39. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/tests/test_prepare_utils.py +0 -0
  40. {lsst_ctrl_bps_htcondor-29.2025.4200 → lsst_ctrl_bps_htcondor-29.2025.4400}/tests/test_provisioner.py +0 -0
@@ -1,17 +1,18 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lsst-ctrl-bps-htcondor
3
- Version: 29.2025.4200
3
+ Version: 29.2025.4400
4
4
  Summary: HTCondor plugin for lsst-ctrl-bps.
5
5
  Author-email: Rubin Observatory Data Management <dm-admin@lists.lsst.org>
6
- License: BSD 3-Clause License
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
8
  Keywords: lsst
9
9
  Classifier: Intended Audience :: Science/Research
10
- Classifier: License :: OSI Approved :: BSD License
11
10
  Classifier: Operating System :: OS Independent
12
11
  Classifier: Programming Language :: Python :: 3
13
12
  Classifier: Programming Language :: Python :: 3.11
14
13
  Classifier: Programming Language :: Python :: 3.12
14
+ Classifier: Programming Language :: Python :: 3.13
15
+ Classifier: Programming Language :: Python :: 3.14
15
16
  Classifier: Topic :: Scientific/Engineering :: Astronomy
16
17
  Requires-Python: >=3.11.0
17
18
  Description-Content-Type: text/x-rst
@@ -6,18 +6,20 @@ build-backend = "setuptools.build_meta"
6
6
  name = "lsst-ctrl-bps-htcondor"
7
7
  requires-python = ">=3.11.0"
8
8
  description = "HTCondor plugin for lsst-ctrl-bps."
9
- license = {text = "BSD 3-Clause License"}
9
+ license = "BSD-3-Clause OR GPL-3.0-or-later"
10
+ license-files = ["COPYRIGHT", "LICENSE", "bsd_license.txt", "gpl-v3.0.txt"]
10
11
  readme = "README.rst"
11
12
  authors = [
12
13
  {name="Rubin Observatory Data Management", email="dm-admin@lists.lsst.org"},
13
14
  ]
14
15
  classifiers = [
15
16
  "Intended Audience :: Science/Research",
16
- "License :: OSI Approved :: BSD License",
17
17
  "Operating System :: OS Independent",
18
18
  "Programming Language :: Python :: 3",
19
19
  "Programming Language :: Python :: 3.11",
20
20
  "Programming Language :: Python :: 3.12",
21
+ "Programming Language :: Python :: 3.13",
22
+ "Programming Language :: Python :: 3.14",
21
23
  "Topic :: Scientific/Engineering :: Astronomy",
22
24
  ]
23
25
  keywords = ["lsst"]
@@ -43,7 +45,6 @@ where = ["python"]
43
45
 
44
46
  [tool.setuptools]
45
47
  zip-safe = true
46
- license-files = ["COPYRIGHT", "LICENSE", "bsd_license.txt", "gpl-v3.0.txt"]
47
48
 
48
49
  [tool.setuptools.package-data]
49
50
  "lsst.ctrl.bps.htcondor" = ["etc/*.yaml", "final_post.sh"]
@@ -126,6 +126,7 @@ def _get_status_from_path(wms_path: str | os.PathLike) -> tuple[WmsStates, str]:
126
126
  if wms_workflow_id == MISSING_ID:
127
127
  state = WmsStates.UNKNOWN
128
128
  else:
129
+ htc_tweak_log_info(wms_path, dag_ad[wms_workflow_id])
129
130
  state = _htc_status_to_wms_state(dag_ad[wms_workflow_id])
130
131
 
131
132
  return state, message
@@ -0,0 +1,2 @@
1
+ __all__ = ["__version__"]
2
+ __version__ = "29.2025.4400"
@@ -1,17 +1,18 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lsst-ctrl-bps-htcondor
3
- Version: 29.2025.4200
3
+ Version: 29.2025.4400
4
4
  Summary: HTCondor plugin for lsst-ctrl-bps.
5
5
  Author-email: Rubin Observatory Data Management <dm-admin@lists.lsst.org>
6
- License: BSD 3-Clause License
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
8
  Keywords: lsst
9
9
  Classifier: Intended Audience :: Science/Research
10
- Classifier: License :: OSI Approved :: BSD License
11
10
  Classifier: Operating System :: OS Independent
12
11
  Classifier: Programming Language :: Python :: 3
13
12
  Classifier: Programming Language :: Python :: 3.11
14
13
  Classifier: Programming Language :: Python :: 3.12
14
+ Classifier: Programming Language :: Python :: 3.13
15
+ Classifier: Programming Language :: Python :: 3.14
15
16
  Classifier: Topic :: Scientific/Engineering :: Astronomy
16
17
  Requires-Python: >=3.11.0
17
18
  Description-Content-Type: text/x-rst
@@ -842,21 +842,23 @@ class GetStatusFromPathTestCase(unittest.TestCase):
842
842
  self.assertEqual(state, WmsStates.UNKNOWN)
843
843
  self.assertEqual(message, f"DAGMan log not found in {fake_path}. Check path.")
844
844
 
845
- @unittest.mock.patch("lsst.ctrl.bps.htcondor.report_utils._htc_status_to_wms_state")
846
- @unittest.mock.patch("lsst.ctrl.bps.htcondor.report_utils.read_dag_log")
847
- def testSuccess(self, mock_read, mock_conversion):
848
- dag_ads = {"100.0": {"JobStatus": lssthtc.JobStatus.COMPLETED, "ExitBySignal": False, "ExitCode": 0}}
849
- mock_read.return_value = ("100.0", dag_ads)
850
- mock_conversion.return_value = WmsStates.SUCCEEDED
845
+ def testSuccess(self):
846
+ with temporaryDirectory() as tmp_dir:
847
+ test_submit_dir = os.path.join(tmp_dir, "tiny_success")
848
+ copytree(f"{TESTDIR}/data/tiny_success", test_submit_dir)
849
+ state, message = report_utils._get_status_from_path(test_submit_dir)
851
850
 
852
- fake_path = "/fake/path"
853
- state, message = report_utils._get_status_from_path(fake_path)
851
+ self.assertEqual(state, WmsStates.SUCCEEDED)
852
+ self.assertEqual(message, "")
854
853
 
855
- mock_read.assert_called_once_with(Path(fake_path))
856
- mock_conversion.assert_called_once_with(dag_ads["100.0"])
854
+ def testFailure(self):
855
+ with temporaryDirectory() as tmp_dir:
856
+ test_submit_dir = os.path.join(tmp_dir, "tiny_problems")
857
+ copytree(f"{TESTDIR}/data/tiny_problems", test_submit_dir)
858
+ state, message = report_utils._get_status_from_path(test_submit_dir)
857
859
 
858
- self.assertEqual(state, WmsStates.SUCCEEDED)
859
- self.assertEqual(message, "")
860
+ self.assertEqual(state, WmsStates.FAILED)
861
+ self.assertEqual(message, "")
860
862
 
861
863
 
862
864
  if __name__ == "__main__":
@@ -1,2 +0,0 @@
1
- __all__ = ["__version__"]
2
- __version__ = "29.2025.4200"