hpc-runner 0.2.0__py3-none-any.whl → 0.2.2__py3-none-any.whl
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.
- hpc_runner/_version.py +2 -2
- hpc_runner/cli/__init__.py +1 -1
- hpc_runner/cli/config.py +11 -8
- hpc_runner/cli/main.py +6 -0
- hpc_runner/cli/submit.py +72 -0
- hpc_runner/core/__init__.py +1 -1
- hpc_runner/core/config.py +12 -11
- hpc_runner/core/exceptions.py +2 -2
- hpc_runner/core/job.py +4 -0
- hpc_runner/core/types.py +1 -1
- hpc_runner/schedulers/local/templates/job.sh.j2 +23 -1
- hpc_runner/schedulers/sge/templates/batch.sh.j2 +16 -1
- hpc_runner/schedulers/sge/templates/interactive.sh.j2 +16 -1
- {hpc_runner-0.2.0.dist-info → hpc_runner-0.2.2.dist-info}/METADATA +11 -10
- {hpc_runner-0.2.0.dist-info → hpc_runner-0.2.2.dist-info}/RECORD +17 -16
- {hpc_runner-0.2.0.dist-info → hpc_runner-0.2.2.dist-info}/entry_points.txt +1 -0
- {hpc_runner-0.2.0.dist-info → hpc_runner-0.2.2.dist-info}/WHEEL +0 -0
hpc_runner/_version.py
CHANGED
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '0.2.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 2,
|
|
31
|
+
__version__ = version = '0.2.2'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 2, 2)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
hpc_runner/cli/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"""CLI for hpc-
|
|
1
|
+
"""CLI for hpc-runner."""
|
hpc_runner/cli/config.py
CHANGED
|
@@ -29,10 +29,10 @@ def show(ctx: Context) -> None:
|
|
|
29
29
|
console.print("[yellow]No configuration file found[/yellow]")
|
|
30
30
|
console.print("Using default settings")
|
|
31
31
|
console.print("\nSearch locations:")
|
|
32
|
-
console.print(" 1. ./hpc-
|
|
33
|
-
console.print(" 2. ./pyproject.toml [tool.hpc-
|
|
34
|
-
console.print(" 3. <git root>/hpc-
|
|
35
|
-
console.print(" 4. ~/.config/hpc-
|
|
32
|
+
console.print(" 1. ./hpc-runner.toml")
|
|
33
|
+
console.print(" 2. ./pyproject.toml [tool.hpc-runner]")
|
|
34
|
+
console.print(" 3. <git root>/hpc-runner.toml")
|
|
35
|
+
console.print(" 4. ~/.config/hpc-runner/config.toml")
|
|
36
36
|
return
|
|
37
37
|
|
|
38
38
|
console.print(f"[bold]Config file:[/bold] {config_path}")
|
|
@@ -45,16 +45,16 @@ def show(ctx: Context) -> None:
|
|
|
45
45
|
|
|
46
46
|
|
|
47
47
|
@config_cmd.command("init")
|
|
48
|
-
@click.option("--global", "global_config", is_flag=True, help="Create in ~/.config/hpc-
|
|
48
|
+
@click.option("--global", "global_config", is_flag=True, help="Create in ~/.config/hpc-runner/")
|
|
49
49
|
@pass_context
|
|
50
50
|
def init(ctx: Context, global_config: bool) -> None:
|
|
51
51
|
"""Create a new configuration file."""
|
|
52
52
|
if global_config:
|
|
53
|
-
config_dir = Path.home() / ".config" / "hpc-
|
|
53
|
+
config_dir = Path.home() / ".config" / "hpc-runner"
|
|
54
54
|
config_dir.mkdir(parents=True, exist_ok=True)
|
|
55
55
|
config_path = config_dir / "config.toml"
|
|
56
56
|
else:
|
|
57
|
-
config_path = Path.cwd() / "hpc-
|
|
57
|
+
config_path = Path.cwd() / "hpc-runner.toml"
|
|
58
58
|
|
|
59
59
|
if config_path.exists():
|
|
60
60
|
if not click.confirm(f"{config_path} already exists. Overwrite?"):
|
|
@@ -62,7 +62,10 @@ def init(ctx: Context, global_config: bool) -> None:
|
|
|
62
62
|
return
|
|
63
63
|
|
|
64
64
|
# Write default config
|
|
65
|
-
default_config = '''# hpc-
|
|
65
|
+
default_config = '''# hpc-runner configuration
|
|
66
|
+
#
|
|
67
|
+
# This file is safe to commit to a project repo (for shared defaults).
|
|
68
|
+
# For a per-user config, run: hpc config init --global
|
|
66
69
|
|
|
67
70
|
[defaults]
|
|
68
71
|
# Default job settings
|
hpc_runner/cli/main.py
CHANGED
|
@@ -52,6 +52,12 @@ def cli(ctx: Context, config: Path | None, scheduler: str | None, verbose: bool)
|
|
|
52
52
|
ctx.scheduler = scheduler
|
|
53
53
|
ctx.verbose = verbose
|
|
54
54
|
|
|
55
|
+
# Ensure the config cache reflects CLI selection / CWD discovery.
|
|
56
|
+
# Without this, --config would only affect `hpc config ...` commands.
|
|
57
|
+
from hpc_runner.core.config import reload_config
|
|
58
|
+
|
|
59
|
+
reload_config(config)
|
|
60
|
+
|
|
55
61
|
|
|
56
62
|
# Import and register subcommands (must be after cli is defined to avoid circular imports)
|
|
57
63
|
from hpc_runner.cli.cancel import cancel # noqa: E402
|
hpc_runner/cli/submit.py
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"""Entry point that behaves like `hpc run ...`."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import sys
|
|
6
|
+
from typing import Final
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
_GLOBAL_FLAGS: Final[set[str]] = {"--config", "--scheduler", "--verbose", "-h", "--help"}
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def _split_global_flags(argv: list[str]) -> tuple[list[str], list[str]]:
|
|
13
|
+
"""Split argv into (global_opts, rest) for the `submit` shim.
|
|
14
|
+
|
|
15
|
+
We only recognize the top-level CLI flags supported by `hpc`:
|
|
16
|
+
--config PATH, --scheduler NAME, --verbose, -h/--help.
|
|
17
|
+
|
|
18
|
+
Anything else is treated as part of the `run` command (including scheduler
|
|
19
|
+
passthrough flags like `-q`, `-l`, etc.).
|
|
20
|
+
"""
|
|
21
|
+
global_opts: list[str] = []
|
|
22
|
+
rest: list[str] = []
|
|
23
|
+
|
|
24
|
+
i = 0
|
|
25
|
+
while i < len(argv):
|
|
26
|
+
arg = argv[i]
|
|
27
|
+
|
|
28
|
+
# Support --opt=value forms
|
|
29
|
+
if arg.startswith("--config=") or arg.startswith("--scheduler="):
|
|
30
|
+
global_opts.append(arg)
|
|
31
|
+
i += 1
|
|
32
|
+
continue
|
|
33
|
+
|
|
34
|
+
if arg not in _GLOBAL_FLAGS:
|
|
35
|
+
rest = argv[i:]
|
|
36
|
+
break
|
|
37
|
+
|
|
38
|
+
global_opts.append(arg)
|
|
39
|
+
|
|
40
|
+
# Options with a value
|
|
41
|
+
if arg in {"--config", "--scheduler"}:
|
|
42
|
+
if i + 1 >= len(argv):
|
|
43
|
+
# Let click surface the error message (missing value)
|
|
44
|
+
break
|
|
45
|
+
global_opts.append(argv[i + 1])
|
|
46
|
+
i += 2
|
|
47
|
+
continue
|
|
48
|
+
|
|
49
|
+
# Flags with no value
|
|
50
|
+
i += 1
|
|
51
|
+
|
|
52
|
+
return global_opts, rest
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def main() -> None:
|
|
56
|
+
"""Console script for `submit`.
|
|
57
|
+
|
|
58
|
+
This is a convenience alias for `hpc run ...`, but keeps support for
|
|
59
|
+
top-level flags like `submit --config ...`.
|
|
60
|
+
"""
|
|
61
|
+
from hpc_runner.cli.main import cli
|
|
62
|
+
|
|
63
|
+
argv = sys.argv[1:]
|
|
64
|
+
|
|
65
|
+
# `submit --help` should show the run help (not just the group help)
|
|
66
|
+
if not argv or argv == ["--help"] or argv == ["-h"]:
|
|
67
|
+
cli.main(args=["run", "--help"], prog_name="submit")
|
|
68
|
+
return
|
|
69
|
+
|
|
70
|
+
global_opts, rest = _split_global_flags(argv)
|
|
71
|
+
cli.main(args=[*global_opts, "run", *rest], prog_name="submit")
|
|
72
|
+
|
hpc_runner/core/__init__.py
CHANGED
hpc_runner/core/config.py
CHANGED
|
@@ -78,33 +78,33 @@ def find_config_file() -> Path | None:
|
|
|
78
78
|
"""Find configuration file in priority order.
|
|
79
79
|
|
|
80
80
|
Search order:
|
|
81
|
-
1. ./hpc-
|
|
82
|
-
2. ./pyproject.toml [tool.hpc-
|
|
83
|
-
3. Git repository root hpc-
|
|
84
|
-
4. ~/.config/hpc-
|
|
81
|
+
1. ./hpc-runner.toml (current directory)
|
|
82
|
+
2. ./pyproject.toml [tool.hpc-runner] section
|
|
83
|
+
3. Git repository root hpc-runner.toml
|
|
84
|
+
4. ~/.config/hpc-runner/config.toml
|
|
85
85
|
5. Package defaults
|
|
86
86
|
"""
|
|
87
87
|
# Current directory
|
|
88
88
|
cwd = Path.cwd()
|
|
89
|
-
if (cwd / "hpc-
|
|
90
|
-
return cwd / "hpc-
|
|
89
|
+
if (cwd / "hpc-runner.toml").exists():
|
|
90
|
+
return cwd / "hpc-runner.toml"
|
|
91
91
|
|
|
92
92
|
if (cwd / "pyproject.toml").exists():
|
|
93
93
|
try:
|
|
94
94
|
with open(cwd / "pyproject.toml", "rb") as f:
|
|
95
95
|
pyproject = tomllib.load(f)
|
|
96
|
-
if "tool" in pyproject and "hpc-
|
|
96
|
+
if "tool" in pyproject and "hpc-runner" in pyproject["tool"]:
|
|
97
97
|
return cwd / "pyproject.toml"
|
|
98
98
|
except Exception:
|
|
99
99
|
pass
|
|
100
100
|
|
|
101
101
|
# Git root
|
|
102
102
|
git_root = _find_git_root(cwd)
|
|
103
|
-
if git_root and (git_root / "hpc-
|
|
104
|
-
return git_root / "hpc-
|
|
103
|
+
if git_root and (git_root / "hpc-runner.toml").exists():
|
|
104
|
+
return git_root / "hpc-runner.toml"
|
|
105
105
|
|
|
106
106
|
# User config
|
|
107
|
-
user_config = Path.home() / ".config" / "hpc-
|
|
107
|
+
user_config = Path.home() / ".config" / "hpc-runner" / "config.toml"
|
|
108
108
|
if user_config.exists():
|
|
109
109
|
return user_config
|
|
110
110
|
|
|
@@ -145,7 +145,8 @@ def load_config(path: Path | str | None = None) -> HPCConfig:
|
|
|
145
145
|
|
|
146
146
|
# Handle pyproject.toml
|
|
147
147
|
if path.name == "pyproject.toml":
|
|
148
|
-
|
|
148
|
+
tool_section = data.get("tool", {})
|
|
149
|
+
data = tool_section.get("hpc-runner", {})
|
|
149
150
|
|
|
150
151
|
config = HPCConfig(
|
|
151
152
|
defaults=data.get("defaults", {}),
|
hpc_runner/core/exceptions.py
CHANGED
hpc_runner/core/job.py
CHANGED
|
@@ -123,6 +123,8 @@ class Job:
|
|
|
123
123
|
use_cwd: bool = True,
|
|
124
124
|
venv: str | None = None,
|
|
125
125
|
env_vars: dict[str, str] | None = None,
|
|
126
|
+
env_prepend: dict[str, str] | None = None,
|
|
127
|
+
env_append: dict[str, str] | None = None,
|
|
126
128
|
modules: list[str] | None = None,
|
|
127
129
|
modules_path: list[str] | None = None,
|
|
128
130
|
resources: ResourceSet | None = None,
|
|
@@ -161,6 +163,8 @@ class Job:
|
|
|
161
163
|
|
|
162
164
|
# Non-descriptor attributes
|
|
163
165
|
self.env_vars: dict[str, str] = env_vars or {}
|
|
166
|
+
self.env_prepend: dict[str, str] = env_prepend or {}
|
|
167
|
+
self.env_append: dict[str, str] = env_append or {}
|
|
164
168
|
self.modules: list[str] = modules or []
|
|
165
169
|
self.modules_path: list[str] = modules_path or []
|
|
166
170
|
self.resources: ResourceSet = resources or ResourceSet()
|
hpc_runner/core/types.py
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
|
-
# Generated by hpc-
|
|
2
|
+
# Generated by hpc-runner (local scheduler)
|
|
3
|
+
{% set lb = '{' %}
|
|
3
4
|
|
|
4
5
|
# Exit on error
|
|
5
6
|
set -e
|
|
@@ -18,6 +19,27 @@ set -e
|
|
|
18
19
|
{% endfor %}
|
|
19
20
|
{% endif %}
|
|
20
21
|
|
|
22
|
+
{% if job.env_prepend %}
|
|
23
|
+
# Prepend to environment variables
|
|
24
|
+
{% for key, value in job.env_prepend.items() %}
|
|
25
|
+
export {{ key }}="{{ value }}${{ lb }}{{ key }}:+:${{ key }}}"
|
|
26
|
+
{% endfor %}
|
|
27
|
+
{% endif %}
|
|
28
|
+
|
|
29
|
+
{% if job.env_append %}
|
|
30
|
+
# Append to environment variables
|
|
31
|
+
{% for key, value in job.env_append.items() %}
|
|
32
|
+
export {{ key }}="${{ lb }}{{ key }}:+${{ key }}:}{{ value }}"
|
|
33
|
+
{% endfor %}
|
|
34
|
+
{% endif %}
|
|
35
|
+
|
|
36
|
+
{% if job.env_vars %}
|
|
37
|
+
# Set custom environment variables
|
|
38
|
+
{% for key, value in job.env_vars.items() %}
|
|
39
|
+
export {{ key }}="{{ value }}"
|
|
40
|
+
{% endfor %}
|
|
41
|
+
{% endif %}
|
|
42
|
+
|
|
21
43
|
{% if job.workdir %}
|
|
22
44
|
# Change to working directory
|
|
23
45
|
cd {{ job.workdir }}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
|
-
# Generated by hpc-
|
|
2
|
+
# Generated by hpc-runner (SGE scheduler)
|
|
3
|
+
{% set lb = '{' %}
|
|
3
4
|
|
|
4
5
|
{% for directive in directives %}
|
|
5
6
|
{{ directive }}
|
|
@@ -51,6 +52,20 @@ unset {{ var }}
|
|
|
51
52
|
{% endfor %}
|
|
52
53
|
{% endif %}
|
|
53
54
|
|
|
55
|
+
{% if job.env_prepend %}
|
|
56
|
+
# Prepend to environment variables
|
|
57
|
+
{% for key, value in job.env_prepend.items() %}
|
|
58
|
+
export {{ key }}="{{ value }}${{ lb }}{{ key }}:+:${{ key }}}"
|
|
59
|
+
{% endfor %}
|
|
60
|
+
{% endif %}
|
|
61
|
+
|
|
62
|
+
{% if job.env_append %}
|
|
63
|
+
# Append to environment variables
|
|
64
|
+
{% for key, value in job.env_append.items() %}
|
|
65
|
+
export {{ key }}="${{ lb }}{{ key }}:+${{ key }}:}{{ value }}"
|
|
66
|
+
{% endfor %}
|
|
67
|
+
{% endif %}
|
|
68
|
+
|
|
54
69
|
{% if job.env_vars %}
|
|
55
70
|
# Set custom environment variables
|
|
56
71
|
{% for key, value in job.env_vars.items() %}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
|
-
# Generated by hpc-
|
|
2
|
+
# Generated by hpc-runner (SGE interactive job)
|
|
3
|
+
{% set lb = '{' %}
|
|
3
4
|
|
|
4
5
|
# Exit on error
|
|
5
6
|
set -e
|
|
@@ -47,6 +48,20 @@ unset {{ var }}
|
|
|
47
48
|
{% endfor %}
|
|
48
49
|
{% endif %}
|
|
49
50
|
|
|
51
|
+
{% if job.env_prepend %}
|
|
52
|
+
# Prepend to environment variables
|
|
53
|
+
{% for key, value in job.env_prepend.items() %}
|
|
54
|
+
export {{ key }}="{{ value }}${{ lb }}{{ key }}:+:${{ key }}}"
|
|
55
|
+
{% endfor %}
|
|
56
|
+
{% endif %}
|
|
57
|
+
|
|
58
|
+
{% if job.env_append %}
|
|
59
|
+
# Append to environment variables
|
|
60
|
+
{% for key, value in job.env_append.items() %}
|
|
61
|
+
export {{ key }}="${{ lb }}{{ key }}:+${{ key }}:}{{ value }}"
|
|
62
|
+
{% endfor %}
|
|
63
|
+
{% endif %}
|
|
64
|
+
|
|
50
65
|
{% if job.env_vars %}
|
|
51
66
|
# Set custom environment variables
|
|
52
67
|
{% for key, value in job.env_vars.items() %}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hpc-runner
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: Unified HPC job submission across multiple schedulers
|
|
5
5
|
Project-URL: Homepage, https://github.com/sjalloq/hpc-runner
|
|
6
6
|
Project-URL: Repository, https://github.com/sjalloq/hpc-runner
|
|
@@ -26,19 +26,25 @@ Requires-Dist: textual>=6.11
|
|
|
26
26
|
Requires-Dist: tomli>=2.0; python_version < '3.11'
|
|
27
27
|
Provides-Extra: all
|
|
28
28
|
Requires-Dist: build; extra == 'all'
|
|
29
|
+
Requires-Dist: furo>=2024.0.0; extra == 'all'
|
|
29
30
|
Requires-Dist: hatch-vcs; extra == 'all'
|
|
30
31
|
Requires-Dist: mypy; extra == 'all'
|
|
32
|
+
Requires-Dist: pytest-asyncio; extra == 'all'
|
|
31
33
|
Requires-Dist: pytest-cov; extra == 'all'
|
|
32
34
|
Requires-Dist: pytest>=7.0; extra == 'all'
|
|
33
35
|
Requires-Dist: ruff; extra == 'all'
|
|
36
|
+
Requires-Dist: sphinx>=7.0; extra == 'all'
|
|
34
37
|
Requires-Dist: twine; extra == 'all'
|
|
35
38
|
Provides-Extra: dev
|
|
36
39
|
Requires-Dist: build; extra == 'dev'
|
|
40
|
+
Requires-Dist: furo>=2024.0.0; extra == 'dev'
|
|
37
41
|
Requires-Dist: hatch-vcs; extra == 'dev'
|
|
38
42
|
Requires-Dist: mypy; extra == 'dev'
|
|
43
|
+
Requires-Dist: pytest-asyncio; extra == 'dev'
|
|
39
44
|
Requires-Dist: pytest-cov; extra == 'dev'
|
|
40
45
|
Requires-Dist: pytest>=7.0; extra == 'dev'
|
|
41
46
|
Requires-Dist: ruff; extra == 'dev'
|
|
47
|
+
Requires-Dist: sphinx>=7.0; extra == 'dev'
|
|
42
48
|
Requires-Dist: twine; extra == 'dev'
|
|
43
49
|
Description-Content-Type: text/markdown
|
|
44
50
|
|
|
@@ -173,10 +179,10 @@ p.wait()
|
|
|
173
179
|
hpc-runner uses TOML configuration files. Location priority:
|
|
174
180
|
|
|
175
181
|
1. `--config /path/to/config.toml`
|
|
176
|
-
2. `./hpc-
|
|
177
|
-
3. `./pyproject.toml` under `[tool.hpc-
|
|
178
|
-
4. Git repository root `hpc-
|
|
179
|
-
5. `~/.config/hpc-
|
|
182
|
+
2. `./hpc-runner.toml`
|
|
183
|
+
3. `./pyproject.toml` under `[tool.hpc-runner]`
|
|
184
|
+
4. Git repository root `hpc-runner.toml`
|
|
185
|
+
5. `~/.config/hpc-runner/config.toml`
|
|
180
186
|
6. Package defaults
|
|
181
187
|
|
|
182
188
|
### Example Configuration
|
|
@@ -275,11 +281,6 @@ ruff check src/hpc_runner
|
|
|
275
281
|
ruff format src/hpc_runner
|
|
276
282
|
```
|
|
277
283
|
|
|
278
|
-
## Documentation
|
|
279
|
-
|
|
280
|
-
- [Programmatic API Reference](docs/programmatic_api.md)
|
|
281
|
-
- [TUI Styling Guide](docs/TEXTUAL_STYLING_COOKBOOK.md)
|
|
282
|
-
|
|
283
284
|
## License
|
|
284
285
|
|
|
285
286
|
MIT License - see LICENSE file for details.
|
|
@@ -1,35 +1,36 @@
|
|
|
1
1
|
hpc_runner/__init__.py,sha256=1xnewzCt8FVqseOG5PRmLbiMz0I8V8_TrTyIjW0Q8_A,1414
|
|
2
|
-
hpc_runner/_version.py,sha256=
|
|
2
|
+
hpc_runner/_version.py,sha256=o3ZTescp-19Z9cvBGq9dQnbppljgzdUYUf98Nov0spY,704
|
|
3
3
|
hpc_runner/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
|
-
hpc_runner/cli/__init__.py,sha256=
|
|
4
|
+
hpc_runner/cli/__init__.py,sha256=qF_2phBjYZc_rHCyJeZevCvbOCfXQbLCwb-DY5mJNUo,26
|
|
5
5
|
hpc_runner/cli/cancel.py,sha256=8qRkPjlSGs6OGs7-_ilwpUlWpGQe7ch8aB_rEWiiLAI,901
|
|
6
|
-
hpc_runner/cli/config.py,sha256=
|
|
7
|
-
hpc_runner/cli/main.py,sha256=
|
|
6
|
+
hpc_runner/cli/config.py,sha256=i5dWu4bFjZw5y2EaKxJIsw2SUgEVLJ-zKh2jIRAdh90,3056
|
|
7
|
+
hpc_runner/cli/main.py,sha256=4BnIN3WfOyusa6TJJ555JJ9kyxaNqlT-KxvawX26x0o,2286
|
|
8
8
|
hpc_runner/cli/monitor.py,sha256=aqr39IqwEUz_eczDLMw1dyfs_Gz6mtqKM2eMHI80f4g,698
|
|
9
9
|
hpc_runner/cli/run.py,sha256=fGK0gwIiQdUl0i2aC5FnwSs9MmuKF6ZZFgg7pn2NitU,9646
|
|
10
10
|
hpc_runner/cli/status.py,sha256=LMKvfIiR2U-r8kZOLw1L1-Xfli0mCtX-sSqI6_gy0i0,1957
|
|
11
|
-
hpc_runner/
|
|
12
|
-
hpc_runner/core/
|
|
11
|
+
hpc_runner/cli/submit.py,sha256=PcSjcVOSxtGCQlUiH56KTfSL_gLt-k879e2ddB9vUCQ,1982
|
|
12
|
+
hpc_runner/core/__init__.py,sha256=dSAYl2aizg-ZpOdD5BfFqd_UWp_9KmVDpRTRzNTn2u8,644
|
|
13
|
+
hpc_runner/core/config.py,sha256=GRLNurLOmgJiBwHN_gCesBhQ1ntg2DIgjkC06d5nB_8,5231
|
|
13
14
|
hpc_runner/core/descriptors.py,sha256=xaoK3-YbVUcBdeumaY4JZ9noq-d5fqglIwZQqsWvYzU,3307
|
|
14
|
-
hpc_runner/core/exceptions.py,sha256=
|
|
15
|
-
hpc_runner/core/job.py,sha256=
|
|
15
|
+
hpc_runner/core/exceptions.py,sha256=i7DZoEMYl0MrsT9-6Z0ebrsP3YOLA_6B5THz0LgmNN8,891
|
|
16
|
+
hpc_runner/core/job.py,sha256=wR5rR6c32cZOFgOsn6fGx33FlgWz50RK4xCrjs21y18,11273
|
|
16
17
|
hpc_runner/core/job_array.py,sha256=7VHoZHRzN5JvzWZ_e5pAMeTrNB7-OZw06A8548oK8_c,1595
|
|
17
18
|
hpc_runner/core/job_info.py,sha256=QE4iHH3uqYp4KdvZmBtfFUUaZfmPLkrF6LtlK4RuSJM,2858
|
|
18
19
|
hpc_runner/core/resources.py,sha256=ng1biVsXgGy6AWG50I50aC4LWB1pd60qFLpj5FjIpQc,1275
|
|
19
20
|
hpc_runner/core/result.py,sha256=UGw6ZRmdGI4oVD5ENzrSK72Igx7QNo-OJX9hLVyldp8,4914
|
|
20
|
-
hpc_runner/core/types.py,sha256=
|
|
21
|
+
hpc_runner/core/types.py,sha256=CeLgPLO_ByzdX16UTUrxcgEbA77PKvQJx4x8yXdjNkM,252
|
|
21
22
|
hpc_runner/schedulers/__init__.py,sha256=v55_DYgiigiFjXJhI7_XFtvxHoyDFWOntWRB9-HWMrM,1623
|
|
22
23
|
hpc_runner/schedulers/base.py,sha256=vhugT9lFrSZb8BMDO_x-h4nSF2oLg2nOvd347g3qfUY,6223
|
|
23
24
|
hpc_runner/schedulers/detection.py,sha256=b5_qdyroMQsvIf_DYY_RDoje6ozKLA3RS-fWWNR9qUU,1467
|
|
24
25
|
hpc_runner/schedulers/local/__init__.py,sha256=bM0RT5SBxs7TsGDUeUi--Z_vlVt9dgokJcftX92VE58,147
|
|
25
26
|
hpc_runner/schedulers/local/scheduler.py,sha256=tTq_5uZEIYCjK3PmPjI_iBAPijwUlTmSaLNoy4_AB5c,13310
|
|
26
|
-
hpc_runner/schedulers/local/templates/job.sh.j2,sha256=
|
|
27
|
+
hpc_runner/schedulers/local/templates/job.sh.j2,sha256=HDXgj-1hOvSQmR1sBCtES-sqIdqkBDQzql-espxE4g4,1092
|
|
27
28
|
hpc_runner/schedulers/sge/__init__.py,sha256=aR_jJD-YA0HOYPaBwW_CEwi3PASXY2x9sOfmrj6-cjM,144
|
|
28
29
|
hpc_runner/schedulers/sge/args.py,sha256=LBRj4UUDJ5jR8tEoCVF4ivjEKjqDI6LMvFsFzTgtOwk,6553
|
|
29
30
|
hpc_runner/schedulers/sge/parser.py,sha256=P6bG7II2icqSrnzgxGanPITV12X1zMvWYV04L6RIH2c,8381
|
|
30
31
|
hpc_runner/schedulers/sge/scheduler.py,sha256=-vz58MQzaJD97TqE4KfrnR3drLhQgHy8bpjpNwpHt2s,31998
|
|
31
|
-
hpc_runner/schedulers/sge/templates/batch.sh.j2,sha256=
|
|
32
|
-
hpc_runner/schedulers/sge/templates/interactive.sh.j2,sha256=
|
|
32
|
+
hpc_runner/schedulers/sge/templates/batch.sh.j2,sha256=fqfMIi5bPdkxGARWffYQCTITQczIELAuhXzQ_tYI4d0,2107
|
|
33
|
+
hpc_runner/schedulers/sge/templates/interactive.sh.j2,sha256=hOZzLoJMosbgKRFT0CfTdhW8pS6Q-h74zKdLHoSzY5s,2033
|
|
33
34
|
hpc_runner/templates/__init__.py,sha256=kiaaYBS4QXfGie83SS0rfmZtlbyRUkGkR_yw04oExNQ,137
|
|
34
35
|
hpc_runner/templates/engine.py,sha256=XDW9C51rz9O2rcB3mpjVHQ0qkeG4386gXa8fwaDYsxs,1393
|
|
35
36
|
hpc_runner/tui/__init__.py,sha256=xuet6Iz1ZL6Ys5h95DMcuiapZNo8QA-sFU3R0NflbgE,136
|
|
@@ -50,7 +51,7 @@ hpc_runner/tui/styles/monitor.tcss,sha256=-XJ_mF02AlaEuX81N6tkYKhKYDcBKYTDKXejJO
|
|
|
50
51
|
hpc_runner/workflow/__init__.py,sha256=Y5h7wfnlWcav_f2USZaP6r5m7I5KFam8eEJGo4UqJ0w,221
|
|
51
52
|
hpc_runner/workflow/dependency.py,sha256=PjhgCurnlfcKYO_arlUDLCKOpwqq324l09Sj0v-iwOU,639
|
|
52
53
|
hpc_runner/workflow/pipeline.py,sha256=MYV95Kp-5m2YVxYDk_zIYUsyt31ctl7jnVA10F2OJgg,5540
|
|
53
|
-
hpc_runner-0.2.
|
|
54
|
-
hpc_runner-0.2.
|
|
55
|
-
hpc_runner-0.2.
|
|
56
|
-
hpc_runner-0.2.
|
|
54
|
+
hpc_runner-0.2.2.dist-info/METADATA,sha256=_ZecSWdP7JpNPJQZKBxZm_NdQ3hN0dSByf1t9eF28mg,7157
|
|
55
|
+
hpc_runner-0.2.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
56
|
+
hpc_runner-0.2.2.dist-info/entry_points.txt,sha256=_IpvKqwtDP7R-jxj2p4D8ijKAIJp8eG9lmDZkVtrOkc,84
|
|
57
|
+
hpc_runner-0.2.2.dist-info/RECORD,,
|
|
File without changes
|