experimaestro 1.8.9__tar.gz → 1.9.0__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.

Potentially problematic release.


This version of experimaestro might be problematic. Click here for more details.

Files changed (156) hide show
  1. {experimaestro-1.8.9 → experimaestro-1.9.0}/PKG-INFO +1 -1
  2. {experimaestro-1.8.9 → experimaestro-1.9.0}/pyproject.toml +2 -2
  3. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/cli/filter.py +8 -1
  4. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/cli/jobs.py +10 -2
  5. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/connectors/__init__.py +5 -2
  6. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/connectors/local.py +2 -2
  7. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/launchers/slurm/base.py +4 -4
  8. {experimaestro-1.8.9 → experimaestro-1.9.0}/LICENSE +0 -0
  9. {experimaestro-1.8.9 → experimaestro-1.9.0}/README.md +0 -0
  10. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/__init__.py +0 -0
  11. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/__main__.py +0 -0
  12. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/annotations.py +0 -0
  13. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/checkers.py +0 -0
  14. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/cli/__init__.py +0 -0
  15. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/click.py +0 -0
  16. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/commandline.py +0 -0
  17. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/compat.py +0 -0
  18. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/connectors/ssh.py +0 -0
  19. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/core/__init__.py +0 -0
  20. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/core/arguments.py +0 -0
  21. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/core/callbacks.py +0 -0
  22. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/core/context.py +0 -0
  23. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/core/identifier.py +0 -0
  24. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/core/objects/__init__.py +0 -0
  25. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/core/objects/config.py +0 -0
  26. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/core/objects/config_utils.py +0 -0
  27. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/core/objects/config_walk.py +0 -0
  28. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/core/objects.pyi +0 -0
  29. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/core/serialization.py +0 -0
  30. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/core/serializers.py +0 -0
  31. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/core/types.py +0 -0
  32. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/core/utils.py +0 -0
  33. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/exceptions.py +0 -0
  34. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/experiments/__init__.py +0 -0
  35. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/experiments/cli.py +0 -0
  36. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/experiments/configuration.py +0 -0
  37. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/generators.py +0 -0
  38. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/huggingface.py +0 -0
  39. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/ipc.py +0 -0
  40. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/launcherfinder/__init__.py +0 -0
  41. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/launcherfinder/base.py +0 -0
  42. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/launcherfinder/parser.py +0 -0
  43. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/launcherfinder/registry.py +0 -0
  44. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/launcherfinder/specs.py +0 -0
  45. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/launchers/__init__.py +0 -0
  46. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/launchers/direct.py +0 -0
  47. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/launchers/oar.py +0 -0
  48. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/launchers/slurm/__init__.py +0 -0
  49. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/locking.py +0 -0
  50. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/mkdocs/__init__.py +0 -0
  51. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/mkdocs/annotations.py +0 -0
  52. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/mkdocs/base.py +0 -0
  53. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/mkdocs/metaloader.py +0 -0
  54. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/mkdocs/style.css +0 -0
  55. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/mypy.py +0 -0
  56. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/notifications.py +0 -0
  57. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/py.typed +0 -0
  58. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/rpyc.py +0 -0
  59. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/run.py +0 -0
  60. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/scheduler/__init__.py +0 -0
  61. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/scheduler/base.py +0 -0
  62. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/scheduler/dependencies.py +0 -0
  63. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/scheduler/dynamic_outputs.py +0 -0
  64. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/scheduler/services.py +0 -0
  65. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/scheduler/state.py +0 -0
  66. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/scheduler/workspace.py +0 -0
  67. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/scriptbuilder.py +0 -0
  68. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/server/__init__.py +0 -0
  69. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/server/data/0c35d18bf06992036b69.woff2 +0 -0
  70. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/server/data/1815e00441357e01619e.ttf +0 -0
  71. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/server/data/219aa9140e099e6c72ed.woff2 +0 -0
  72. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/server/data/2463b90d9a316e4e5294.woff2 +0 -0
  73. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/server/data/2582b0e4bcf85eceead0.ttf +0 -0
  74. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/server/data/3a4004a46a653d4b2166.woff +0 -0
  75. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/server/data/3baa5b8f3469222b822d.woff +0 -0
  76. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/server/data/4d73cb90e394b34b7670.woff +0 -0
  77. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/server/data/4ef4218c522f1eb6b5b1.woff2 +0 -0
  78. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/server/data/5d681e2edae8c60630db.woff +0 -0
  79. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/server/data/6f420cf17cc0d7676fad.woff2 +0 -0
  80. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/server/data/89999bdf5d835c012025.woff2 +0 -0
  81. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/server/data/914997e1bdfc990d0897.ttf +0 -0
  82. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/server/data/c210719e60948b211a12.woff2 +0 -0
  83. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/server/data/c380809fd3677d7d6903.woff2 +0 -0
  84. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/server/data/f882956fd323fd322f31.woff +0 -0
  85. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/server/data/favicon.ico +0 -0
  86. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/server/data/index.css +0 -0
  87. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/server/data/index.css.map +0 -0
  88. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/server/data/index.html +0 -0
  89. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/server/data/index.js +0 -0
  90. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/server/data/index.js.map +0 -0
  91. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/server/data/login.html +0 -0
  92. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/server/data/manifest.json +0 -0
  93. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/settings.py +0 -0
  94. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/sphinx/__init__.py +0 -0
  95. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/sphinx/static/experimaestro.css +0 -0
  96. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/taskglobals.py +0 -0
  97. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/__init__.py +0 -0
  98. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/conftest.py +0 -0
  99. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/connectors/bin/executable.py +0 -0
  100. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/connectors/test_local.py +0 -0
  101. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/connectors/utils.py +0 -0
  102. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/core/__init__.py +0 -0
  103. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/core/test_generics.py +0 -0
  104. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/definitions_types.py +0 -0
  105. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/launchers/__init__.py +0 -0
  106. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/launchers/bin/sacct +0 -0
  107. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/launchers/bin/sbatch +0 -0
  108. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/launchers/bin/srun +0 -0
  109. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/launchers/bin/test.py +0 -0
  110. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/launchers/common.py +0 -0
  111. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/launchers/config_slurm/__init__.py +0 -0
  112. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/launchers/config_slurm/launchers.py +0 -0
  113. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/launchers/test_local.py +0 -0
  114. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/launchers/test_slurm.py +0 -0
  115. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/restart.py +0 -0
  116. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/restart_main.py +0 -0
  117. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/scripts/notifyandwait.py +0 -0
  118. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/scripts/waitforfile.py +0 -0
  119. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/task_tokens.py +0 -0
  120. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/tasks/__init__.py +0 -0
  121. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/tasks/all.py +0 -0
  122. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/tasks/foreign.py +0 -0
  123. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/test_checkers.py +0 -0
  124. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/test_dependencies.py +0 -0
  125. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/test_experiment.py +0 -0
  126. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/test_findlauncher.py +0 -0
  127. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/test_forward.py +0 -0
  128. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/test_identifier.py +0 -0
  129. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/test_instance.py +0 -0
  130. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/test_objects.py +0 -0
  131. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/test_outputs.py +0 -0
  132. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/test_param.py +0 -0
  133. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/test_progress.py +0 -0
  134. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/test_serializers.py +0 -0
  135. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/test_snippets.py +0 -0
  136. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/test_ssh.py +0 -0
  137. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/test_tags.py +0 -0
  138. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/test_tasks.py +0 -0
  139. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/test_tokens.py +0 -0
  140. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/test_types.py +0 -0
  141. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/test_validation.py +0 -0
  142. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/token_reschedule.py +0 -0
  143. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tests/utils.py +0 -0
  144. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tokens.py +0 -0
  145. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tools/__init__.py +0 -0
  146. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tools/diff.py +0 -0
  147. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tools/documentation.py +0 -0
  148. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/tools/jobs.py +0 -0
  149. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/typingutils.py +0 -0
  150. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/utils/__init__.py +0 -0
  151. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/utils/asyncio.py +0 -0
  152. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/utils/jobs.py +0 -0
  153. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/utils/jupyter.py +0 -0
  154. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/utils/resources.py +0 -0
  155. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/utils/settings.py +0 -0
  156. {experimaestro-1.8.9 → experimaestro-1.9.0}/src/experimaestro/xpmutils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: experimaestro
3
- Version: 1.8.9
3
+ Version: 1.9.0
4
4
  Summary: "Experimaestro is a computer science experiment manager"
5
5
  License: GPL-3
6
6
  Keywords: experiment manager
@@ -20,7 +20,7 @@ include = [
20
20
  "src/experimaestro/mkdocs/style.css",
21
21
  { path="src/experimaestro/server/data/*", format=['sdist', 'wheel']}
22
22
  ]
23
- version = "1.8.9"
23
+ version = "1.9.0"
24
24
  repository = "https://github.com/experimaestro/experimaestro-python"
25
25
  documentation = "https://experimaestro-python.readthedocs.io/"
26
26
 
@@ -122,7 +122,7 @@ warn_unused_ignores = true
122
122
 
123
123
  [tool.commitizen]
124
124
  name = "cz_conventional_commits"
125
- version = "1.8.9"
125
+ version = "1.9.0"
126
126
  changelog_start_rev = "v1.0.0"
127
127
  tag_format = "v$major.$minor.$patch$prerelease"
128
128
  # update_changelog_on_bump = true
@@ -1,3 +1,4 @@
1
+ import asyncio
1
2
  from typing import Any, Callable, Dict, List, Optional
2
3
  import pyparsing as pp
3
4
  from pathlib import Path
@@ -8,9 +9,10 @@ from experimaestro.scheduler import JobState
8
9
 
9
10
 
10
11
  class JobInformation:
11
- def __init__(self, path: Path, scriptname: str):
12
+ def __init__(self, path: Path, scriptname: str, check: bool = False):
12
13
  self.path = path
13
14
  self.scriptname = scriptname
15
+ self.check = check
14
16
 
15
17
  @cached_property
16
18
  def params(self):
@@ -27,6 +29,11 @@ class JobInformation:
27
29
  if (self.path / f"{self.scriptname}.failed").is_file():
28
30
  return JobState.ERROR
29
31
  if (self.path / f"{self.scriptname}.pid").is_file():
32
+ if self.check:
33
+ process = self.getprocess()
34
+ state = asyncio.run(process.aio_state(0))
35
+ if state.finished:
36
+ return JobState.ERROR
30
37
  return JobState.RUNNING
31
38
  else:
32
39
  return None
@@ -1,4 +1,5 @@
1
1
  # flake8: noqa: T201
2
+ import asyncio
2
3
  import subprocess
3
4
  from typing import Optional
4
5
  from shutil import rmtree
@@ -49,6 +50,7 @@ def process(
49
50
  filter="",
50
51
  perform=False,
51
52
  fullpath=False,
53
+ check=False,
52
54
  ):
53
55
  from .filter import createFilter, JobInformation
54
56
  from experimaestro.scheduler import JobState
@@ -69,7 +71,9 @@ def process(
69
71
  if (p / "jobs.bak").is_dir():
70
72
  cprint(f" Experiment {p.name} has not finished yet", "red")
71
73
  if (not perform) and (kill or clean):
72
- cprint(" Preventing kill/clean (use --perform if you want to)", "yellow")
74
+ cprint(
75
+ " Preventing kill/clean (use --perform if you want to)", "yellow"
76
+ )
73
77
  kill = False
74
78
  clean = False
75
79
 
@@ -83,7 +87,7 @@ def process(
83
87
  if experiment and experiment not in xps:
84
88
  continue
85
89
 
86
- info = JobInformation(p, scriptname)
90
+ info = JobInformation(p, scriptname, check=check)
87
91
  job_str = (
88
92
  (str(job.resolve()) if fullpath else f"{job.parent.name}/{job.name}")
89
93
  + " "
@@ -151,6 +155,7 @@ def process(
151
155
  @click.option("--ready", is_flag=True, help="Include tasks which are not yet scheduled")
152
156
  @click.option("--filter", default="", help="Filter expression")
153
157
  @click.option("--fullpath", is_flag=True, help="Prints full paths")
158
+ @click.option("--no-check", is_flag=True, help="Check that running jobs")
154
159
  @jobs.command()
155
160
  @click.pass_context
156
161
  def list(
@@ -160,6 +165,7 @@ def list(
160
165
  tags: bool,
161
166
  ready: bool,
162
167
  fullpath: bool,
168
+ no_check: bool,
163
169
  ):
164
170
  process(
165
171
  ctx.obj.workspace,
@@ -168,6 +174,7 @@ def list(
168
174
  tags=tags,
169
175
  ready=ready,
170
176
  fullpath=fullpath,
177
+ check=not no_check,
171
178
  )
172
179
 
173
180
 
@@ -187,6 +194,7 @@ def kill(
187
194
  ready: bool,
188
195
  fullpath: bool,
189
196
  perform: bool,
197
+ check: bool,
190
198
  ):
191
199
  process(
192
200
  ctx.obj.workspace,
@@ -114,8 +114,11 @@ class Process:
114
114
  """Wait until the process finishes and returns the error code"""
115
115
  raise NotImplementedError(f"Not implemented: {self.__class__}.wait")
116
116
 
117
- async def aio_state(self) -> ProcessState:
118
- """Returns the job state"""
117
+ async def aio_state(self, timeout: float | None = None) -> ProcessState:
118
+ """Returns the job state
119
+
120
+ :param timeout: maximum waiting time for a refresh
121
+ """
119
122
  raise NotImplementedError(f"Not implemented: {self.__class__}.aio_state")
120
123
 
121
124
  async def aio_isrunning(self):
@@ -39,7 +39,7 @@ class PsutilProcess(Process):
39
39
  )
40
40
  return code
41
41
 
42
- async def aio_state(self):
42
+ async def aio_state(self, timeout: float | None = None) -> ProcessState:
43
43
  if self._process.is_running():
44
44
  return ProcessState.RUNNING
45
45
  return ProcessState.FINISHED
@@ -65,7 +65,7 @@ class LocalProcess(Process):
65
65
  )
66
66
  return code
67
67
 
68
- async def aio_state(self):
68
+ async def aio_state(self, timeout: float | None = None) -> ProcessState:
69
69
  code = self._process.poll()
70
70
  if code is None:
71
71
  return ProcessState.RUNNING
@@ -87,7 +87,7 @@ class SlurmProcessWatcher(threading.Thread):
87
87
  WATCHERS: Dict[Tuple[Tuple[str, Any]], "SlurmProcessWatcher"] = {}
88
88
 
89
89
  def __init__(self, launcher: "SlurmLauncher"):
90
- super().__init__()
90
+ super().__init__(daemon=True)
91
91
  self.launcher = launcher
92
92
  self.count = 1
93
93
  self.jobs: Dict[str, SlurmJobState] = {}
@@ -184,10 +184,10 @@ class BatchSlurmProcess(Process):
184
184
  if state and state.finished():
185
185
  return 0 if state.slurm_state == "COMPLETED" else 1
186
186
 
187
- async def aio_state(self):
187
+ async def aio_state(self, timeout: float | None = None) -> ProcessState:
188
188
  def check():
189
189
  with SlurmProcessWatcher.get(self.launcher) as watcher:
190
- jobinfo = watcher.getjob(self.jobid)
190
+ jobinfo = watcher.getjob(self.jobid, timeout=timeout)
191
191
  return jobinfo.state if jobinfo else ProcessState.SCHEDULED
192
192
 
193
193
  return await asyncThreadcheck("slurm.aio_isrunning", check)
@@ -212,7 +212,7 @@ class BatchSlurmProcess(Process):
212
212
 
213
213
  # Checks that the process is running
214
214
  with SlurmProcessWatcher.get(launcher) as watcher:
215
- logger.info("Checking SLURM job %s", process.jobid)
215
+ logger.debug("Checking SLURM job %s", process.jobid)
216
216
  jobinfo = watcher.getjob(process.jobid, timeout=0.1)
217
217
  if jobinfo and jobinfo.state.running:
218
218
  logger.debug(
File without changes
File without changes