experimaestro 1.8.9__tar.gz → 1.9.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.
Potentially problematic release.
This version of experimaestro might be problematic. Click here for more details.
- {experimaestro-1.8.9 → experimaestro-1.9.1}/PKG-INFO +1 -1
- {experimaestro-1.8.9 → experimaestro-1.9.1}/pyproject.toml +2 -2
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/cli/filter.py +10 -1
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/cli/jobs.py +12 -5
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/connectors/__init__.py +5 -2
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/connectors/local.py +2 -2
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/launchers/slurm/base.py +4 -4
- {experimaestro-1.8.9 → experimaestro-1.9.1}/LICENSE +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/README.md +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/__init__.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/__main__.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/annotations.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/checkers.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/cli/__init__.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/click.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/commandline.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/compat.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/connectors/ssh.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/core/__init__.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/core/arguments.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/core/callbacks.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/core/context.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/core/identifier.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/core/objects/__init__.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/core/objects/config.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/core/objects/config_utils.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/core/objects/config_walk.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/core/objects.pyi +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/core/serialization.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/core/serializers.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/core/types.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/core/utils.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/exceptions.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/experiments/__init__.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/experiments/cli.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/experiments/configuration.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/generators.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/huggingface.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/ipc.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/launcherfinder/__init__.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/launcherfinder/base.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/launcherfinder/parser.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/launcherfinder/registry.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/launcherfinder/specs.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/launchers/__init__.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/launchers/direct.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/launchers/oar.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/launchers/slurm/__init__.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/locking.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/mkdocs/__init__.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/mkdocs/annotations.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/mkdocs/base.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/mkdocs/metaloader.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/mkdocs/style.css +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/mypy.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/notifications.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/py.typed +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/rpyc.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/run.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/scheduler/__init__.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/scheduler/base.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/scheduler/dependencies.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/scheduler/dynamic_outputs.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/scheduler/services.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/scheduler/state.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/scheduler/workspace.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/scriptbuilder.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/__init__.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/0c35d18bf06992036b69.woff2 +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/1815e00441357e01619e.ttf +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/219aa9140e099e6c72ed.woff2 +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/2463b90d9a316e4e5294.woff2 +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/2582b0e4bcf85eceead0.ttf +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/3a4004a46a653d4b2166.woff +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/3baa5b8f3469222b822d.woff +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/4d73cb90e394b34b7670.woff +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/4ef4218c522f1eb6b5b1.woff2 +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/5d681e2edae8c60630db.woff +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/6f420cf17cc0d7676fad.woff2 +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/89999bdf5d835c012025.woff2 +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/914997e1bdfc990d0897.ttf +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/c210719e60948b211a12.woff2 +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/c380809fd3677d7d6903.woff2 +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/f882956fd323fd322f31.woff +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/favicon.ico +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/index.css +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/index.css.map +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/index.html +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/index.js +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/index.js.map +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/login.html +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/manifest.json +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/settings.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/sphinx/__init__.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/sphinx/static/experimaestro.css +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/taskglobals.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/__init__.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/conftest.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/connectors/bin/executable.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/connectors/test_local.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/connectors/utils.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/core/__init__.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/core/test_generics.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/definitions_types.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/launchers/__init__.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/launchers/bin/sacct +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/launchers/bin/sbatch +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/launchers/bin/srun +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/launchers/bin/test.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/launchers/common.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/launchers/config_slurm/__init__.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/launchers/config_slurm/launchers.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/launchers/test_local.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/launchers/test_slurm.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/restart.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/restart_main.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/scripts/notifyandwait.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/scripts/waitforfile.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/task_tokens.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/tasks/__init__.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/tasks/all.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/tasks/foreign.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/test_checkers.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/test_dependencies.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/test_experiment.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/test_findlauncher.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/test_forward.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/test_identifier.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/test_instance.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/test_objects.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/test_outputs.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/test_param.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/test_progress.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/test_serializers.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/test_snippets.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/test_ssh.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/test_tags.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/test_tasks.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/test_tokens.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/test_types.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/test_validation.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/token_reschedule.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/utils.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tokens.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tools/__init__.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tools/diff.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tools/documentation.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tools/jobs.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/typingutils.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/utils/__init__.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/utils/asyncio.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/utils/jobs.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/utils/jupyter.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/utils/resources.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/utils/settings.py +0 -0
- {experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/xpmutils.py +0 -0
|
@@ -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.
|
|
23
|
+
version = "1.9.1"
|
|
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.
|
|
125
|
+
version = "1.9.1"
|
|
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,13 @@ 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
|
+
if process := self.getprocess():
|
|
34
|
+
state = asyncio.run(process.aio_state(0))
|
|
35
|
+
if state is None or state.finished:
|
|
36
|
+
return JobState.ERROR
|
|
37
|
+
else:
|
|
38
|
+
return JobState.ERROR
|
|
30
39
|
return JobState.RUNNING
|
|
31
40
|
else:
|
|
32
41
|
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
|
|
@@ -63,13 +65,14 @@ def process(
|
|
|
63
65
|
for job in p.glob("jobs/*/*"):
|
|
64
66
|
job_path = job.resolve()
|
|
65
67
|
if job_path.is_dir():
|
|
66
|
-
|
|
67
|
-
job2xp.setdefault(scriptname, set()).add(p.name)
|
|
68
|
+
job2xp.setdefault(job_path.name, set()).add(p.name)
|
|
68
69
|
|
|
69
70
|
if (p / "jobs.bak").is_dir():
|
|
70
71
|
cprint(f" Experiment {p.name} has not finished yet", "red")
|
|
71
72
|
if (not perform) and (kill or clean):
|
|
72
|
-
cprint(
|
|
73
|
+
cprint(
|
|
74
|
+
" Preventing kill/clean (use --perform if you want to)", "yellow"
|
|
75
|
+
)
|
|
73
76
|
kill = False
|
|
74
77
|
clean = False
|
|
75
78
|
|
|
@@ -79,11 +82,11 @@ def process(
|
|
|
79
82
|
p = job.resolve()
|
|
80
83
|
if p.is_dir():
|
|
81
84
|
*_, scriptname = p.parent.name.rsplit(".", 1)
|
|
82
|
-
xps = job2xp.get(
|
|
85
|
+
xps = job2xp.get(job.name, set())
|
|
83
86
|
if experiment and experiment not in xps:
|
|
84
87
|
continue
|
|
85
88
|
|
|
86
|
-
info = JobInformation(p, scriptname)
|
|
89
|
+
info = JobInformation(p, scriptname, check=check)
|
|
87
90
|
job_str = (
|
|
88
91
|
(str(job.resolve()) if fullpath else f"{job.parent.name}/{job.name}")
|
|
89
92
|
+ " "
|
|
@@ -151,6 +154,7 @@ def process(
|
|
|
151
154
|
@click.option("--ready", is_flag=True, help="Include tasks which are not yet scheduled")
|
|
152
155
|
@click.option("--filter", default="", help="Filter expression")
|
|
153
156
|
@click.option("--fullpath", is_flag=True, help="Prints full paths")
|
|
157
|
+
@click.option("--no-check", is_flag=True, help="Check that running jobs")
|
|
154
158
|
@jobs.command()
|
|
155
159
|
@click.pass_context
|
|
156
160
|
def list(
|
|
@@ -160,6 +164,7 @@ def list(
|
|
|
160
164
|
tags: bool,
|
|
161
165
|
ready: bool,
|
|
162
166
|
fullpath: bool,
|
|
167
|
+
no_check: bool,
|
|
163
168
|
):
|
|
164
169
|
process(
|
|
165
170
|
ctx.obj.workspace,
|
|
@@ -168,6 +173,7 @@ def list(
|
|
|
168
173
|
tags=tags,
|
|
169
174
|
ready=ready,
|
|
170
175
|
fullpath=fullpath,
|
|
176
|
+
check=not no_check,
|
|
171
177
|
)
|
|
172
178
|
|
|
173
179
|
|
|
@@ -187,6 +193,7 @@ def kill(
|
|
|
187
193
|
ready: bool,
|
|
188
194
|
fullpath: bool,
|
|
189
195
|
perform: bool,
|
|
196
|
+
check: bool,
|
|
190
197
|
):
|
|
191
198
|
process(
|
|
192
199
|
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.
|
|
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
|
|
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
|
|
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
|
|
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
|
{experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/0c35d18bf06992036b69.woff2
RENAMED
|
File without changes
|
{experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/1815e00441357e01619e.ttf
RENAMED
|
File without changes
|
{experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/219aa9140e099e6c72ed.woff2
RENAMED
|
File without changes
|
{experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/2463b90d9a316e4e5294.woff2
RENAMED
|
File without changes
|
{experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/2582b0e4bcf85eceead0.ttf
RENAMED
|
File without changes
|
{experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/3a4004a46a653d4b2166.woff
RENAMED
|
File without changes
|
{experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/3baa5b8f3469222b822d.woff
RENAMED
|
File without changes
|
{experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/4d73cb90e394b34b7670.woff
RENAMED
|
File without changes
|
{experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/4ef4218c522f1eb6b5b1.woff2
RENAMED
|
File without changes
|
{experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/5d681e2edae8c60630db.woff
RENAMED
|
File without changes
|
{experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/6f420cf17cc0d7676fad.woff2
RENAMED
|
File without changes
|
{experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/89999bdf5d835c012025.woff2
RENAMED
|
File without changes
|
{experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/914997e1bdfc990d0897.ttf
RENAMED
|
File without changes
|
{experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/c210719e60948b211a12.woff2
RENAMED
|
File without changes
|
{experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/c380809fd3677d7d6903.woff2
RENAMED
|
File without changes
|
{experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/server/data/f882956fd323fd322f31.woff
RENAMED
|
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
|
{experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/sphinx/static/experimaestro.css
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/connectors/bin/executable.py
RENAMED
|
File without changes
|
{experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/connectors/test_local.py
RENAMED
|
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
|
{experimaestro-1.8.9 → experimaestro-1.9.1}/src/experimaestro/tests/scripts/notifyandwait.py
RENAMED
|
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
|
|
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
|