hpcflow-new2 0.2.0a162__py3-none-any.whl → 0.2.0a164__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.
Files changed (37) hide show
  1. hpcflow/_version.py +1 -1
  2. hpcflow/data/scripts/main_script_test_direct_in_direct_out_env_spec.py +7 -0
  3. hpcflow/sdk/app.py +29 -42
  4. hpcflow/sdk/cli.py +1 -1
  5. hpcflow/sdk/core/actions.py +87 -21
  6. hpcflow/sdk/core/command_files.py +6 -4
  7. hpcflow/sdk/core/commands.py +21 -2
  8. hpcflow/sdk/core/element.py +39 -8
  9. hpcflow/sdk/core/errors.py +16 -0
  10. hpcflow/sdk/core/object_list.py +26 -14
  11. hpcflow/sdk/core/parameters.py +21 -3
  12. hpcflow/sdk/core/task.py +111 -4
  13. hpcflow/sdk/core/task_schema.py +17 -2
  14. hpcflow/sdk/core/test_utils.py +5 -2
  15. hpcflow/sdk/core/workflow.py +93 -5
  16. hpcflow/sdk/data/workflow_spec_schema.yaml +14 -58
  17. hpcflow/sdk/demo/cli.py +1 -1
  18. hpcflow/sdk/persistence/base.py +6 -0
  19. hpcflow/sdk/persistence/zarr.py +2 -0
  20. hpcflow/sdk/submission/submission.py +21 -10
  21. hpcflow/tests/scripts/test_main_scripts.py +60 -0
  22. hpcflow/tests/unit/test_action.py +186 -0
  23. hpcflow/tests/unit/test_element.py +27 -25
  24. hpcflow/tests/unit/test_element_set.py +32 -0
  25. hpcflow/tests/unit/test_parameter.py +11 -9
  26. hpcflow/tests/unit/test_persistence.py +4 -1
  27. hpcflow/tests/unit/test_resources.py +7 -9
  28. hpcflow/tests/unit/test_schema_input.py +8 -8
  29. hpcflow/tests/unit/test_task.py +26 -27
  30. hpcflow/tests/unit/test_task_schema.py +39 -8
  31. hpcflow/tests/unit/test_value_sequence.py +5 -0
  32. hpcflow/tests/unit/test_workflow.py +4 -9
  33. hpcflow/tests/unit/test_workflow_template.py +122 -1
  34. {hpcflow_new2-0.2.0a162.dist-info → hpcflow_new2-0.2.0a164.dist-info}/METADATA +1 -1
  35. {hpcflow_new2-0.2.0a162.dist-info → hpcflow_new2-0.2.0a164.dist-info}/RECORD +37 -36
  36. {hpcflow_new2-0.2.0a162.dist-info → hpcflow_new2-0.2.0a164.dist-info}/WHEEL +0 -0
  37. {hpcflow_new2-0.2.0a162.dist-info → hpcflow_new2-0.2.0a164.dist-info}/entry_points.txt +0 -0
@@ -69,7 +69,7 @@ def test_element_inputs_removes_schema_param_trivial_label(null_config, tmp_path
69
69
  inputs=[hf.SchemaInput(parameter="p1", labels={label: {}})],
70
70
  actions=[
71
71
  hf.Action(
72
- environments=[hf.ActionEnvironment(environment=hf.envs.null_env)],
72
+ environments=[hf.ActionEnvironment("null_env")],
73
73
  commands=[hf.Command(command=f"echo <<parameter:p1[{label}]>>")],
74
74
  ),
75
75
  ],
@@ -118,7 +118,7 @@ def test_element_inputs_does_not_remove_multiple_schema_param_label(
118
118
  inputs=[hf.SchemaInput(parameter="p1", labels={label: {}}, multiple=True)],
119
119
  actions=[
120
120
  hf.Action(
121
- environments=[hf.ActionEnvironment(environment=hf.envs.null_env)],
121
+ environments=[hf.ActionEnvironment("null_env")],
122
122
  commands=[hf.Command(command=f"echo <<parameter:p1[{label}]>>")],
123
123
  ),
124
124
  ],
@@ -153,7 +153,7 @@ def test_get_input_values_for_multiple_schema_input_single_label(null_config, tm
153
153
  ],
154
154
  actions=[
155
155
  hf.Action(
156
- environments=[hf.ActionEnvironment(environment=hf.envs.null_env)],
156
+ environments=[hf.ActionEnvironment("null_env")],
157
157
  commands=[
158
158
  hf.Command(command=f"echo <<parameter:p1[{label}]>> <<parameter:p2>>")
159
159
  ],
@@ -180,7 +180,7 @@ def test_get_input_values_subset(null_config, tmp_path):
180
180
  ],
181
181
  actions=[
182
182
  hf.Action(
183
- environments=[hf.ActionEnvironment(environment=hf.envs.null_env)],
183
+ environments=[hf.ActionEnvironment("null_env")],
184
184
  commands=[hf.Command(command=f"echo <<parameter:p1>> <<parameter:p2>>")],
185
185
  ),
186
186
  ],
@@ -210,7 +210,7 @@ def test_get_input_values_subset_labelled_label_dict_False(null_config, tmp_path
210
210
  ],
211
211
  actions=[
212
212
  hf.Action(
213
- environments=[hf.ActionEnvironment(environment=hf.envs.null_env)],
213
+ environments=[hf.ActionEnvironment("null_env")],
214
214
  commands=[
215
215
  hf.Command(
216
216
  command=f"echo <<parameter:p1[one]>> <<parameter:p2[two]>>"
@@ -244,7 +244,7 @@ def test_get_input_values_subset_labelled_label_dict_True(null_config, tmp_path)
244
244
  ],
245
245
  actions=[
246
246
  hf.Action(
247
- environments=[hf.ActionEnvironment(environment=hf.envs.null_env)],
247
+ environments=[hf.ActionEnvironment("null_env")],
248
248
  commands=[
249
249
  hf.Command(
250
250
  command=f"echo <<parameter:p1[one]>> <<parameter:p2[two]>>"
@@ -276,7 +276,7 @@ def test_get_input_values_for_multiple_schema_input(null_config, tmp_path):
276
276
  ],
277
277
  actions=[
278
278
  hf.Action(
279
- environments=[hf.ActionEnvironment(environment=hf.envs.null_env)],
279
+ environments=[hf.ActionEnvironment("null_env")],
280
280
  commands=[
281
281
  hf.Command(command=f"echo <<parameter:p1[{label}]>> <<parameter:p2>>")
282
282
  ],
@@ -304,7 +304,7 @@ def test_get_input_values_for_multiple_schema_input_with_object(null_config, tmp
304
304
  ],
305
305
  actions=[
306
306
  hf.Action(
307
- environments=[hf.ActionEnvironment(environment=hf.envs.null_env)],
307
+ environments=[hf.ActionEnvironment("null_env")],
308
308
  commands=[
309
309
  hf.Command(
310
310
  command=f"echo <<parameter:p1c[{label}]>> <<parameter:p2>>"
@@ -11,6 +11,7 @@ from hpcflow.sdk.core.errors import (
11
11
  TaskTemplateMultipleInputValues,
12
12
  TaskTemplateMultipleSchemaObjectives,
13
13
  TaskTemplateUnexpectedInput,
14
+ UnknownEnvironmentPresetError,
14
15
  UnsetParameterDataError,
15
16
  )
16
17
  from hpcflow.sdk.core.parameters import NullDefault
@@ -113,13 +114,8 @@ def file_spec_fs1():
113
114
 
114
115
 
115
116
  @pytest.fixture
116
- def env_1():
117
- return hf.Environment(name="env_1")
118
-
119
-
120
- @pytest.fixture
121
- def act_env_1(env_1):
122
- return hf.ActionEnvironment(env_1)
117
+ def act_env_1():
118
+ return hf.ActionEnvironment("env_1")
123
119
 
124
120
 
125
121
  @pytest.fixture
@@ -146,13 +142,8 @@ def workflow_w4(null_config, tmp_path, schema_s3, param_p1):
146
142
 
147
143
 
148
144
  @pytest.fixture
149
- def env_1():
150
- return hf.Environment(name="env_1")
151
-
152
-
153
- @pytest.fixture
154
- def act_env_1(env_1):
155
- return hf.ActionEnvironment(env_1)
145
+ def act_env_1():
146
+ return hf.ActionEnvironment("env_1")
156
147
 
157
148
 
158
149
  @pytest.fixture
@@ -1512,13 +1503,8 @@ def test_add_task_before_no_ref(workflow_w0):
1512
1503
 
1513
1504
 
1514
1505
  @pytest.fixture
1515
- def env_1():
1516
- return hf.Environment(name="env_1")
1517
-
1518
-
1519
- @pytest.fixture
1520
- def act_env_1(env_1):
1521
- return hf.ActionEnvironment(env_1)
1506
+ def act_env_1():
1507
+ return hf.ActionEnvironment("env_1")
1522
1508
 
1523
1509
 
1524
1510
  def test_parameter_two_modifying_actions_expected_data_indices(
@@ -1572,7 +1558,7 @@ def test_conditional_shell_schema_single_initialised_action(null_config, tmp_pat
1572
1558
  outputs=[hf.SchemaInput("p2")],
1573
1559
  actions=[
1574
1560
  hf.Action(
1575
- environments=[hf.ActionEnvironment(environment=hf.envs.null_env)],
1561
+ environments=[hf.ActionEnvironment("null_env")],
1576
1562
  commands=[
1577
1563
  hf.Command(
1578
1564
  command="echo $((<<parameter:p1>> + 100))",
@@ -1582,7 +1568,7 @@ def test_conditional_shell_schema_single_initialised_action(null_config, tmp_pat
1582
1568
  rules=[rules["posix"]],
1583
1569
  ),
1584
1570
  hf.Action(
1585
- environments=[hf.ActionEnvironment(environment=hf.envs.null_env)],
1571
+ environments=[hf.ActionEnvironment("null_env")],
1586
1572
  commands=[
1587
1573
  hf.Command(
1588
1574
  command="Write-Output ((<<parameter:p1>> + 100))",
@@ -1617,7 +1603,7 @@ def test_element_iteration_EARs_initialised_on_make_workflow(
1617
1603
  outputs=[hf.SchemaInput("p2")],
1618
1604
  actions=[
1619
1605
  hf.Action(
1620
- environments=[hf.ActionEnvironment(environment=hf.envs.null_env)],
1606
+ environments=[hf.ActionEnvironment("null_env")],
1621
1607
  commands=[
1622
1608
  hf.Command(
1623
1609
  command="echo $((<<parameter:p1>> + 100))",
@@ -1670,7 +1656,7 @@ def test_element_iteration_EARs_not_initialised_on_make_workflow_due_to_unset(
1670
1656
  outputs=[hf.SchemaInput("p2")],
1671
1657
  actions=[
1672
1658
  hf.Action(
1673
- environments=[hf.ActionEnvironment(environment=hf.envs.null_env)],
1659
+ environments=[hf.ActionEnvironment("null_env")],
1674
1660
  commands=[
1675
1661
  hf.Command(
1676
1662
  command="echo $((<<parameter:p1>> + 100))",
@@ -1686,7 +1672,7 @@ def test_element_iteration_EARs_not_initialised_on_make_workflow_due_to_unset(
1686
1672
  outputs=[hf.SchemaInput("p3")],
1687
1673
  actions=[
1688
1674
  hf.Action(
1689
- environments=[hf.ActionEnvironment(environment=hf.envs.null_env)],
1675
+ environments=[hf.ActionEnvironment("null_env")],
1690
1676
  commands=[
1691
1677
  hf.Command(
1692
1678
  command="echo $((<<parameter:p2>> + 100))",
@@ -1729,7 +1715,7 @@ def test_element_iteration_EARs_initialised_on_make_workflow_with_no_valid_actio
1729
1715
  outputs=[hf.SchemaInput("p2")],
1730
1716
  actions=[
1731
1717
  hf.Action(
1732
- environments=[hf.ActionEnvironment(environment=hf.envs.null_env)],
1718
+ environments=[hf.ActionEnvironment("null_env")],
1733
1719
  commands=[
1734
1720
  hf.Command(
1735
1721
  command="some command that uses <<parameter:p1>>",
@@ -2177,3 +2163,16 @@ def test_labelled_input_values_specified_by_dict(null_config):
2177
2163
  )
2178
2164
  t2 = hf.Task(schema=ts, inputs={"p1[one]": 101})
2179
2165
  assert t1 == t2
2166
+
2167
+
2168
+ def test_raise_UnknownEnvironmentPresetError(null_config):
2169
+ ts = hf.TaskSchema(objective="t1")
2170
+ with pytest.raises(UnknownEnvironmentPresetError):
2171
+ hf.Task(schema=ts, env_preset="my_env_preset")
2172
+
2173
+
2174
+ def test_raise_UnknownEnvironmentPresetError_sequence(null_config):
2175
+ ts = hf.TaskSchema(objective="t1")
2176
+ seq = hf.ValueSequence(path="env_preset", values=["my_env_preset"])
2177
+ with pytest.raises(UnknownEnvironmentPresetError):
2178
+ hf.Task(schema=ts, sequences=[seq])
@@ -1,18 +1,16 @@
1
1
  import pytest
2
2
 
3
3
  from hpcflow.app import app as hf
4
- from hpcflow.sdk.core.errors import InvalidIdentifier
4
+ from hpcflow.sdk.core.errors import (
5
+ EnvironmentPresetUnknownEnvironmentError,
6
+ InvalidIdentifier,
7
+ )
5
8
  from hpcflow.sdk.core.test_utils import make_actions, make_parameters
6
9
 
7
10
 
8
11
  @pytest.fixture
9
- def env_1():
10
- return hf.Environment(name="env_1")
11
-
12
-
13
- @pytest.fixture
14
- def act_env_1(env_1):
15
- return hf.ActionEnvironment(env_1)
12
+ def act_env_1():
13
+ return hf.ActionEnvironment("env_1")
16
14
 
17
15
 
18
16
  @pytest.fixture
@@ -112,3 +110,36 @@ def test_dot_access_object_list_raise_on_bad_access_attr_name():
112
110
  ts = hf.TaskSchema("add_object", actions=[])
113
111
  with pytest.raises(ValueError):
114
112
  hf.TaskSchemasList([ts])
113
+
114
+
115
+ def test_env_preset():
116
+ p1, p2 = make_parameters(2)
117
+ (act_1,) = make_actions([("p1", "p2")], env="env1")
118
+ hf.TaskSchema(
119
+ "t1",
120
+ inputs=[p1],
121
+ outputs=[p2],
122
+ actions=[act_1],
123
+ environment_presets={"my_preset": {"env1": {"version": 1}}},
124
+ )
125
+
126
+
127
+ def test_env_preset_raise_bad_env():
128
+ p1, p2 = make_parameters(2)
129
+ (act_1,) = make_actions([("p1", "p2")], env="env1")
130
+ with pytest.raises(EnvironmentPresetUnknownEnvironmentError):
131
+ hf.TaskSchema(
132
+ "t1",
133
+ inputs=[p1],
134
+ outputs=[p2],
135
+ actions=[act_1],
136
+ environment_presets={"my_preset": {"env2": {"version": 1}}},
137
+ )
138
+
139
+
140
+ def test_env_preset_raise_bad_env_no_actions():
141
+ with pytest.raises(EnvironmentPresetUnknownEnvironmentError):
142
+ hf.TaskSchema(
143
+ "t1",
144
+ environment_presets={"my_preset": {"env1": {"version": 1}}},
145
+ )
@@ -442,3 +442,8 @@ def test_from_rectangle_coord_none(null_config):
442
442
  )
443
443
  seq = hf.ValueSequence.from_rectangle(**kwargs)
444
444
  assert np.allclose(seq.values, [[0, 1], [1, 1], [0, 0], [1, 0]])
445
+
446
+
447
+ def test_environments_sequence_to_resources(null_config):
448
+ seq = hf.ValueSequence(path="environments.my_env.version", values=[1, 2])
449
+ assert seq.path == "resources.any.environments.my_env.version"
@@ -93,13 +93,8 @@ def param_p3(null_config):
93
93
 
94
94
 
95
95
  @pytest.fixture
96
- def env_1(null_config):
97
- return hf.Environment(name="env_1")
98
-
99
-
100
- @pytest.fixture
101
- def act_env_1(null_config, env_1):
102
- return hf.ActionEnvironment(env_1)
96
+ def act_env_1(null_config):
97
+ return hf.ActionEnvironment("env_1")
103
98
 
104
99
 
105
100
  @pytest.fixture
@@ -161,7 +156,7 @@ def schema_s4(
161
156
  inputs=[hf.SchemaInput(parameter=param_p1)],
162
157
  actions=[
163
158
  hf.Action(
164
- environments=[hf.ActionEnvironment(environment=hf.envs.null_env)],
159
+ environments=[hf.ActionEnvironment("null_env")],
165
160
  commands=[hf.Command("Write-Output '<<parameter:p1>>'")],
166
161
  )
167
162
  ],
@@ -178,7 +173,7 @@ def schema_s4c(
178
173
  inputs=[hf.SchemaInput(parameter=param_p1c)],
179
174
  actions=[
180
175
  hf.Action(
181
- environments=[hf.ActionEnvironment(environment=hf.envs.null_env)],
176
+ environments=[hf.ActionEnvironment("null_env")],
182
177
  commands=[hf.Command("Write-Output '<<parameter:p1c>>'")],
183
178
  )
184
179
  ],
@@ -1,5 +1,9 @@
1
+ import pytest
1
2
  from hpcflow.app import app as hf
2
- from hpcflow.sdk.core.test_utils import make_test_data_YAML_workflow_template
3
+ from hpcflow.sdk.core.test_utils import (
4
+ make_schemas,
5
+ make_test_data_YAML_workflow_template,
6
+ )
3
7
 
4
8
 
5
9
  def test_merge_template_level_resources_into_element_set(null_config):
@@ -33,3 +37,120 @@ def test_workflow_template_vars(tmp_path, new_null_config):
33
37
  variables={"N": num_repeats},
34
38
  )
35
39
  assert wkt.tasks[0].element_sets[0].repeats[0]["number"] == num_repeats
40
+
41
+
42
+ def test_env_preset_merge_simple(null_config):
43
+ s1 = hf.TaskSchema(
44
+ objective="s1",
45
+ actions=[hf.Action(environments=[hf.ActionEnvironment("my_env")])],
46
+ environment_presets={"my_env_preset": {"my_env": {"version": 1}}},
47
+ )
48
+ wkt = hf.WorkflowTemplate(
49
+ name="test",
50
+ env_presets="my_env_preset",
51
+ tasks=[hf.Task(schema=s1)],
52
+ )
53
+ assert wkt.tasks[0].element_sets[0].env_preset == "my_env_preset"
54
+ assert wkt.tasks[0].element_sets[0].resources[0].environments == {
55
+ "my_env": {"version": 1}
56
+ }
57
+
58
+
59
+ def test_env_preset_merge_simple_list(null_config):
60
+ s1 = hf.TaskSchema(
61
+ objective="s1",
62
+ actions=[hf.Action(environments=[hf.ActionEnvironment("my_env")])],
63
+ environment_presets={"my_env_preset": {"my_env": {"version": 1}}},
64
+ )
65
+ wkt = hf.WorkflowTemplate(
66
+ name="test",
67
+ env_presets=["my_env_preset", "my_other_env_preset"],
68
+ tasks=[hf.Task(schema=s1)],
69
+ )
70
+ assert wkt.tasks[0].element_sets[0].env_preset == "my_env_preset"
71
+ assert wkt.tasks[0].element_sets[0].resources[0].environments == {
72
+ "my_env": {"version": 1}
73
+ }
74
+
75
+
76
+ def test_env_preset_no_merge_existing_env_preset(null_config):
77
+ s1 = hf.TaskSchema(
78
+ objective="s1",
79
+ actions=[hf.Action(environments=[hf.ActionEnvironment("my_env")])],
80
+ environment_presets={
81
+ "env_preset_1": {"my_env": {"version": 1}},
82
+ "env_preset_2": {"my_env": {"version": 2}},
83
+ },
84
+ )
85
+ wkt = hf.WorkflowTemplate(
86
+ name="test",
87
+ env_presets="env_preset_1",
88
+ tasks=[hf.Task(schema=s1, env_preset="env_preset_2")],
89
+ )
90
+ assert wkt.tasks[0].element_sets[0].env_preset == "env_preset_2"
91
+ assert wkt.tasks[0].element_sets[0].resources[0].environments == {
92
+ "my_env": {"version": 2}
93
+ }
94
+
95
+
96
+ def test_environments_merge_simple(null_config):
97
+ s1 = hf.TaskSchema(
98
+ objective="s1",
99
+ actions=[hf.Action(environments=[hf.ActionEnvironment("my_env")])],
100
+ )
101
+ wkt = hf.WorkflowTemplate(
102
+ name="test",
103
+ environments={"my_env": {"version": 1}, "my_other_env": {"version": 2}},
104
+ tasks=[hf.Task(schema=s1)],
105
+ )
106
+ assert wkt.tasks[0].element_sets[0].environments == {"my_env": {"version": 1}}
107
+ assert wkt.tasks[0].element_sets[0].resources[0].environments == {
108
+ "my_env": {"version": 1}
109
+ }
110
+
111
+
112
+ def test_environments_no_merge_existing_envs(null_config):
113
+ s1 = hf.TaskSchema(
114
+ objective="s1",
115
+ actions=[hf.Action(environments=[hf.ActionEnvironment("my_env")])],
116
+ )
117
+ wkt = hf.WorkflowTemplate(
118
+ name="test",
119
+ environments={"my_env": {"version": 1}, "my_other_env": {"version": 2}},
120
+ tasks=[hf.Task(schema=s1, environments={"my_env": {"version": 2}})],
121
+ )
122
+ assert wkt.tasks[0].element_sets[0].environments == {"my_env": {"version": 2}}
123
+ assert wkt.tasks[0].element_sets[0].resources[0].environments == {
124
+ "my_env": {"version": 2}
125
+ }
126
+
127
+
128
+ def test_raise_on_env_preset_and_environments(null_config):
129
+ with pytest.raises(ValueError):
130
+ wkt = hf.WorkflowTemplate(
131
+ name="test",
132
+ env_presets="my_env_preset",
133
+ environments={"my_env": {"version": 1}},
134
+ )
135
+
136
+
137
+ def test_default_env_preset_used_if_available(null_config):
138
+ """Test that if no env_presets or environments are specified at template-level or task
139
+ level, the default (named as an empty string) env preset is used if available."""
140
+
141
+ s1 = hf.TaskSchema(
142
+ objective="s1",
143
+ actions=[hf.Action(environments=[hf.ActionEnvironment("my_env")])],
144
+ environment_presets={
145
+ "": {"my_env": {"version": 1}},
146
+ "env_preset_1": {"my_env": {"version": 2}},
147
+ },
148
+ )
149
+ wkt = hf.WorkflowTemplate(
150
+ name="test",
151
+ tasks=[hf.Task(schema=s1)],
152
+ )
153
+ assert wkt.tasks[0].element_sets[0].env_preset == ""
154
+ assert wkt.tasks[0].element_sets[0].resources[0].environments == {
155
+ "my_env": {"version": 1}
156
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hpcflow-new2
3
- Version: 0.2.0a162
3
+ Version: 0.2.0a164
4
4
  Summary: Computational workflow management
5
5
  License: MIT
6
6
  Author: aplowman
@@ -1,7 +1,7 @@
1
1
  hpcflow/__init__.py,sha256=WIETuRHeOp2SqUqHUzpjQ-lk9acbYv-6aWOhZPRdlhs,64
2
2
  hpcflow/__pyinstaller/__init__.py,sha256=YOzBlPSck6slucv6lJM9K80JtsJWxXRL00cv6tRj3oc,98
3
3
  hpcflow/__pyinstaller/hook-hpcflow.py,sha256=SeMopsPkhCyd9gqIrzwFNRj3ZlkUlUYl-74QYz61mo4,1089
4
- hpcflow/_version.py,sha256=F6Hs8T_jFERXgHCaaDirBoJpTlltPgUsSSt4BxvexP8,26
4
+ hpcflow/_version.py,sha256=R9jeM3QgojiIsBflXpjJhqXm0gfjNECHSLEUIKEcqB4,26
5
5
  hpcflow/app.py,sha256=d-kgfnZNlqlCi2H8bK26714brD_u3ibN3FaEZgjF9aA,1332
6
6
  hpcflow/cli.py,sha256=G2J3D9v6MnMWOWMMWK6UEKLn_6wnV9lT_qygEBBxg-I,66
7
7
  hpcflow/data/demo_data_manifest/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -13,6 +13,7 @@ hpcflow/data/scripts/demo_task_1_parse_p3.py,sha256=s9t2wrnHBPnxFvEwQDmnAIyK0y1Z
13
13
  hpcflow/data/scripts/generate_t1_file_01.py,sha256=QtrtIC-lDZynzhIUxjJPTSAjLffSug-HMWEpnmNpHlI,168
14
14
  hpcflow/data/scripts/main_script_test_direct_in_direct_out.py,sha256=5zKBGKdkY1vPnu2-_rsENRqyJeiCKiH9IjBbAnmeLHg,123
15
15
  hpcflow/data/scripts/main_script_test_direct_in_direct_out_all_iters_test.py,sha256=p22arJAO3rMJjfEA7s0Acm0l0L_XDICJeMoNXpmk79A,463
16
+ hpcflow/data/scripts/main_script_test_direct_in_direct_out_env_spec.py,sha256=24ibLkkmUlb06mB_xRH0_wIXI-j8SVfsAphBzbtVWus,149
16
17
  hpcflow/data/scripts/main_script_test_direct_in_direct_out_labels.py,sha256=ORVsD5ZVzPUI42kqp2ndDNgYt0yGYc4DgyhNvZZToI0,175
17
18
  hpcflow/data/scripts/main_script_test_direct_sub_param_in_direct_out.py,sha256=pQ-BD1FmqTIHeCaAakCr1M61cWb1Fjinzr1qA3HX3ik,131
18
19
  hpcflow/data/scripts/main_script_test_hdf5_in_obj.py,sha256=ztL0mms6bmB-fuzRpW7bTFRar3fFHP_kIM0e4iX53As,233
@@ -34,8 +35,8 @@ hpcflow/data/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
34
35
  hpcflow/data/workflows/workflow_1.yaml,sha256=lF7Re2SVc_5gQk5AwB0gXaq-n-T5ia4su3zNQ9oMRV0,220
35
36
  hpcflow/examples.ipynb,sha256=cLKp4QsxwwMXRanDnfWY9kqsV23q6G4raOpu6IZXnMw,28553
36
37
  hpcflow/sdk/__init__.py,sha256=SdzVm7dydLv2kmr2tqrH14Gf1GEAEhsEuAuqiGBLHhM,5700
37
- hpcflow/sdk/app.py,sha256=7f7jR3eX9iVQ69YwPOoOmeJaAFmwJcj24UIVkshzHpA,95754
38
- hpcflow/sdk/cli.py,sha256=y6eRg36D_IzIljc9TMvmm69NqX2zZoKUnBufX9UbN1U,35025
38
+ hpcflow/sdk/app.py,sha256=DDIHHvXjjjpCbZ4HQXk7ByuvzUUPsDy7WxS_940bG48,95077
39
+ hpcflow/sdk/cli.py,sha256=uIzF2YEFQFxmJNFwZM_OZWpzgJK0BnqNY3zwa9sfVzM,35028
39
40
  hpcflow/sdk/cli_common.py,sha256=kDSIe90mxD37lQqvIXDyRauLtTRRnNueSljcRPF_w0M,4738
40
41
  hpcflow/sdk/config/__init__.py,sha256=qJrrxcAN4f1u_RyTtXgz-xlTLwNafE9v0VEMP1x6-bU,70
41
42
  hpcflow/sdk/config/callbacks.py,sha256=7z0rFX7ULUTAo24IJr6kLzPmZCgmkaQ8P5e-AfYTcY8,5339
@@ -44,25 +45,25 @@ hpcflow/sdk/config/config.py,sha256=7kUqTsU4-SDW99lWXaDZ-_s03J3SJubcVUjzYvO2Vho,
44
45
  hpcflow/sdk/config/config_file.py,sha256=JlMcprj0aujFVk8552ahP2f8EXB0tglMaHwzbcGZH6w,12373
45
46
  hpcflow/sdk/config/errors.py,sha256=2D7HJ1dbyeoD3xk4MuaGSsbJsUyQzyw8kaThEBZfP2I,6876
46
47
  hpcflow/sdk/core/__init__.py,sha256=GcIklEsXy3M5PWpmxyhd2KoI0u6HjXRIjD_aR1bgRjo,215
47
- hpcflow/sdk/core/actions.py,sha256=539vu9ts5u5Poah6-ZGOEANrb58NPEbhhoVlS7ajayE,74544
48
- hpcflow/sdk/core/command_files.py,sha256=mo7JzKko2WQ_DOFbJFyuvnnRN3pj1hiqPe7tRNSNDV4,18515
49
- hpcflow/sdk/core/commands.py,sha256=-Tiu7zVVwWr1xiTXVB9oH3E4g09ebRRtHSRrMdFDCRY,12060
50
- hpcflow/sdk/core/element.py,sha256=Ea3PHFs4RIAHUPQ_zblt2G0m2e__sH_0q3MnTWCWmW8,45704
48
+ hpcflow/sdk/core/actions.py,sha256=66CHgwYAB0oCR6oB5bNbBdUGRGTU3juS1XcMNjj3vP0,77068
49
+ hpcflow/sdk/core/command_files.py,sha256=GEFlgZv7g9lkFoNgwyDtmlI_90e2TWliCJuJimnJZts,18685
50
+ hpcflow/sdk/core/commands.py,sha256=5SKxSBuYz8sSvfpp9p5utBwMoQV6Pd2KlGBCpXAHDxE,12741
51
+ hpcflow/sdk/core/element.py,sha256=hTAR2kxfGSRf4vFgWwrnyuP5z5RnKYOd2X6c6Xd70zo,47048
51
52
  hpcflow/sdk/core/environment.py,sha256=DGUz1NvliKh6opP0IueGHD69rn_8wFLhDsq6kAmEgM4,4849
52
- hpcflow/sdk/core/errors.py,sha256=AaJWGyKUuHlAAP2LcVIg7D7aw2noL06G4OzP89sUcxU,8712
53
+ hpcflow/sdk/core/errors.py,sha256=yZnO9xuXFSfjI5lg6cepB38-VIytGdkzjW6mNEx3sh4,8962
53
54
  hpcflow/sdk/core/json_like.py,sha256=LRZsUd1tn8zXC8fESeiXs7Eko-VdnB8zcXiqixKVcZM,18874
54
55
  hpcflow/sdk/core/loop.py,sha256=5Ai_HHCzM21_IOvtgobE8yi_b9dc9jWQijt2LyI3PlM,21865
55
- hpcflow/sdk/core/object_list.py,sha256=bhJc-U4BpGDQMW4x0sQlVOlgNH2XIeVS4Re0u_x0l80,19866
56
+ hpcflow/sdk/core/object_list.py,sha256=HASx7AMniX82bTlROIgIvrjE_DupmwDgxfkfROmI3GA,20168
56
57
  hpcflow/sdk/core/parallel.py,sha256=LI-g-qOuOR1oaEUWVT0qW0hmiP9hsJyUP8_IfSTKYYo,95
57
- hpcflow/sdk/core/parameters.py,sha256=U4nh7rSZlafgq_zR1f6qn0qqBh5tSjNZ45Yp2gseb0Q,64086
58
+ hpcflow/sdk/core/parameters.py,sha256=ooJLzXjSFvKQANfDbGCTbs0IrgMyV-BiJ26d44Mswlk,64820
58
59
  hpcflow/sdk/core/rule.py,sha256=3jVsSZCBv4Odxy8QbSbKo9ZcRuU-5DRJoNK8adXCEpI,4567
59
60
  hpcflow/sdk/core/run_dir_files.py,sha256=_k-hA7dlry9GZw5ZXcntFcPGxg07p03hnHSM5S-2G2Y,2197
60
- hpcflow/sdk/core/task.py,sha256=jcYd6MfMPt0O2vH4Vo_rx4DL4dzNvVoq_ym61pL6GOc,108810
61
- hpcflow/sdk/core/task_schema.py,sha256=T94-3KIoMaAlQc0Z51zqGDO46n6CUfE1Mwkvf9GVtXQ,31452
62
- hpcflow/sdk/core/test_utils.py,sha256=9VwdOi4oPZ-fPXvLgJNRnRjLy2G4-We9lrOkbrzCVcQ,9334
61
+ hpcflow/sdk/core/task.py,sha256=_tOVRa533YED0d0P-4cynEjfwgvfrKwYC1fQUdqr2NU,113611
62
+ hpcflow/sdk/core/task_schema.py,sha256=TipXzC2guu9zilv0En-rHt6lUCTSIj5faI4lVWQdUbA,32346
63
+ hpcflow/sdk/core/test_utils.py,sha256=UKitv3qvZpSz8vE_HRaJjPDnaOeojy6WVntSskPs03Q,9354
63
64
  hpcflow/sdk/core/utils.py,sha256=pReOwnmuxJqexPUdaA8UMjJ4o8ucllBVVssWjb_LNQc,25651
64
65
  hpcflow/sdk/core/validation.py,sha256=KBKiy5DdfGiGmMaB0HdKTY0V972u5dJzvkYkX0_KtCo,518
65
- hpcflow/sdk/core/workflow.py,sha256=zKOVjsM5wyRqsFOSdT8R9qucCRhyukfJjXz66TTaaes,104467
66
+ hpcflow/sdk/core/workflow.py,sha256=Vat2IX6z0NKAlAmcmowDWuOyYm5wT-MTgob5e46d3XQ,108540
66
67
  hpcflow/sdk/core/zarr_io.py,sha256=V_Zm6uSiuaCbXyHFJUO74K1pAr4Zqrj3aLCBjohCwvs,5724
67
68
  hpcflow/sdk/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
69
  hpcflow/sdk/data/config_file_schema.yaml,sha256=7i3z_m3GBRtLyB4c7qPngnlQWqcIq1CyCcOysDyq4es,791
@@ -71,21 +72,21 @@ hpcflow/sdk/data/environments_spec_schema.yaml,sha256=567S6KYkAzeV4eyUCuSpUr8Lns
71
72
  hpcflow/sdk/data/files_spec_schema.yaml,sha256=yNA52Te-6p3a-TzWvrVx_0kEy7ZpJYhrLmgSbZ6UwH8,165
72
73
  hpcflow/sdk/data/parameters_spec_schema.yaml,sha256=Wj7CvG7Ul1nZDtBca-oxeFH_aSZkBSz4oQpnuM7VKls,148
73
74
  hpcflow/sdk/data/task_schema_spec_schema.yaml,sha256=6NROg7x-493bdvRwvY4M71R7POT-tNnmROkEsnnoL4k,93
74
- hpcflow/sdk/data/workflow_spec_schema.yaml,sha256=LLUV6RsdgT2BQrEPNKLCUB5Uijt9wxT9Bac2PLyGha8,1797
75
+ hpcflow/sdk/data/workflow_spec_schema.yaml,sha256=RjMALO0yAjVvnnp9KjzsSFPLkkRHztiuAHhYiXDGyWM,392
75
76
  hpcflow/sdk/demo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
- hpcflow/sdk/demo/cli.py,sha256=rKU-UqVkBRqGklhKQSFjG1MmBHVFsZChG6MPiFtu6Ls,5622
77
+ hpcflow/sdk/demo/cli.py,sha256=TDQjEI6a90Yq9J6TVoLh9PHzWPRdAAx24ci3MQYmo-4,5625
77
78
  hpcflow/sdk/helper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
78
79
  hpcflow/sdk/helper/cli.py,sha256=QPVvhXEtY3n87ua_6eBh-osaQeEBgG7g7kUR4jghqtI,3491
79
80
  hpcflow/sdk/helper/helper.py,sha256=MkjYKHox1F4XOpy-20sCCDUTWUbQY84QpWZkcpSq9n8,8143
80
81
  hpcflow/sdk/helper/watcher.py,sha256=hLqgwXtZw-6ihNUUcWYnZw8TCyD_AdhYE7abOrO2r_0,4003
81
82
  hpcflow/sdk/log.py,sha256=_DA5nNS8BoSIFB3d9nrIjbxNDxFflEaL3Ubkq8UYQK8,5735
82
83
  hpcflow/sdk/persistence/__init__.py,sha256=IzWycfiO6rDn_7Kocw4Df5ETe9BSoaqqxG7Yp4FW_ls,900
83
- hpcflow/sdk/persistence/base.py,sha256=K4Lp8HmybEGMxnthBV6a2h5KajiJL4gDawuiGukNHsY,60367
84
+ hpcflow/sdk/persistence/base.py,sha256=JNGFKsg7CEjAAyVUfRnSesHvutBLVlPDnrnKu0YB4bc,60605
84
85
  hpcflow/sdk/persistence/json.py,sha256=5_a73kUmukhNw1LR_evKPKcHo0YcbUzzAtYiS9lN07c,21416
85
86
  hpcflow/sdk/persistence/pending.py,sha256=4V4Xf760GV6JsCl95bm72z8Y78Gw8cbPiBiHZ031orU,24471
86
87
  hpcflow/sdk/persistence/store_resource.py,sha256=oEyocRqa8Uym-57UFosrwate-Xw9O7i2FM82TxHc4m0,4307
87
88
  hpcflow/sdk/persistence/utils.py,sha256=yQT6gS-Ipj2N6grtlV5d0czxxKE0CaeqAkXA1247XGo,1522
88
- hpcflow/sdk/persistence/zarr.py,sha256=V1ydOFf9qRWTHl6uEpemqxPi-EnTb5IYauUwmzdE-IA,45135
89
+ hpcflow/sdk/persistence/zarr.py,sha256=HJYghGZk4D7OfQ1NRWJqlZ1Poqoq9kWRi5kYipBiGYg,45207
89
90
  hpcflow/sdk/runtime.py,sha256=_in5ojiy9R8fD1ZNbdE6PDmZx6kSaiG9WPB6kVBFE7k,9217
90
91
  hpcflow/sdk/submission/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
91
92
  hpcflow/sdk/submission/jobscript.py,sha256=Z9NUzkIcmoFw-XAtG8FdLpO2LtMt3czk1v1BnbM1eZw,44678
@@ -100,7 +101,7 @@ hpcflow/sdk/submission/shells/base.py,sha256=AszYb14J7QMHlttRFdM9GJkzf6USERhfWJ1
100
101
  hpcflow/sdk/submission/shells/bash.py,sha256=gSVS45vdkLm9g9sCa9m21RHIiltVMjYDcdGEz-cF-YU,10903
101
102
  hpcflow/sdk/submission/shells/os_version.py,sha256=o185IsrF6JsBMr9bZU99ZrDguH342DeHWeclUuNrgeU,3182
102
103
  hpcflow/sdk/submission/shells/powershell.py,sha256=uXL5nfBgngtv3nyc9ECKWqzA2wdsxpCoaUGnZZt3VfI,9049
103
- hpcflow/sdk/submission/submission.py,sha256=DL0Rtf3ofEv1seDZC12SGLfmoj_9RjEQkc4GjSiY3bs,21165
104
+ hpcflow/sdk/submission/submission.py,sha256=EGqjxnyAc5MV4aCgo6m5YPZ-Jk4aA8mO8Gh-iOR7lFs,21790
104
105
  hpcflow/sdk/typing.py,sha256=p1duIXcWh5FRNZIGUjsTcnqjGDg2-nCpfNicrut-VPk,327
105
106
  hpcflow/tests/conftest.py,sha256=38FCWeZdwoGI1Nh1cHG9afp2K8HJQ4sUE_h3gE26Qe4,3479
106
107
  hpcflow/tests/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -112,42 +113,42 @@ hpcflow/tests/data/workflow_1_wsl.yaml,sha256=-n17Ab2-jj03weAeyYOfafrE0eKdPT0YMt
112
113
  hpcflow/tests/data/workflow_test_run_abort.yaml,sha256=K0-uOqL_H1ebgrk7ohrcLGcY_VRYw1F16YL_RIwd1PM,1277
113
114
  hpcflow/tests/schedulers/direct_linux/test_direct_linux_submission.py,sha256=pgHHG4iak0tx-1JTtpo8sCIvcZF2XayzEysjqWa_9LM,456
114
115
  hpcflow/tests/schedulers/slurm/test_slurm_submission.py,sha256=IpLq4TBwhK8_3KrvsySctIn4rA_1oyyWLFonzL28o4Q,403
115
- hpcflow/tests/scripts/test_main_scripts.py,sha256=scppeHIUFXhPWP08pALH0cxT4CMoRwGv_HlPkZcQA60,16801
116
+ hpcflow/tests/scripts/test_main_scripts.py,sha256=6mZvcppeFf9yL7XipYwHKxQvILKzCox4Wcpg2t1DWWc,18737
116
117
  hpcflow/tests/shells/wsl/test_wsl_submission.py,sha256=IrpvsxVfsQCUmS8KKn7w9DiVFR8z_ak_IWyAd1E0KKc,516
117
- hpcflow/tests/unit/test_action.py,sha256=HYscdTgbh_ExO2dk_Sapo4Cz8SirQtEz5B9uKFYohkw,19907
118
+ hpcflow/tests/unit/test_action.py,sha256=GDyx2ak6H-gvuHAG7-oia39crFcX1bGC3h2M7j8teOs,26334
118
119
  hpcflow/tests/unit/test_action_rule.py,sha256=vX7hMo_9AO5iUGWdDF8uP8rM4jghZidusiY4ZvNcEKo,556
119
120
  hpcflow/tests/unit/test_app.py,sha256=dujHPEpUMAHVWgA-TB0zeACMfmmMgFTDAJgX0Dd3qzQ,2967
120
121
  hpcflow/tests/unit/test_cli.py,sha256=9oQZOlX0z5LC4e2JFLuIgGnUXgmR2RCAtbXR5XRwqJs,288
121
122
  hpcflow/tests/unit/test_command.py,sha256=qf2z0wofxCisza90HMDlb81wsNhByXRAOPMfmRv6paA,22422
122
123
  hpcflow/tests/unit/test_config.py,sha256=yW_tCjCaReCud7Lv4-CLt8mZ7XoaGLGxjozJQoZYZ2c,2507
123
124
  hpcflow/tests/unit/test_config_file.py,sha256=eB1wJimxk7v4vYtwQ1kwPcExdjcN1q-rdsVOeYHN3dQ,4375
124
- hpcflow/tests/unit/test_element.py,sha256=nOfTeXzsF6Pi9PUgP3gYvip3Kj0WkOlh5rLyFSHSu1E,20418
125
+ hpcflow/tests/unit/test_element.py,sha256=JxqLigktPbdoZz6zV8iXiqPG7-vrdexUpzK5xdbWpzg,20526
125
126
  hpcflow/tests/unit/test_element_iteration.py,sha256=K0oxoDSSKy2JAcAhhE_l63M3u1cus1SsVc5LR2jLe0k,1292
126
- hpcflow/tests/unit/test_element_set.py,sha256=-aPBcHgubEMvI-lFfKatGm6jZqFfs8zQY9PFAW-Zw9o,2045
127
+ hpcflow/tests/unit/test_element_set.py,sha256=oAEU_owzp7xqpdR8K0vNdIeDiA6dOLiMM88WIKPtySI,3351
127
128
  hpcflow/tests/unit/test_input_source.py,sha256=QKAqIpMk-idbSvoWMhjFLroXzBtsWFL4yEG3Frkvq70,20467
128
129
  hpcflow/tests/unit/test_input_value.py,sha256=hHoe9rlCbfFvqqkAu4ylu95YVaAhinthXqTCUNEnSm8,5454
129
130
  hpcflow/tests/unit/test_json_like.py,sha256=aGCiGfT-tNiFu3yzW6d_T-oDc5QLwSUgq3pN3jFhyF0,29939
130
131
  hpcflow/tests/unit/test_loop.py,sha256=vBnCnoweiFIi2T68bu6PCQ4yH829pxK6Oe4Comg0bHo,21060
131
132
  hpcflow/tests/unit/test_object_list.py,sha256=nDpbRpCu4XqoYxKMr1_QmDS1s2_6nQOpIEBRHSAXoVg,3049
132
- hpcflow/tests/unit/test_parameter.py,sha256=rckhftwuJGBm5BSN-MuCBpaSD0-cUs6SBi-MppxLiwg,6056
133
- hpcflow/tests/unit/test_persistence.py,sha256=UEAaDamuOdmb3nJEJ2v3S23mFG8u_Nai2AED2Ydwv5U,8005
134
- hpcflow/tests/unit/test_resources.py,sha256=FycwRm34woa5H-UcmXzOHzCCnRmO1U6OWg5z_dk58ic,7896
133
+ hpcflow/tests/unit/test_parameter.py,sha256=g-4pZeIYW0GQyy2rL9JkKBpOC6p1PuGOiq4cbBIwzq0,6132
134
+ hpcflow/tests/unit/test_persistence.py,sha256=DPXFiuY2v8vj0zZ7299nf-KtgYT8LhHI52fq7UPoa6Y,8128
135
+ hpcflow/tests/unit/test_resources.py,sha256=2RRFIn5brKyD1UNmkmnvyjPZowa-dokQd0EuCEeo7so,7799
135
136
  hpcflow/tests/unit/test_run.py,sha256=uvG2BbVOD0JJAJCbdh0MMRJME8tVzOm7H4PTLzPLWZY,2613
136
137
  hpcflow/tests/unit/test_runtime.py,sha256=HjHPTS3UkX1LcwheFgpp4px_VlRis8KAE2HoeqxRbA8,322
137
- hpcflow/tests/unit/test_schema_input.py,sha256=spkTtvNuheh-y29Tsx7YRX6y3dV80vXx0hcg0jVfMp4,12084
138
+ hpcflow/tests/unit/test_schema_input.py,sha256=738tJjEzBcQ8Z_YTcybVBW7Twy_hXmbPWDO45c2Xun8,11940
138
139
  hpcflow/tests/unit/test_shell.py,sha256=FDtQ9fHRhSKiVtxMJ8BRisoeSvvk8zmJndTB4LlhqGc,3442
139
140
  hpcflow/tests/unit/test_slurm.py,sha256=ewfNuXXUEEelAxcd7MBbAQ-RCvU8xBenHTAyfXYF-R0,1064
140
141
  hpcflow/tests/unit/test_submission.py,sha256=kQ3ksjGlfp47AYuwTA27RDX2XxRU3YxKlKC1ACTbXw8,16682
141
- hpcflow/tests/unit/test_task.py,sha256=94TwyjlhKMRRXTQjys2a1PiK7A-rCzhnvrkk4vRz39I,70000
142
- hpcflow/tests/unit/test_task_schema.py,sha256=7a7o42gQhrZPMXfH0a6sGzFCJnuFrbDEl9u3u_bFsgw,3624
142
+ hpcflow/tests/unit/test_task.py,sha256=KveejJ6U9fFzMf4Z8mfcOatfyXKQG4fmQ5FCpDqlLco,70195
143
+ hpcflow/tests/unit/test_task_schema.py,sha256=j5HHxoqq4Mb223jKcusgX-C6-TsmKG0PLjYQ4M01ZHo,4531
143
144
  hpcflow/tests/unit/test_utils.py,sha256=JMhSRZFqmI9ZhREJet9en_y3aRVlQlWE7OKpkdt8SVI,14172
144
- hpcflow/tests/unit/test_value_sequence.py,sha256=mEU_e5Bu0GzRjBGIgPbcu1MOcafd2bBn6Gz2b02U7jA,15258
145
- hpcflow/tests/unit/test_workflow.py,sha256=-zLw-vytXbD9vEGrAQ9ZYLuNqVdxSe9OG0LgSoneTiU,22855
146
- hpcflow/tests/unit/test_workflow_template.py,sha256=EItRqUyXpU2z_z1rvpRqa848YOkXiBRLMj3oF_m7Ybw,1328
145
+ hpcflow/tests/unit/test_value_sequence.py,sha256=Xv121bLTnrLpdhmwoJ_yJvXoJ3L-iOWEQBTl9V_aMio,15463
146
+ hpcflow/tests/unit/test_workflow.py,sha256=Eyr9BhnsFisAPotEAeYrAvxXT1d2i6oshEh1_OxgnSc,22732
147
+ hpcflow/tests/unit/test_workflow_template.py,sha256=fF7LNveMwCledgncNCRfD9Nd9dL9tSPtlAAOKV3ovAU,5396
147
148
  hpcflow/tests/workflows/test_jobscript.py,sha256=9sp1o0g72JZbv2QlOl5v7wCZEFjotxiIKGNUxVaFgaA,724
148
149
  hpcflow/tests/workflows/test_workflows.py,sha256=xai6FRtGqG4lStJk6KmsqPUSuvqs9FrsBOxMVALshIs,13400
149
150
  hpcflow/viz_demo.ipynb,sha256=1QdnVsk72vihv2L6hOGyk318uEa22ZSgGxQCa7hW2oo,6238
150
- hpcflow_new2-0.2.0a162.dist-info/METADATA,sha256=TlloOGkT8R0Pn-Ss1OUHKTVNajM0euAbZ-aJ49zzwKg,2473
151
- hpcflow_new2-0.2.0a162.dist-info/WHEEL,sha256=kLuE8m1WYU0Ig0_YEGrXyTtiJvKPpLpDEiChiNyei5Y,88
152
- hpcflow_new2-0.2.0a162.dist-info/entry_points.txt,sha256=aoGtCnFdfPcXfBdu2zZyMOJoz6fPgdR0elqsgrE-USU,106
153
- hpcflow_new2-0.2.0a162.dist-info/RECORD,,
151
+ hpcflow_new2-0.2.0a164.dist-info/METADATA,sha256=xONNW9D3OecXiNTVC-RYksxn5h6boxU6PZzFQ43TI0E,2473
152
+ hpcflow_new2-0.2.0a164.dist-info/WHEEL,sha256=kLuE8m1WYU0Ig0_YEGrXyTtiJvKPpLpDEiChiNyei5Y,88
153
+ hpcflow_new2-0.2.0a164.dist-info/entry_points.txt,sha256=aoGtCnFdfPcXfBdu2zZyMOJoz6fPgdR0elqsgrE-USU,106
154
+ hpcflow_new2-0.2.0a164.dist-info/RECORD,,