hpcflow-new2 0.2.0a189__py3-none-any.whl → 0.2.0a190__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.
- hpcflow/__pyinstaller/hook-hpcflow.py +8 -6
- hpcflow/_version.py +1 -1
- hpcflow/app.py +1 -0
- hpcflow/data/scripts/main_script_test_hdf5_in_obj.py +1 -1
- hpcflow/data/scripts/main_script_test_hdf5_out_obj.py +1 -1
- hpcflow/sdk/__init__.py +21 -15
- hpcflow/sdk/app.py +2133 -770
- hpcflow/sdk/cli.py +281 -250
- hpcflow/sdk/cli_common.py +6 -2
- hpcflow/sdk/config/__init__.py +1 -1
- hpcflow/sdk/config/callbacks.py +77 -42
- hpcflow/sdk/config/cli.py +126 -103
- hpcflow/sdk/config/config.py +578 -311
- hpcflow/sdk/config/config_file.py +131 -95
- hpcflow/sdk/config/errors.py +112 -85
- hpcflow/sdk/config/types.py +145 -0
- hpcflow/sdk/core/actions.py +1054 -994
- hpcflow/sdk/core/app_aware.py +24 -0
- hpcflow/sdk/core/cache.py +81 -63
- hpcflow/sdk/core/command_files.py +275 -185
- hpcflow/sdk/core/commands.py +111 -107
- hpcflow/sdk/core/element.py +724 -503
- hpcflow/sdk/core/enums.py +192 -0
- hpcflow/sdk/core/environment.py +74 -93
- hpcflow/sdk/core/errors.py +398 -51
- hpcflow/sdk/core/json_like.py +540 -272
- hpcflow/sdk/core/loop.py +380 -334
- hpcflow/sdk/core/loop_cache.py +160 -43
- hpcflow/sdk/core/object_list.py +370 -207
- hpcflow/sdk/core/parameters.py +728 -600
- hpcflow/sdk/core/rule.py +59 -41
- hpcflow/sdk/core/run_dir_files.py +33 -22
- hpcflow/sdk/core/task.py +1546 -1325
- hpcflow/sdk/core/task_schema.py +240 -196
- hpcflow/sdk/core/test_utils.py +126 -88
- hpcflow/sdk/core/types.py +387 -0
- hpcflow/sdk/core/utils.py +410 -305
- hpcflow/sdk/core/validation.py +82 -9
- hpcflow/sdk/core/workflow.py +1192 -1028
- hpcflow/sdk/core/zarr_io.py +98 -137
- hpcflow/sdk/demo/cli.py +46 -33
- hpcflow/sdk/helper/cli.py +18 -16
- hpcflow/sdk/helper/helper.py +75 -63
- hpcflow/sdk/helper/watcher.py +61 -28
- hpcflow/sdk/log.py +83 -59
- hpcflow/sdk/persistence/__init__.py +8 -31
- hpcflow/sdk/persistence/base.py +988 -586
- hpcflow/sdk/persistence/defaults.py +6 -0
- hpcflow/sdk/persistence/discovery.py +38 -0
- hpcflow/sdk/persistence/json.py +408 -153
- hpcflow/sdk/persistence/pending.py +158 -123
- hpcflow/sdk/persistence/store_resource.py +37 -22
- hpcflow/sdk/persistence/types.py +307 -0
- hpcflow/sdk/persistence/utils.py +14 -11
- hpcflow/sdk/persistence/zarr.py +477 -420
- hpcflow/sdk/runtime.py +44 -41
- hpcflow/sdk/submission/{jobscript_info.py → enums.py} +39 -12
- hpcflow/sdk/submission/jobscript.py +444 -404
- hpcflow/sdk/submission/schedulers/__init__.py +133 -40
- hpcflow/sdk/submission/schedulers/direct.py +97 -71
- hpcflow/sdk/submission/schedulers/sge.py +132 -126
- hpcflow/sdk/submission/schedulers/slurm.py +263 -268
- hpcflow/sdk/submission/schedulers/utils.py +7 -2
- hpcflow/sdk/submission/shells/__init__.py +14 -15
- hpcflow/sdk/submission/shells/base.py +102 -29
- hpcflow/sdk/submission/shells/bash.py +72 -55
- hpcflow/sdk/submission/shells/os_version.py +31 -30
- hpcflow/sdk/submission/shells/powershell.py +37 -29
- hpcflow/sdk/submission/submission.py +203 -257
- hpcflow/sdk/submission/types.py +143 -0
- hpcflow/sdk/typing.py +163 -12
- hpcflow/tests/conftest.py +8 -6
- hpcflow/tests/schedulers/slurm/test_slurm_submission.py +5 -2
- hpcflow/tests/scripts/test_main_scripts.py +60 -30
- hpcflow/tests/shells/wsl/test_wsl_submission.py +6 -4
- hpcflow/tests/unit/test_action.py +86 -75
- hpcflow/tests/unit/test_action_rule.py +9 -4
- hpcflow/tests/unit/test_app.py +13 -6
- hpcflow/tests/unit/test_cli.py +1 -1
- hpcflow/tests/unit/test_command.py +71 -54
- hpcflow/tests/unit/test_config.py +20 -15
- hpcflow/tests/unit/test_config_file.py +21 -18
- hpcflow/tests/unit/test_element.py +58 -62
- hpcflow/tests/unit/test_element_iteration.py +3 -1
- hpcflow/tests/unit/test_element_set.py +29 -19
- hpcflow/tests/unit/test_group.py +4 -2
- hpcflow/tests/unit/test_input_source.py +116 -93
- hpcflow/tests/unit/test_input_value.py +29 -24
- hpcflow/tests/unit/test_json_like.py +44 -35
- hpcflow/tests/unit/test_loop.py +65 -58
- hpcflow/tests/unit/test_object_list.py +17 -12
- hpcflow/tests/unit/test_parameter.py +16 -7
- hpcflow/tests/unit/test_persistence.py +48 -35
- hpcflow/tests/unit/test_resources.py +20 -18
- hpcflow/tests/unit/test_run.py +8 -3
- hpcflow/tests/unit/test_runtime.py +2 -1
- hpcflow/tests/unit/test_schema_input.py +23 -15
- hpcflow/tests/unit/test_shell.py +3 -2
- hpcflow/tests/unit/test_slurm.py +8 -7
- hpcflow/tests/unit/test_submission.py +39 -19
- hpcflow/tests/unit/test_task.py +352 -247
- hpcflow/tests/unit/test_task_schema.py +33 -20
- hpcflow/tests/unit/test_utils.py +9 -11
- hpcflow/tests/unit/test_value_sequence.py +15 -12
- hpcflow/tests/unit/test_workflow.py +114 -83
- hpcflow/tests/unit/test_workflow_template.py +0 -1
- hpcflow/tests/workflows/test_jobscript.py +2 -1
- hpcflow/tests/workflows/test_workflows.py +18 -13
- {hpcflow_new2-0.2.0a189.dist-info → hpcflow_new2-0.2.0a190.dist-info}/METADATA +2 -1
- hpcflow_new2-0.2.0a190.dist-info/RECORD +165 -0
- hpcflow/sdk/core/parallel.py +0 -21
- hpcflow_new2-0.2.0a189.dist-info/RECORD +0 -158
- {hpcflow_new2-0.2.0a189.dist-info → hpcflow_new2-0.2.0a190.dist-info}/LICENSE +0 -0
- {hpcflow_new2-0.2.0a189.dist-info → hpcflow_new2-0.2.0a190.dist-info}/WHEEL +0 -0
- {hpcflow_new2-0.2.0a189.dist-info → hpcflow_new2-0.2.0a190.dist-info}/entry_points.txt +0 -0
@@ -1,3 +1,6 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
from typing import TYPE_CHECKING
|
3
|
+
from typing_extensions import TypedDict
|
1
4
|
import pytest
|
2
5
|
|
3
6
|
from hpcflow.app import app as hf
|
@@ -7,61 +10,71 @@ from hpcflow.sdk.core.errors import (
|
|
7
10
|
)
|
8
11
|
from hpcflow.sdk.core.test_utils import make_actions, make_parameters
|
9
12
|
|
13
|
+
if TYPE_CHECKING:
|
14
|
+
from hpcflow.sdk.core.actions import Action, ActionEnvironment
|
15
|
+
from hpcflow.sdk.core.task import TaskObjective
|
16
|
+
|
10
17
|
|
11
18
|
@pytest.fixture
|
12
|
-
def act_env_1():
|
19
|
+
def act_env_1() -> ActionEnvironment:
|
13
20
|
return hf.ActionEnvironment("env_1")
|
14
21
|
|
15
22
|
|
16
23
|
@pytest.fixture
|
17
|
-
def action_a1(act_env_1):
|
24
|
+
def action_a1(act_env_1: ActionEnvironment) -> Action:
|
18
25
|
return hf.Action(commands=[hf.Command("ls")], environments=[act_env_1])
|
19
26
|
|
20
27
|
|
28
|
+
class SchemaKwargs(TypedDict):
|
29
|
+
objective: TaskObjective
|
30
|
+
actions: list[Action]
|
31
|
+
|
32
|
+
|
21
33
|
@pytest.fixture
|
22
|
-
def schema_s1_kwargs(action_a1):
|
34
|
+
def schema_s1_kwargs(action_a1: Action) -> SchemaKwargs:
|
23
35
|
return {"objective": hf.TaskObjective("t1"), "actions": [action_a1]}
|
24
36
|
|
25
37
|
|
26
|
-
def test_task_schema_equality():
|
38
|
+
def test_task_schema_equality() -> None:
|
27
39
|
t1a = hf.TaskSchema("t1", actions=[])
|
28
40
|
t1b = hf.TaskSchema("t1", actions=[])
|
29
41
|
assert t1a == t1b
|
30
42
|
|
31
43
|
|
32
|
-
def test_init_with_str_objective(action_a1):
|
44
|
+
def test_init_with_str_objective(action_a1: Action) -> None:
|
33
45
|
obj_str = "t1"
|
34
46
|
obj = hf.TaskObjective(obj_str)
|
35
|
-
|
36
|
-
|
47
|
+
assert hf.TaskSchema(obj_str, actions=[action_a1]) == hf.TaskSchema(
|
48
|
+
obj, actions=[action_a1]
|
49
|
+
)
|
37
50
|
|
38
51
|
|
39
|
-
def test_init_with_method_with_underscore(schema_s1_kwargs):
|
52
|
+
def test_init_with_method_with_underscore(schema_s1_kwargs) -> None:
|
40
53
|
hf.TaskSchema(method="my_method", **schema_s1_kwargs)
|
41
54
|
|
42
55
|
|
43
|
-
def test_raise_on_invalid_method_digit(schema_s1_kwargs):
|
56
|
+
def test_raise_on_invalid_method_digit(schema_s1_kwargs) -> None:
|
44
57
|
with pytest.raises(InvalidIdentifier):
|
45
58
|
hf.TaskSchema(method="9", **schema_s1_kwargs)
|
46
59
|
|
47
60
|
|
48
|
-
def test_raise_on_invalid_method_space(schema_s1_kwargs):
|
61
|
+
def test_raise_on_invalid_method_space(schema_s1_kwargs) -> None:
|
49
62
|
with pytest.raises(InvalidIdentifier):
|
50
63
|
hf.TaskSchema(method="my method", **schema_s1_kwargs)
|
51
64
|
|
52
65
|
|
53
|
-
def test_raise_on_invalid_method_non_alpha_numeric(schema_s1_kwargs):
|
66
|
+
def test_raise_on_invalid_method_non_alpha_numeric(schema_s1_kwargs) -> None:
|
54
67
|
with pytest.raises(InvalidIdentifier):
|
55
68
|
hf.TaskSchema(method="_mymethod", **schema_s1_kwargs)
|
56
69
|
|
57
70
|
|
58
|
-
def test_schema_action_validate():
|
71
|
+
def test_schema_action_validate() -> None:
|
59
72
|
p1, p2, p3, p4 = make_parameters(4)
|
60
73
|
act_1, act_2, act_3 = make_actions([("p1", "p5"), (("p2", "p5"), "p3"), ("p3", "p4")])
|
61
74
|
hf.TaskSchema("t1", actions=[act_1, act_2, act_3], inputs=[p1, p2], outputs=[p3, p4])
|
62
75
|
|
63
76
|
|
64
|
-
def test_schema_action_validate_raise_on_extra_schema_input():
|
77
|
+
def test_schema_action_validate_raise_on_extra_schema_input() -> None:
|
65
78
|
# assert raise ValueError
|
66
79
|
p1, p2, p3, p4 = make_parameters(4)
|
67
80
|
p7 = hf.Parameter("p7")
|
@@ -72,7 +85,7 @@ def test_schema_action_validate_raise_on_extra_schema_input():
|
|
72
85
|
)
|
73
86
|
|
74
87
|
|
75
|
-
def test_schema_action_validate_raise_on_extra_schema_output():
|
88
|
+
def test_schema_action_validate_raise_on_extra_schema_output() -> None:
|
76
89
|
p7 = hf.Parameter("p7")
|
77
90
|
p1, p2, p3, p4 = make_parameters(4)
|
78
91
|
act_1, act_2, act_3 = make_actions([("p1", "p5"), (("p2", "p5"), "p3"), ("p3", "p4")])
|
@@ -82,7 +95,7 @@ def test_schema_action_validate_raise_on_extra_schema_output():
|
|
82
95
|
)
|
83
96
|
|
84
97
|
|
85
|
-
def test_schema_action_validate_raise_on_extra_action_input():
|
98
|
+
def test_schema_action_validate_raise_on_extra_action_input() -> None:
|
86
99
|
p1, p2, p3, p4 = make_parameters(4)
|
87
100
|
act_1, act_2, act_3 = make_actions(
|
88
101
|
[(("p1", "p7"), "p5"), (("p2", "p5"), "p3"), ("p3", "p4")]
|
@@ -93,7 +106,7 @@ def test_schema_action_validate_raise_on_extra_action_input():
|
|
93
106
|
)
|
94
107
|
|
95
108
|
|
96
|
-
def test_schema_action_validate_raise_on_extra_action_output():
|
109
|
+
def test_schema_action_validate_raise_on_extra_action_output() -> None:
|
97
110
|
p1, p2, p3, p4 = make_parameters(4)
|
98
111
|
act_1, act_2, act_3 = make_actions(
|
99
112
|
[("p1", "p5"), (("p2", "p5"), "p3"), ("p3", "p4", "p7")]
|
@@ -104,7 +117,7 @@ def test_schema_action_validate_raise_on_extra_action_output():
|
|
104
117
|
)
|
105
118
|
|
106
119
|
|
107
|
-
def test_dot_access_object_list_raise_on_bad_access_attr_name():
|
120
|
+
def test_dot_access_object_list_raise_on_bad_access_attr_name() -> None:
|
108
121
|
"""Check we can't name a DotAccessObjectList item with a name that collides with a
|
109
122
|
method name."""
|
110
123
|
ts = hf.TaskSchema("add_object", actions=[])
|
@@ -112,7 +125,7 @@ def test_dot_access_object_list_raise_on_bad_access_attr_name():
|
|
112
125
|
hf.TaskSchemasList([ts])
|
113
126
|
|
114
127
|
|
115
|
-
def test_env_preset():
|
128
|
+
def test_env_preset() -> None:
|
116
129
|
p1, p2 = make_parameters(2)
|
117
130
|
(act_1,) = make_actions([("p1", "p2")], env="env1")
|
118
131
|
hf.TaskSchema(
|
@@ -124,7 +137,7 @@ def test_env_preset():
|
|
124
137
|
)
|
125
138
|
|
126
139
|
|
127
|
-
def test_env_preset_raise_bad_env():
|
140
|
+
def test_env_preset_raise_bad_env() -> None:
|
128
141
|
p1, p2 = make_parameters(2)
|
129
142
|
(act_1,) = make_actions([("p1", "p2")], env="env1")
|
130
143
|
with pytest.raises(EnvironmentPresetUnknownEnvironmentError):
|
@@ -137,7 +150,7 @@ def test_env_preset_raise_bad_env():
|
|
137
150
|
)
|
138
151
|
|
139
152
|
|
140
|
-
def test_env_preset_raise_bad_env_no_actions():
|
153
|
+
def test_env_preset_raise_bad_env_no_actions() -> None:
|
141
154
|
with pytest.raises(EnvironmentPresetUnknownEnvironmentError):
|
142
155
|
hf.TaskSchema(
|
143
156
|
"t1",
|
hpcflow/tests/unit/test_utils.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
from pathlib import Path
|
2
2
|
import pytest
|
3
|
-
import zarr
|
3
|
+
import zarr # type: ignore
|
4
4
|
import numpy as np
|
5
5
|
from numpy.typing import NDArray
|
6
6
|
from hpcflow.sdk.core.errors import InvalidIdentifier, MissingVariableSubstitutionError
|
@@ -185,7 +185,7 @@ def zarr_column_array(tmp_path: Path):
|
|
185
185
|
dtype=int,
|
186
186
|
fill_value=fill_value,
|
187
187
|
)
|
188
|
-
arr[:] = np.arange(np.
|
188
|
+
arr[:] = np.arange(np.prod(arr.shape)).reshape(arr.shape)
|
189
189
|
return arr, headers, fill_value
|
190
190
|
|
191
191
|
|
@@ -497,18 +497,13 @@ def test_substitute_string_vars_repeated_var():
|
|
497
497
|
)
|
498
498
|
|
499
499
|
|
500
|
-
def
|
501
|
-
assert (
|
502
|
-
substitute_string_vars(
|
503
|
-
"hello bob!",
|
504
|
-
)
|
505
|
-
== "hello bob!"
|
506
|
-
)
|
500
|
+
def test_substitute_string_vars_empty_vars():
|
501
|
+
assert substitute_string_vars("hello bob!", variables={}) == "hello bob!"
|
507
502
|
|
508
503
|
|
509
504
|
def test_substitute_string_vars_raise_no_vars():
|
510
505
|
with pytest.raises(MissingVariableSubstitutionError):
|
511
|
-
substitute_string_vars("hello <<var:my_name>>")
|
506
|
+
substitute_string_vars("hello <<var:my_name>>", variables={})
|
512
507
|
|
513
508
|
|
514
509
|
def test_substitute_string_vars_raise_missing():
|
@@ -521,7 +516,10 @@ def test_substitute_string_vars_non_str():
|
|
521
516
|
|
522
517
|
|
523
518
|
def test_substitute_string_vars_default_value():
|
524
|
-
assert
|
519
|
+
assert (
|
520
|
+
substitute_string_vars("hello <<var:my_name[default=bill]>>!", variables={})
|
521
|
+
== "hello bill!"
|
522
|
+
)
|
525
523
|
|
526
524
|
|
527
525
|
def test_substitute_string_vars_default_value_with_specified():
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import sys
|
2
2
|
import numpy as np
|
3
|
+
from pathlib import Path
|
3
4
|
import pytest
|
4
5
|
import requests
|
5
6
|
|
@@ -8,7 +9,7 @@ from hpcflow.sdk.core.test_utils import P1_parameter_cls as P1
|
|
8
9
|
|
9
10
|
|
10
11
|
@pytest.fixture
|
11
|
-
def null_config(tmp_path):
|
12
|
+
def null_config(tmp_path: Path):
|
12
13
|
if not hf.is_config_loaded:
|
13
14
|
hf.load_config(config_dir=tmp_path)
|
14
15
|
|
@@ -124,7 +125,9 @@ def test_resources_value_sequence_path_attributes():
|
|
124
125
|
|
125
126
|
|
126
127
|
@pytest.mark.parametrize("store", ["json", "zarr"])
|
127
|
-
def test_value_sequence_object_values_during_workflow_init(
|
128
|
+
def test_value_sequence_object_values_during_workflow_init(
|
129
|
+
null_config, tmp_path: Path, store: str
|
130
|
+
):
|
128
131
|
p1 = hf.Parameter("p1c")
|
129
132
|
s1 = hf.TaskSchema(objective="t1", inputs=[hf.SchemaInput(parameter=p1)])
|
130
133
|
obj = P1(a=101)
|
@@ -156,7 +159,7 @@ def test_value_sequence_object_values_during_workflow_init(null_config, tmp_path
|
|
156
159
|
|
157
160
|
@pytest.mark.parametrize("store", ["json", "zarr"])
|
158
161
|
def test_value_sequence_object_values_class_method_during_workflow_init(
|
159
|
-
null_config, tmp_path, store
|
162
|
+
null_config, tmp_path: Path, store: str
|
160
163
|
):
|
161
164
|
p1 = hf.Parameter("p1c")
|
162
165
|
s1 = hf.TaskSchema(objective="t1", inputs=[hf.SchemaInput(parameter=p1)])
|
@@ -189,7 +192,7 @@ def test_value_sequence_object_values_class_method_during_workflow_init(
|
|
189
192
|
|
190
193
|
@pytest.mark.parametrize("store", ["json", "zarr"])
|
191
194
|
def test_value_sequence_object_values_named_class_method_during_workflow_init(
|
192
|
-
null_config, tmp_path, store
|
195
|
+
null_config, tmp_path: Path, store: str
|
193
196
|
):
|
194
197
|
p1 = hf.Parameter("p1c")
|
195
198
|
s1 = hf.TaskSchema(objective="t1", inputs=[hf.SchemaInput(parameter=p1)])
|
@@ -222,7 +225,7 @@ def test_value_sequence_object_values_named_class_method_during_workflow_init(
|
|
222
225
|
assert wk.tasks[0].template.element_sets[0].sequences[0].values == values_exp
|
223
226
|
|
224
227
|
|
225
|
-
def test_nesting_order_two_seqs_parallel(null_config, tmp_path):
|
228
|
+
def test_nesting_order_two_seqs_parallel(null_config, tmp_path: Path):
|
226
229
|
ts = hf.TaskSchema(
|
227
230
|
objective="test", inputs=[hf.SchemaInput("p1"), hf.SchemaInput("p2")]
|
228
231
|
)
|
@@ -243,7 +246,7 @@ def test_nesting_order_two_seqs_parallel(null_config, tmp_path):
|
|
243
246
|
assert wk.tasks.test.elements[1].get("inputs") == {"p1": "b", "p2": "d"}
|
244
247
|
|
245
248
|
|
246
|
-
def test_nesting_order_two_seqs_parallel_decimal_equiv(null_config, tmp_path):
|
249
|
+
def test_nesting_order_two_seqs_parallel_decimal_equiv(null_config, tmp_path: Path):
|
247
250
|
ts = hf.TaskSchema(
|
248
251
|
objective="test", inputs=[hf.SchemaInput("p1"), hf.SchemaInput("p2")]
|
249
252
|
)
|
@@ -266,7 +269,7 @@ def test_nesting_order_two_seqs_parallel_decimal_equiv(null_config, tmp_path):
|
|
266
269
|
|
267
270
|
def test_nesting_order_two_seqs_nested(
|
268
271
|
null_config,
|
269
|
-
tmp_path,
|
272
|
+
tmp_path: Path,
|
270
273
|
):
|
271
274
|
ts = hf.TaskSchema(
|
272
275
|
objective="test", inputs=[hf.SchemaInput("p1"), hf.SchemaInput("p2")]
|
@@ -290,7 +293,7 @@ def test_nesting_order_two_seqs_nested(
|
|
290
293
|
assert wk.tasks.test.elements[3].get("inputs") == {"p1": "b", "p2": "d"}
|
291
294
|
|
292
295
|
|
293
|
-
def test_nesting_order_two_seqs_default_nesting_order(null_config, tmp_path):
|
296
|
+
def test_nesting_order_two_seqs_default_nesting_order(null_config, tmp_path: Path):
|
294
297
|
ts = hf.TaskSchema(
|
295
298
|
objective="test", inputs=[hf.SchemaInput("p1"), hf.SchemaInput("p2")]
|
296
299
|
)
|
@@ -311,7 +314,7 @@ def test_nesting_order_two_seqs_default_nesting_order(null_config, tmp_path):
|
|
311
314
|
assert wk.tasks.test.elements[1].get("inputs") == {"p1": "b", "p2": "d"}
|
312
315
|
|
313
316
|
|
314
|
-
def test_raise_nesting_order_two_seqs_default_nesting_order(null_config, tmp_path):
|
317
|
+
def test_raise_nesting_order_two_seqs_default_nesting_order(null_config, tmp_path: Path):
|
315
318
|
ts = hf.TaskSchema(
|
316
319
|
objective="test", inputs=[hf.SchemaInput("p1"), hf.SchemaInput("p2")]
|
317
320
|
)
|
@@ -331,7 +334,7 @@ def test_raise_nesting_order_two_seqs_default_nesting_order(null_config, tmp_pat
|
|
331
334
|
|
332
335
|
|
333
336
|
def test_raise_nesting_order_two_seqs_default_nesting_order_decimal(
|
334
|
-
null_config, tmp_path
|
337
|
+
null_config, tmp_path: Path
|
335
338
|
):
|
336
339
|
ts = hf.TaskSchema(
|
337
340
|
objective="test", inputs=[hf.SchemaInput("p1"), hf.SchemaInput("p2")]
|
@@ -351,7 +354,7 @@ def test_raise_nesting_order_two_seqs_default_nesting_order_decimal(
|
|
351
354
|
)
|
352
355
|
|
353
356
|
|
354
|
-
def test_nesting_order_three_seqs_decimal(null_config, tmp_path):
|
357
|
+
def test_nesting_order_three_seqs_decimal(null_config, tmp_path: Path):
|
355
358
|
ts = hf.TaskSchema(
|
356
359
|
objective="test",
|
357
360
|
inputs=[hf.SchemaInput("p1"), hf.SchemaInput("p2"), hf.SchemaInput("p3")],
|
@@ -380,7 +383,7 @@ def test_nesting_order_three_seqs_decimal(null_config, tmp_path):
|
|
380
383
|
assert wk.tasks.test.elements[5].get("inputs") == {"p1": "b", "p2": "e", "p3": "k"}
|
381
384
|
|
382
385
|
|
383
|
-
def test_nesting_order_three_seqs_all_decimal(null_config, tmp_path):
|
386
|
+
def test_nesting_order_three_seqs_all_decimal(null_config, tmp_path: Path):
|
384
387
|
ts = hf.TaskSchema(
|
385
388
|
objective="test",
|
386
389
|
inputs=[hf.SchemaInput("p1"), hf.SchemaInput("p2"), hf.SchemaInput("p3")],
|