experimaestro 1.11.1__py3-none-any.whl → 2.0.0a8__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.
Potentially problematic release.
This version of experimaestro might be problematic. Click here for more details.
- experimaestro/annotations.py +1 -1
- experimaestro/cli/__init__.py +10 -11
- experimaestro/cli/progress.py +269 -0
- experimaestro/connectors/__init__.py +2 -2
- experimaestro/core/arguments.py +20 -1
- experimaestro/core/identifier.py +21 -7
- experimaestro/core/objects/config.py +174 -274
- experimaestro/core/objects/config_walk.py +4 -6
- experimaestro/core/objects.pyi +2 -6
- experimaestro/core/serializers.py +1 -8
- experimaestro/core/types.py +35 -57
- experimaestro/launcherfinder/registry.py +3 -3
- experimaestro/mkdocs/base.py +6 -8
- experimaestro/notifications.py +12 -3
- experimaestro/progress.py +406 -0
- experimaestro/scheduler/__init__.py +18 -1
- experimaestro/scheduler/base.py +87 -906
- experimaestro/scheduler/experiment.py +387 -0
- experimaestro/scheduler/jobs.py +475 -0
- experimaestro/scheduler/signal_handler.py +32 -0
- experimaestro/scheduler/state.py +1 -1
- experimaestro/server/__init__.py +36 -5
- experimaestro/settings.py +4 -2
- experimaestro/tests/launchers/common.py +2 -2
- experimaestro/tests/restart.py +1 -1
- experimaestro/tests/tasks/all.py +7 -0
- experimaestro/tests/test_checkers.py +2 -2
- experimaestro/tests/test_dependencies.py +11 -17
- experimaestro/tests/test_experiment.py +3 -3
- experimaestro/tests/test_file_progress.py +425 -0
- experimaestro/tests/test_file_progress_integration.py +477 -0
- experimaestro/tests/test_generators.py +93 -0
- experimaestro/tests/test_identifier.py +155 -135
- experimaestro/tests/test_instance.py +13 -18
- experimaestro/tests/test_objects.py +9 -32
- experimaestro/tests/test_outputs.py +6 -6
- experimaestro/tests/test_param.py +14 -14
- experimaestro/tests/test_progress.py +4 -4
- experimaestro/tests/test_serializers.py +0 -59
- experimaestro/tests/test_tags.py +15 -15
- experimaestro/tests/test_tasks.py +42 -51
- experimaestro/tests/test_tokens.py +8 -6
- experimaestro/tests/test_types.py +10 -10
- experimaestro/tests/test_validation.py +19 -19
- experimaestro/tests/token_reschedule.py +1 -1
- experimaestro/tools/diff.py +8 -1
- experimaestro/typingutils.py +11 -2
- {experimaestro-1.11.1.dist-info → experimaestro-2.0.0a8.dist-info}/METADATA +3 -2
- {experimaestro-1.11.1.dist-info → experimaestro-2.0.0a8.dist-info}/RECORD +52 -44
- {experimaestro-1.11.1.dist-info → experimaestro-2.0.0a8.dist-info}/WHEEL +1 -1
- {experimaestro-1.11.1.dist-info → experimaestro-2.0.0a8.dist-info}/entry_points.txt +0 -0
- {experimaestro-1.11.1.dist-info → experimaestro-2.0.0a8.dist-info/licenses}/LICENSE +0 -0
|
@@ -26,17 +26,17 @@ def test_multiple_inheritance():
|
|
|
26
26
|
|
|
27
27
|
for C in (C1, C2):
|
|
28
28
|
logging.info("Testing %s", C)
|
|
29
|
-
ctype = C.
|
|
29
|
+
ctype = C.__getxpmtype__()
|
|
30
30
|
assert issubclass(C, A)
|
|
31
31
|
assert issubclass(C, B)
|
|
32
32
|
assert issubclass(C, B1)
|
|
33
33
|
|
|
34
|
-
assert ctype.
|
|
34
|
+
assert ctype.value_type == C.__getxpmtype__().value_type
|
|
35
35
|
|
|
36
|
-
assert issubclass(C.
|
|
37
|
-
assert issubclass(C.
|
|
38
|
-
assert issubclass(C.
|
|
39
|
-
assert not issubclass(C.
|
|
36
|
+
assert issubclass(C.__getxpmtype__().value_type, B1.__getxpmtype__().value_type)
|
|
37
|
+
assert issubclass(C.__getxpmtype__().value_type, B.__getxpmtype__().value_type)
|
|
38
|
+
assert issubclass(C.__getxpmtype__().value_type, A.__getxpmtype__().value_type)
|
|
39
|
+
assert not issubclass(C.__getxpmtype__().value_type, ConfigMixin)
|
|
40
40
|
|
|
41
41
|
|
|
42
42
|
def test_missing_hierarchy():
|
|
@@ -49,7 +49,7 @@ def test_missing_hierarchy():
|
|
|
49
49
|
class B(A1):
|
|
50
50
|
pass
|
|
51
51
|
|
|
52
|
-
B.
|
|
52
|
+
B.__getxpmtype__()
|
|
53
53
|
|
|
54
54
|
assert issubclass(B, A)
|
|
55
55
|
assert issubclass(B, A1)
|
|
@@ -59,7 +59,7 @@ def test_types_union():
|
|
|
59
59
|
class A(Config):
|
|
60
60
|
x: Param[Union[int, str]]
|
|
61
61
|
|
|
62
|
-
A(x=1)
|
|
63
|
-
A(x="hello")
|
|
62
|
+
A.C(x=1)
|
|
63
|
+
A.C(x="hello")
|
|
64
64
|
with pytest.raises(ValueError):
|
|
65
|
-
A(x=[])
|
|
65
|
+
A.C(x=[])
|
|
@@ -36,22 +36,22 @@ class C(Config):
|
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
def test_validation_simple():
|
|
39
|
-
expect_validate(A(value=1))
|
|
39
|
+
expect_validate(A.C(value=1))
|
|
40
40
|
|
|
41
41
|
|
|
42
42
|
def test_validation_missing():
|
|
43
|
-
expect_notvalidate(A())
|
|
43
|
+
expect_notvalidate(A.C())
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
def test_validation_simple_nested():
|
|
47
|
-
b = B()
|
|
48
|
-
b.a = A(value=1)
|
|
47
|
+
b = B.C()
|
|
48
|
+
b.a = A.C(value=1)
|
|
49
49
|
expect_validate(b)
|
|
50
50
|
|
|
51
51
|
|
|
52
52
|
def test_validation_missing_nested():
|
|
53
|
-
b = B()
|
|
54
|
-
b.a = A()
|
|
53
|
+
b = B.C()
|
|
54
|
+
b.a = A.C()
|
|
55
55
|
expect_notvalidate(b)
|
|
56
56
|
|
|
57
57
|
|
|
@@ -68,11 +68,11 @@ def test_validation_type():
|
|
|
68
68
|
__xpmid__ = valns.type.c
|
|
69
69
|
|
|
70
70
|
with pytest.raises(ValueError):
|
|
71
|
-
C(a=B())
|
|
71
|
+
C.C(a=B.C())
|
|
72
72
|
|
|
73
73
|
with pytest.raises(ValueError):
|
|
74
|
-
c = C()
|
|
75
|
-
c.a = B()
|
|
74
|
+
c = C.C()
|
|
75
|
+
c.a = B.C()
|
|
76
76
|
|
|
77
77
|
|
|
78
78
|
def test_validation_subtype():
|
|
@@ -86,7 +86,7 @@ def test_validation_subtype():
|
|
|
86
86
|
__xpmid__ = valns.subtype.b
|
|
87
87
|
a: Param[A]
|
|
88
88
|
|
|
89
|
-
expect_validate(B(a=A1()))
|
|
89
|
+
expect_validate(B.C(a=A1.C()))
|
|
90
90
|
|
|
91
91
|
|
|
92
92
|
def test_validation_path_generator():
|
|
@@ -96,7 +96,7 @@ def test_validation_path_generator():
|
|
|
96
96
|
__xpmid__ = valns.path.a
|
|
97
97
|
value: Meta[Path] = field(default_factory=PathGenerator("file.txt"))
|
|
98
98
|
|
|
99
|
-
a = A()
|
|
99
|
+
a = A.C()
|
|
100
100
|
a.__xpm__.validate()
|
|
101
101
|
with TemporaryExperiment("constant") as xp:
|
|
102
102
|
jobcontext = Job(a)
|
|
@@ -116,7 +116,7 @@ def test_validation_constant():
|
|
|
116
116
|
__xpmid__ = valns.constant.a
|
|
117
117
|
value: Constant[int] = 1
|
|
118
118
|
|
|
119
|
-
a = A()
|
|
119
|
+
a = A.C()
|
|
120
120
|
a.__xpm__.validate()
|
|
121
121
|
with TemporaryExperiment("constant"):
|
|
122
122
|
joba = Job(a)
|
|
@@ -133,7 +133,7 @@ class Child(Parent):
|
|
|
133
133
|
|
|
134
134
|
|
|
135
135
|
def test_validation_child():
|
|
136
|
-
expect_validate(Child(x=1))
|
|
136
|
+
expect_validate(Child.C(x=1))
|
|
137
137
|
|
|
138
138
|
|
|
139
139
|
# --- Path argument checks
|
|
@@ -144,7 +144,7 @@ class PathParent(Config):
|
|
|
144
144
|
|
|
145
145
|
|
|
146
146
|
def test_validation_path_option():
|
|
147
|
-
c = PathParent()
|
|
147
|
+
c = PathParent.C()
|
|
148
148
|
expect_validate(c)
|
|
149
149
|
|
|
150
150
|
|
|
@@ -157,7 +157,7 @@ def test_validation_seal():
|
|
|
157
157
|
class A(Config):
|
|
158
158
|
a: Param[int]
|
|
159
159
|
|
|
160
|
-
a = A(a=2)
|
|
160
|
+
a = A.C(a=2)
|
|
161
161
|
a.__xpm__.seal(EmptyContext())
|
|
162
162
|
|
|
163
163
|
with pytest.raises(AttributeError):
|
|
@@ -174,10 +174,10 @@ def test_validation_validation_enum():
|
|
|
174
174
|
class EnumConfig(Config):
|
|
175
175
|
a: Param[EnumParam]
|
|
176
176
|
|
|
177
|
-
expect_validate(EnumConfig(a=EnumParam.FIRST))
|
|
177
|
+
expect_validate(EnumConfig.C(a=EnumParam.FIRST))
|
|
178
178
|
|
|
179
179
|
try:
|
|
180
|
-
EnumConfig(a=1)
|
|
180
|
+
EnumConfig.C(a=1)
|
|
181
181
|
assert False, "Enum value should be rejected"
|
|
182
182
|
except AssertionError:
|
|
183
183
|
pass
|
|
@@ -199,7 +199,7 @@ class TaskConfigConsumer(Config):
|
|
|
199
199
|
|
|
200
200
|
|
|
201
201
|
def test_validation_taskargument():
|
|
202
|
-
x = taskconfig()
|
|
202
|
+
x = taskconfig.C()
|
|
203
203
|
with TemporaryExperiment("fake"):
|
|
204
204
|
x.submit(run_mode=RunMode.DRY_RUN)
|
|
205
|
-
expect_validate(TaskConfigConsumer(x=x))
|
|
205
|
+
expect_validate(TaskConfigConsumer.C(x=x))
|
|
@@ -31,7 +31,7 @@ if __name__ == "__main__":
|
|
|
31
31
|
logging.info("Reschedule with token [%s]: starting task in %s", x, workdir)
|
|
32
32
|
token = xp.workspace.connector.createtoken("test-token-reschedule", 1)
|
|
33
33
|
task = (
|
|
34
|
-
TokenTask(path=lockingpath, x=int(x))
|
|
34
|
+
TokenTask.C(path=lockingpath, x=int(x))
|
|
35
35
|
.add_dependencies(token.dependency(1))
|
|
36
36
|
.submit()
|
|
37
37
|
)
|
experimaestro/tools/diff.py
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import importlib
|
|
1
2
|
from itertools import chain
|
|
2
3
|
from typing import Dict, Any
|
|
3
4
|
from pathlib import Path
|
|
4
5
|
import json
|
|
6
|
+
from src.experimaestro.core.objects.config_utils import getqualattr
|
|
5
7
|
from termcolor import colored
|
|
6
8
|
|
|
7
9
|
|
|
@@ -42,6 +44,11 @@ def build_value(data, store: Store):
|
|
|
42
44
|
elif t == "path.serialized":
|
|
43
45
|
# Again, do not return anything (won't change the identifier)
|
|
44
46
|
return None
|
|
47
|
+
elif t == "enum":
|
|
48
|
+
module = importlib.import_module(data["module"])
|
|
49
|
+
enumClass = getqualattr(module, data["enum"])
|
|
50
|
+
return enumClass[data["value"]]
|
|
51
|
+
|
|
45
52
|
elif t is None:
|
|
46
53
|
return {key: build_value(value, store) for key, value in data.items()}
|
|
47
54
|
assert False, f"Data type {t} not handled"
|
|
@@ -71,7 +78,7 @@ def load(path: Path):
|
|
|
71
78
|
|
|
72
79
|
|
|
73
80
|
def print_diff(path: str, conf1: Any, conf2: Any):
|
|
74
|
-
if type(conf1)
|
|
81
|
+
if type(conf1) is not type(conf2):
|
|
75
82
|
print(f"[{colored(path, 'red')}] {conf1} and {conf2} of different types")
|
|
76
83
|
|
|
77
84
|
if isinstance(conf1, ObjectProxy) and isinstance(conf2, ObjectProxy):
|
experimaestro/typingutils.py
CHANGED
|
@@ -6,7 +6,16 @@ if sys.version_info.major == 3:
|
|
|
6
6
|
if sys.version_info.minor < 11:
|
|
7
7
|
from typing import _collect_type_vars as _collect_parameters
|
|
8
8
|
else:
|
|
9
|
-
|
|
9
|
+
|
|
10
|
+
def _collect_parameters(bases):
|
|
11
|
+
"""Collect type parameters from generic bases"""
|
|
12
|
+
parameters = []
|
|
13
|
+
for base in bases:
|
|
14
|
+
if hasattr(base, "__parameters__"):
|
|
15
|
+
parameters.extend(base.__parameters__)
|
|
16
|
+
return tuple(parameters)
|
|
17
|
+
|
|
18
|
+
# from typing import _collect_parameters
|
|
10
19
|
|
|
11
20
|
from typing import _AnnotatedAlias as AnnotatedAlias, get_args, get_origin
|
|
12
21
|
|
|
@@ -62,7 +71,7 @@ def get_type(typehint):
|
|
|
62
71
|
while True:
|
|
63
72
|
if t := get_optional(typehint):
|
|
64
73
|
typehint = t
|
|
65
|
-
if
|
|
74
|
+
if is_annotated(typehint):
|
|
66
75
|
typehint = get_args(typehint)[0]
|
|
67
76
|
else:
|
|
68
77
|
break
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: experimaestro
|
|
3
|
-
Version:
|
|
3
|
+
Version: 2.0.0a8
|
|
4
4
|
Summary: "Experimaestro is a computer science experiment manager"
|
|
5
5
|
License: GPL-3
|
|
6
|
+
License-File: LICENSE
|
|
6
7
|
Keywords: experiment manager
|
|
7
8
|
Author: Benjamin Piwowarski
|
|
8
9
|
Author-email: benjamin@piwowarski.fr
|
|
@@ -1,29 +1,30 @@
|
|
|
1
1
|
experimaestro/__init__.py,sha256=XCSuw7ozZZxL9ugnkIhqAaG7CQ6dE9NeSiDJ93QFH_I,1649
|
|
2
2
|
experimaestro/__main__.py,sha256=Dv9lFl03yt1dswd0Xb9NIJRgHpA5_IwH4RfQPEHyFz0,158
|
|
3
|
-
experimaestro/annotations.py,sha256=
|
|
3
|
+
experimaestro/annotations.py,sha256=1QhKA247w50KmhsxvFBnDe6BRc7_EIMMq0GT7LIaGv8,8774
|
|
4
4
|
experimaestro/checkers.py,sha256=ZCMbnE_GFC5compWjt-fuHhPImi9fCPjImF8Ow9NqK8,696
|
|
5
|
-
experimaestro/cli/__init__.py,sha256=
|
|
5
|
+
experimaestro/cli/__init__.py,sha256=bJ7lMdR45bTd-W-kw7CJicR-0qXwNzqUZ_EYfaHH3Oc,9537
|
|
6
6
|
experimaestro/cli/filter.py,sha256=bINAF-O7CwJ2u3T6xG_Q_niqDbPeoEASyYLuCeNlbFw,6313
|
|
7
7
|
experimaestro/cli/jobs.py,sha256=BnejUnhKAgMBVgwANfQYj5mLzknXVohveg7NpovNZ8o,7925
|
|
8
|
+
experimaestro/cli/progress.py,sha256=I6qhVe-vvqA1ym6XJE75q7Hb0jGeFwgodIqfhlTrPKY,8200
|
|
8
9
|
experimaestro/click.py,sha256=6BkeQHEgcxaxzq3xEvEEzwzuBj5-dkfrpOGikuA8L00,1377
|
|
9
10
|
experimaestro/commandline.py,sha256=MJIJcfppGCjNA8ozxXUzbUSeDOlTExuzhxryGx3_lIo,9314
|
|
10
11
|
experimaestro/compat.py,sha256=dQqE2ZNHLM2wtdfp7fBRYMfC33qNehVf9J6FGRBUQhs,171
|
|
11
|
-
experimaestro/connectors/__init__.py,sha256=
|
|
12
|
+
experimaestro/connectors/__init__.py,sha256=_8jETUTM3Ecdm8azNrxCSCXyXWso0mwDFnTrcNV3a4w,6129
|
|
12
13
|
experimaestro/connectors/local.py,sha256=lCGIubqmUJZ1glLtLRXOgakTMfEaEmFtNkEcw9qV5vw,6143
|
|
13
14
|
experimaestro/connectors/ssh.py,sha256=5giqvv1y0QQKF-GI0IFUzI_Z5H8Bj9EuL_Szpvk899Q,8600
|
|
14
15
|
experimaestro/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
|
-
experimaestro/core/arguments.py,sha256=
|
|
16
|
+
experimaestro/core/arguments.py,sha256=gB0Kq9XL0_mYbm9WHL-mDx2tUGHI1pvsu1ahMaDxIY0,7170
|
|
16
17
|
experimaestro/core/callbacks.py,sha256=59JfeUgWcCCdIQ3pvh-xNnoRp9BX8f4iOAkgm16wBzE,1660
|
|
17
18
|
experimaestro/core/context.py,sha256=1tLmX7WcgEKSbGw77vfziTzS8KNsoZJ02JBWMBCqqOk,2606
|
|
18
|
-
experimaestro/core/identifier.py,sha256=
|
|
19
|
+
experimaestro/core/identifier.py,sha256=GmS3HtfLwirjoaVx6cZvLJL4r4546P0FFUSu2Nt0W9g,10812
|
|
19
20
|
experimaestro/core/objects/__init__.py,sha256=ucJY5e17QQ1Kc-GYXeL7g8GFj8rP0XB4g2vrl32uhxY,721
|
|
20
|
-
experimaestro/core/objects/config.py,sha256=
|
|
21
|
+
experimaestro/core/objects/config.py,sha256=D6puZs3VH9GapoHhtgNawwjfQUxSH4E5v3V3sdwLZbg,53575
|
|
21
22
|
experimaestro/core/objects/config_utils.py,sha256=ZLECGkeIWdzunm8vwWsQhvcSgV1e064BgXbLiZnxSEM,1288
|
|
22
|
-
experimaestro/core/objects/config_walk.py,sha256=
|
|
23
|
-
experimaestro/core/objects.pyi,sha256=
|
|
23
|
+
experimaestro/core/objects/config_walk.py,sha256=SYBrGuT7HV12no9mQd1HjnebiyygHyO-zq_TO1brUtc,4233
|
|
24
|
+
experimaestro/core/objects.pyi,sha256=Q1tq4F8LrExPm00E-P5aaygxMvViYZqhHvByo_TTZRE,6315
|
|
24
25
|
experimaestro/core/serialization.py,sha256=CSPEwOzlDsgAz6V2og-TgyU0RXDtzt_nXaoXFZleDZE,5775
|
|
25
|
-
experimaestro/core/serializers.py,sha256=
|
|
26
|
-
experimaestro/core/types.py,sha256=
|
|
26
|
+
experimaestro/core/serializers.py,sha256=iOBuASEgD8dRKPnL16iOLBsM0GHChCJgjBd7LixFui4,919
|
|
27
|
+
experimaestro/core/types.py,sha256=aI-Qad27tkBFR5HyBCeeUwmZFIQif70__AR7enzpjvY,20938
|
|
27
28
|
experimaestro/core/utils.py,sha256=JfC3qGUS9b6FUHc2VxIYUI9ysNpXSQ1LjOBkjfZ8n7o,495
|
|
28
29
|
experimaestro/exceptions.py,sha256=cUy83WHM3GeynxmMk6QRr5xsnpqUAdAoc-m3KQVrE2o,44
|
|
29
30
|
experimaestro/experiments/__init__.py,sha256=GcpDUIbCvhnv6rxFdAp4wTffCVNTv-InY6fbQAlTy-o,159
|
|
@@ -35,7 +36,7 @@ experimaestro/ipc.py,sha256=Xn3tYME83jLEB0nFak3DwEIhpL5IRZpCl3jirBF_jl4,1570
|
|
|
35
36
|
experimaestro/launcherfinder/__init__.py,sha256=qRUDyv3B9UsAM8Q31mRrZrTZox0AptwdmOY4f2K-TUo,279
|
|
36
37
|
experimaestro/launcherfinder/base.py,sha256=q47SsF_cXdo5O6ZhFKn5385WVFcx8Wd-BcEpd6tRpbs,515
|
|
37
38
|
experimaestro/launcherfinder/parser.py,sha256=MIHhjs2sTVxLHLcc1CgFid9XxhInXker8QdA-GBA-Bk,2364
|
|
38
|
-
experimaestro/launcherfinder/registry.py,sha256=
|
|
39
|
+
experimaestro/launcherfinder/registry.py,sha256=qP2Y9mfxn7XvIBr4ot2zkyKw6sWhmgBxDDKU5Ty04FE,6417
|
|
39
40
|
experimaestro/launcherfinder/specs.py,sha256=eQC2pwAnvq7kF2xmAfHpg_Wx6_lH6YMf3ZCDwqatjKk,7898
|
|
40
41
|
experimaestro/launchers/__init__.py,sha256=lXn544sgJExr6uirILWzAXu_IfmfyqFZOt4OzRnjHXg,2525
|
|
41
42
|
experimaestro/launchers/direct.py,sha256=JZh6WOPnO6ED_xlOs8pL4MRFmnRhmXzpVxTl-ByaD2A,258
|
|
@@ -45,23 +46,27 @@ experimaestro/launchers/slurm/base.py,sha256=2CPNJeTNuwPOjqgmdkZ3MfdZbKQTIwlJtu_
|
|
|
45
46
|
experimaestro/locking.py,sha256=hPT-LuDGZTijpbme8O0kEoB9a3WjdVzI2h31OT44UxE,1477
|
|
46
47
|
experimaestro/mkdocs/__init__.py,sha256=L9UDM7vOrRZl41zXTBOaHKSINEEsbmxwjIMIGESmLfU,46
|
|
47
48
|
experimaestro/mkdocs/annotations.py,sha256=qpDw8lzrxpsOShXcpcP_LAeR3UhiIXAybG8UvS64-OU,263
|
|
48
|
-
experimaestro/mkdocs/base.py,sha256=
|
|
49
|
+
experimaestro/mkdocs/base.py,sha256=qHDZZFdoNRsW6RcjRB1WCSp2sOtRiBk9zFO1acK05BQ,16706
|
|
49
50
|
experimaestro/mkdocs/metaloader.py,sha256=qCqnTWhlgxql-oe46E8AbvYdoM311-lQh-msmPnbllQ,1481
|
|
50
51
|
experimaestro/mkdocs/style.css,sha256=42kJ6Ozq_n4Iw5UfJ4-nO1u-HN3ELvV7Vhvj1Xkn7rQ,66
|
|
51
52
|
experimaestro/mypy.py,sha256=M39VFuDrab-ymlCDIF5jys9oKpTwnuBPzb1T8Un5J3s,285
|
|
52
|
-
experimaestro/notifications.py,sha256=
|
|
53
|
+
experimaestro/notifications.py,sha256=30jPhTo8eU1Nd8RRYorswdlXZ99EuGs38Acg-6l9MyM,9643
|
|
54
|
+
experimaestro/progress.py,sha256=ABdgjCxdVreo6e--Pm1WgIjOWkmggloW2dJU-P5hCfk,14856
|
|
53
55
|
experimaestro/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
54
56
|
experimaestro/rpyc.py,sha256=ZRKol-3tVoeoUITLNFenLF4dhWBLW_FvSV_GvsypmeI,3605
|
|
55
57
|
experimaestro/run.py,sha256=_szMzKn-67ulT6Wy21dzhB1g6_fiL379JnBC0zJqpIY,5332
|
|
56
|
-
experimaestro/scheduler/__init__.py,sha256=
|
|
57
|
-
experimaestro/scheduler/base.py,sha256=
|
|
58
|
+
experimaestro/scheduler/__init__.py,sha256=HssbogPCuGpKGMPZQP07XCT2-uMFRPANuPM-duMIrq4,422
|
|
59
|
+
experimaestro/scheduler/base.py,sha256=Wq5hfryOvBrvGDpOgitdVQ2TkNYgrt-hHCU8Yey6J6M,10316
|
|
58
60
|
experimaestro/scheduler/dependencies.py,sha256=n9XegwrmjayOIxt3xhuTEBVEBGSq4oeVdzz-FviDGXo,1994
|
|
59
61
|
experimaestro/scheduler/dynamic_outputs.py,sha256=yYPL98I0nSgDjlE3Sk9dtvovh2PZ6rUDnKjDNnAg1dc,5732
|
|
62
|
+
experimaestro/scheduler/experiment.py,sha256=gO0S66AE8jDv_huaezra3odFqjNnuLLVmZVv-sorJ1A,13297
|
|
63
|
+
experimaestro/scheduler/jobs.py,sha256=tJFndvHW5-Padfw-KfU_ytO7l3xaXpjhqEOy9g7gFDs,15279
|
|
60
64
|
experimaestro/scheduler/services.py,sha256=aCKkNZMULlceabqf-kOs_-C7KPINnjU3Q-I00o5x6iY,2189
|
|
61
|
-
experimaestro/scheduler/
|
|
65
|
+
experimaestro/scheduler/signal_handler.py,sha256=B4ZeSVB8O41VDdFmV4n2cyBds7wKFG3kH2Fp7cpyxa4,872
|
|
66
|
+
experimaestro/scheduler/state.py,sha256=1ICn1K5gNMCEUb85vwwXLIUF6Lxqa5mbTgMzEz2pnXw,2367
|
|
62
67
|
experimaestro/scheduler/workspace.py,sha256=KNdxPBwUk7gO8h2utMCrlIVKB-f2Ylqg_IxLc4okp_8,2320
|
|
63
68
|
experimaestro/scriptbuilder.py,sha256=6GKUkgixLqSEy41sNr-_HNcrjKb8uxaoQ65DywRYsC0,5027
|
|
64
|
-
experimaestro/server/__init__.py,sha256=
|
|
69
|
+
experimaestro/server/__init__.py,sha256=V1NbTS7ByqI29t6ArGn5GJeDWQ9VYGQ81qCwFbpLGso,11810
|
|
65
70
|
experimaestro/server/data/0c35d18bf06992036b69.woff2,sha256=gmX2R4Y5fWuDLRygqv3xSa2E5ydZ__qfcnLpGg-wFdE,128352
|
|
66
71
|
experimaestro/server/data/1815e00441357e01619e.ttf,sha256=gIRDrmyCBDla3YVD2oqQpguTdvsPh-2OjqN9EJWW2AU,210792
|
|
67
72
|
experimaestro/server/data/219aa9140e099e6c72ed.woff2,sha256=0xv7gdVueQ4Nni-gC4Pfj3FZ-QYxFM3AFIWbHUg5Vsg,135984
|
|
@@ -86,7 +91,7 @@ experimaestro/server/data/index.js,sha256=q8oG4RM5rRjIGmI1szIrLTxigTHNkVUG1BuHbc
|
|
|
86
91
|
experimaestro/server/data/index.js.map,sha256=cv7KF28Uq5dy7Ux3yRnoSVztrOFVid359fm0Xn2IJ6s,3903046
|
|
87
92
|
experimaestro/server/data/login.html,sha256=4dvhSOn6DHp_tbmzqIKrqq2uAo0sAUbgLVD0lTnPp4s,511
|
|
88
93
|
experimaestro/server/data/manifest.json,sha256=EpzHQZzrGh9c1Kf63nrqvI33H1cm0nLYfdh5lDm8ijI,318
|
|
89
|
-
experimaestro/settings.py,sha256=
|
|
94
|
+
experimaestro/settings.py,sha256=j6iVV8bFn5VP-TopjtbSyX1wNgmfs3jzGeeAmaZzOPA,3172
|
|
90
95
|
experimaestro/sphinx/__init__.py,sha256=HAofa65lCLAUOShgWwJIGEEOPKzu4VEs5LZd46V_Bng,9466
|
|
91
96
|
experimaestro/sphinx/static/experimaestro.css,sha256=0rEgt1LoDdD-a_R5rVfWZ19zD1gR-1L7q3f4UibIB58,294
|
|
92
97
|
experimaestro/taskglobals.py,sha256=Lp0bqobVLndR7fOtF9qPI7utTKQXXwTdVN6l5Av9Dc4,660
|
|
@@ -103,46 +108,49 @@ experimaestro/tests/launchers/bin/sacct,sha256=9mmRAYCE4RBSBOf7aanhFw9hzujOUlcw3
|
|
|
103
108
|
experimaestro/tests/launchers/bin/sbatch,sha256=KgG4xUiIpELHBWLjnM7IUBu5jKiIGnILS9HfHE5eVFk,1715
|
|
104
109
|
experimaestro/tests/launchers/bin/srun,sha256=3oE3qq0UFpVtTvXfR1kH3tovFYX74fp1Fk-o8zgsaJA,47
|
|
105
110
|
experimaestro/tests/launchers/bin/test.py,sha256=MbxdAd2Sf7T-Hj3ldmrtngbQuBdNOkXjMcICJTf39wI,477
|
|
106
|
-
experimaestro/tests/launchers/common.py,sha256=
|
|
111
|
+
experimaestro/tests/launchers/common.py,sha256=WqVcWX3g0XYJS0aJO7XWVvOmncRBbQmGvuNxH9AHUAE,2998
|
|
107
112
|
experimaestro/tests/launchers/config_slurm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
108
113
|
experimaestro/tests/launchers/config_slurm/launchers.py,sha256=DohwQVv1eXWfDpAYFg7KJekEm7q7G-lMou2lPg-PKOk,838
|
|
109
114
|
experimaestro/tests/launchers/test_local.py,sha256=4oGgWH2YgkEm-Muu6s4cwlgriXtYr5xAd72DVoIw_Yk,717
|
|
110
115
|
experimaestro/tests/launchers/test_slurm.py,sha256=5s-mMtqvE62xJ_GijLd4Hmsu3vWCRCbFy7cPce8YKsM,2534
|
|
111
|
-
experimaestro/tests/restart.py,sha256=
|
|
116
|
+
experimaestro/tests/restart.py,sha256=aAizVLvw2DaNfIzuRB13iYXOoX1Q5NkgsngumERlo2s,4191
|
|
112
117
|
experimaestro/tests/restart_main.py,sha256=iAFzw0H1q9Aq7t6TrSAj236QBnYU52qx0VF-2dz6tx4,295
|
|
113
118
|
experimaestro/tests/scripts/notifyandwait.py,sha256=3BLXLI5XgP3BnKf6sQ56oKoMVqR80VMHmploJ3JO6Ko,407
|
|
114
119
|
experimaestro/tests/scripts/waitforfile.py,sha256=EDT-TuFi2fU_qt51K5EmAxjw_OnJKkBW7UCfhrtDbVw,120
|
|
115
120
|
experimaestro/tests/task_tokens.py,sha256=vgqUa-S_YC2Id9pGOSv40qFTwq1WGZkFhr556Z5o678,477
|
|
116
121
|
experimaestro/tests/tasks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
117
|
-
experimaestro/tests/tasks/all.py,sha256=
|
|
122
|
+
experimaestro/tests/tasks/all.py,sha256=2KF0D1CB2PBwM_aXX09Ug6vy0MUQgoTATdheNeNKXHg,2101
|
|
118
123
|
experimaestro/tests/tasks/foreign.py,sha256=uhXDOcWozkcm26ybbeEU9RElJpbhjC-zdzmlSKfPcdY,122
|
|
119
|
-
experimaestro/tests/test_checkers.py,sha256=
|
|
120
|
-
experimaestro/tests/test_dependencies.py,sha256=
|
|
121
|
-
experimaestro/tests/test_experiment.py,sha256=
|
|
124
|
+
experimaestro/tests/test_checkers.py,sha256=e6Rv2TlePRY__VXs0vUb6a5Aw_KIq_cs4N86VhnYHtw,407
|
|
125
|
+
experimaestro/tests/test_dependencies.py,sha256=LvpmMcfnRzQPzUIuFNCIQnJot8YBSxCA827xh9gYlq0,1890
|
|
126
|
+
experimaestro/tests/test_experiment.py,sha256=Nfevu_aMyX4c5xTjDHMeKXZWs2HMOhy96tsQlnF-IVs,1693
|
|
127
|
+
experimaestro/tests/test_file_progress.py,sha256=uNUUq-ptcnxu56zRvUUZ5EYM9ZIQbUmOU_LI0roMgSw,15119
|
|
128
|
+
experimaestro/tests/test_file_progress_integration.py,sha256=ejXASpdnpi6HUy569Q5Vx5F8SV_RDU-4o3yuQka6vS4,16751
|
|
122
129
|
experimaestro/tests/test_findlauncher.py,sha256=KPy8ow--NXS1KFCIpxrmEJFRvjo-v-PwlVHVyoVKLPg,3134
|
|
123
130
|
experimaestro/tests/test_forward.py,sha256=9y1zYm7hT_Lx5citxnK7n20cMZ2WJbsaEeY5irCZ9U4,735
|
|
124
|
-
experimaestro/tests/
|
|
125
|
-
experimaestro/tests/
|
|
126
|
-
experimaestro/tests/
|
|
127
|
-
experimaestro/tests/
|
|
128
|
-
experimaestro/tests/
|
|
129
|
-
experimaestro/tests/
|
|
130
|
-
experimaestro/tests/
|
|
131
|
+
experimaestro/tests/test_generators.py,sha256=R0UypTzxX0dPYvY4A_kozpLDHhGzQDNfLQyc0oRaSx8,2891
|
|
132
|
+
experimaestro/tests/test_identifier.py,sha256=0uv7lsgLLzKHLinlq2J9yj9UyKG6ud1EYtxIyeXbyhE,14368
|
|
133
|
+
experimaestro/tests/test_instance.py,sha256=VFRvjy1OXGtGgkh__mf73KmJq4Lom7ppvBDkhE7rjTA,1325
|
|
134
|
+
experimaestro/tests/test_objects.py,sha256=hGku35h1qkNMIdgP_gWM7HeviaqW7jrZDffOsCJh-_Q,1787
|
|
135
|
+
experimaestro/tests/test_outputs.py,sha256=vilnECNfc-cyzDZjTvCgCSMesC7QwWTfhJtlOyM9kIM,797
|
|
136
|
+
experimaestro/tests/test_param.py,sha256=OW3uguPjy9U6f9BrLr8z4ieo88EH6da2zMho-FVwmKQ,7324
|
|
137
|
+
experimaestro/tests/test_progress.py,sha256=j-V65Adk9psBzMcSzlH7uSqDiLkYDd3Udpy1UCT8j2Y,7588
|
|
138
|
+
experimaestro/tests/test_serializers.py,sha256=dQkiuvHAQ1g-SCRCfOy977nQMWR7CFuBUud65N_vfiI,1248
|
|
131
139
|
experimaestro/tests/test_snippets.py,sha256=rojnyDjtmAMnSuDUj6Bv9XEgdP8oQf2nVc132JF8vsM,3081
|
|
132
140
|
experimaestro/tests/test_ssh.py,sha256=KS1NWltiXrJBSStY9d4mwrexeqgNGWmhxuAU_WLQDAU,1449
|
|
133
|
-
experimaestro/tests/test_tags.py,sha256=
|
|
134
|
-
experimaestro/tests/test_tasks.py,sha256=
|
|
135
|
-
experimaestro/tests/test_tokens.py,sha256=
|
|
136
|
-
experimaestro/tests/test_types.py,sha256=
|
|
137
|
-
experimaestro/tests/test_validation.py,sha256=
|
|
138
|
-
experimaestro/tests/token_reschedule.py,sha256=
|
|
141
|
+
experimaestro/tests/test_tags.py,sha256=_FE0g1kCwrgy7AlLNmgYHol07lMk8Iyera60-gO2k-s,2886
|
|
142
|
+
experimaestro/tests/test_tasks.py,sha256=Lbo9hc3FGah8XTsMFQVfFFp4YqE3FtHNCrEuz43ZHOs,9016
|
|
143
|
+
experimaestro/tests/test_tokens.py,sha256=0PPVCBcYWzFqgCQEbJsNAZOIVZt4VVv2vu-W4sk0Ogg,7859
|
|
144
|
+
experimaestro/tests/test_types.py,sha256=Y76TvSv9euJqI6Zu14cnD8ldToWxts43yvGa7-HV2kA,1363
|
|
145
|
+
experimaestro/tests/test_validation.py,sha256=tinkXETcAGtgPIsmbioKSU00kGIV1YnniHTGDDcUOq8,4118
|
|
146
|
+
experimaestro/tests/token_reschedule.py,sha256=z7oVrFvRkUlBC3FMTr552ayeCt6DWTpx1j9Dk5YtPq8,1703
|
|
139
147
|
experimaestro/tests/utils.py,sha256=41krZFgUaCxCYBQPmo5dNFDd9W6RU8ZzzyzY3FyutUI,3805
|
|
140
148
|
experimaestro/tokens.py,sha256=ZnsDnfJgyAUgThv0c-ta28CrHre0gRyQF6q5FD9tCLY,15147
|
|
141
149
|
experimaestro/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
142
|
-
experimaestro/tools/diff.py,sha256=
|
|
150
|
+
experimaestro/tools/diff.py,sha256=4GWWXgpkotO6a7i6qG64oWPGm8Ej7eFCDNj0wjZ-G7s,3715
|
|
143
151
|
experimaestro/tools/documentation.py,sha256=O2UzjzodPqGot3YSe6NYlK7S42XpplakUdqxFpvjqHQ,9184
|
|
144
152
|
experimaestro/tools/jobs.py,sha256=63bXhJ7RGdczLU_nxu2skGn-9dwgr4r5pD23qH4WeBA,3516
|
|
145
|
-
experimaestro/typingutils.py,sha256=
|
|
153
|
+
experimaestro/typingutils.py,sha256=v7wS9xewF3cYOKvaBFxlTB-qplJ8olI1OaO3tAKiwIo,3678
|
|
146
154
|
experimaestro/utils/__init__.py,sha256=BdYguxAbR1jOQPV36OgGA31itaMvBJ6WVPV6b4Jn4xw,2434
|
|
147
155
|
experimaestro/utils/asyncio.py,sha256=9r_vFQs6T6tqmymC_DbHVFhY9YVRO6X48uEuyL_ugP8,726
|
|
148
156
|
experimaestro/utils/jobs.py,sha256=42FAdKcn_v_-M6hcQZPUBr9kbDt1eVsk3a4E8Gc4eu8,2394
|
|
@@ -151,8 +159,8 @@ experimaestro/utils/multiprocessing.py,sha256=am3DkHP_kmWbpynbck2c9QystCUtPBoSAC
|
|
|
151
159
|
experimaestro/utils/resources.py,sha256=j-nvsTFwmgENMoVGOD2Ap-UD3WU85WkI0IgeSszMCX4,1328
|
|
152
160
|
experimaestro/utils/settings.py,sha256=jpFMqF0DLL4_P1xGal0zVR5cOrdD8O0Y2IOYvnRgN3k,793
|
|
153
161
|
experimaestro/xpmutils.py,sha256=S21eMbDYsHfvmZ1HmKpq5Pz5O-1HnCLYxKbyTBbASyQ,638
|
|
154
|
-
experimaestro-
|
|
155
|
-
experimaestro-
|
|
156
|
-
experimaestro-
|
|
157
|
-
experimaestro-
|
|
158
|
-
experimaestro-
|
|
162
|
+
experimaestro-2.0.0a8.dist-info/METADATA,sha256=vZ4UCEkPrs1HE6gA8YUcTeyLyKgRz1-iGg9buRdX4D0,5712
|
|
163
|
+
experimaestro-2.0.0a8.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
|
|
164
|
+
experimaestro-2.0.0a8.dist-info/entry_points.txt,sha256=TppTNiz5qm5xm1fhAcdLKdCLMrlL-eQggtCrCI00D9c,446
|
|
165
|
+
experimaestro-2.0.0a8.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
166
|
+
experimaestro-2.0.0a8.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|