hpcflow-new2 0.2.0a169__py3-none-any.whl → 0.2.0a174__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.
@@ -404,7 +404,7 @@ def test_task_get_available_task_input_sources_expected_return_two_params_one_ou
404
404
  assert available == available_exp
405
405
 
406
406
 
407
- def test_task_get_available_task_input_sources_input_source_excluded_if_not_local(
407
+ def test_task_get_available_task_input_sources_one_parameter_extravaganza(
408
408
  tmp_path,
409
409
  ):
410
410
  """Test an input source is excluded if it is not locally defined (meaning it comes
@@ -433,6 +433,12 @@ def test_task_get_available_task_input_sources_input_source_excluded_if_not_loca
433
433
  task_source_type=hf.TaskSourceType.OUTPUT,
434
434
  element_iters=[1],
435
435
  ),
436
+ hf.InputSource(
437
+ source_type=hf.InputSourceType.TASK,
438
+ task_ref=1,
439
+ task_source_type=hf.TaskSourceType.INPUT,
440
+ element_iters=[1],
441
+ ),
436
442
  hf.InputSource(
437
443
  source_type=hf.InputSourceType.TASK,
438
444
  task_ref=0,
@@ -1194,7 +1200,7 @@ def test_task_add_elements_multi_task_dependence_expected_workflow_num_elements(
1194
1200
  },
1195
1201
  )
1196
1202
  num_elems_new = wk.num_elements
1197
- assert num_elems_new - num_elems == 5
1203
+ assert num_elems_new - num_elems == 7
1198
1204
 
1199
1205
 
1200
1206
  def test_task_add_elements_multi_task_dependence_expected_task_num_elements(
@@ -1221,6 +1227,39 @@ def test_task_add_elements_multi_task_dependence_expected_task_num_elements(
1221
1227
  )
1222
1228
  num_elems_new = [task.num_elements for task in wk.tasks]
1223
1229
  num_elems_diff = [i - j for i, j in zip(num_elems_new, num_elems)]
1230
+ assert num_elems_diff == [1, 2, 4]
1231
+
1232
+
1233
+ def test_task_add_elements_multi_task_dependence_expected_task_num_elements_custom_input_source(
1234
+ tmp_path, param_p1
1235
+ ):
1236
+ wk = make_workflow(
1237
+ schemas_spec=[
1238
+ [{"p1": None}, ("p3",), "t1"],
1239
+ [{"p2": None, "p3": None}, ("p4",), "t2"],
1240
+ [{"p3": None, "p4": None}, (), "t3"],
1241
+ ],
1242
+ local_inputs={0: ("p1",)},
1243
+ local_sequences={1: [("inputs.p2", 2, 1)]},
1244
+ nesting_orders={2: {"inputs.p3": 0, "inputs.p4": 1}},
1245
+ input_sources={
1246
+ 2: {"p3": [hf.InputSource.task(0)]}
1247
+ }, # override default (t2 input)
1248
+ path=tmp_path,
1249
+ )
1250
+ num_elems = [task.num_elements for task in wk.tasks]
1251
+ wk.tasks.t1.add_elements(
1252
+ inputs=[hf.InputValue(param_p1, 102)],
1253
+ propagate_to={
1254
+ "t2": {"nesting_order": {"inputs.p2": 0, "inputs.p3": 1}},
1255
+ "t3": {
1256
+ "nesting_order": {"inputs.p3": 0, "inputs.p4": 1},
1257
+ "input_sources": {"p3": [hf.InputSource.task(0)]}, # override default
1258
+ },
1259
+ },
1260
+ )
1261
+ num_elems_new = [task.num_elements for task in wk.tasks]
1262
+ num_elems_diff = [i - j for i, j in zip(num_elems_new, num_elems)]
1224
1263
  assert num_elems_diff == [1, 2, 2]
1225
1264
 
1226
1265
 
@@ -1264,6 +1303,60 @@ def test_task_add_elements_multi_task_dependence_expected_new_data_index(
1264
1303
  + t3_num_elems_new
1265
1304
  ]
1266
1305
 
1306
+ assert (
1307
+ new_elems_t1 == [["inputs.p1", "outputs.p3", "resources.any"]]
1308
+ and new_elems_t2
1309
+ == [["inputs.p2", "inputs.p3", "outputs.p4", "resources.any"]] * 2
1310
+ and new_elems_t3 == [["inputs.p3", "inputs.p4", "resources.any"]] * 4
1311
+ )
1312
+
1313
+
1314
+ def test_task_add_elements_multi_task_dependence_expected_new_data_index_custom_input_source(
1315
+ tmp_path, param_p1
1316
+ ):
1317
+ wk = make_workflow(
1318
+ schemas_spec=[
1319
+ [{"p1": None}, ("p3",), "t1"],
1320
+ [{"p2": None, "p3": None}, ("p4",), "t2"],
1321
+ [{"p3": None, "p4": None}, (), "t3"],
1322
+ ],
1323
+ local_inputs={0: ("p1",)},
1324
+ local_sequences={1: [("inputs.p2", 2, 1)]},
1325
+ nesting_orders={2: {"inputs.p3": 0, "inputs.p4": 1}},
1326
+ input_sources={
1327
+ 2: {"p3": [hf.InputSource.task(0)]}
1328
+ }, # override default (t2 input)
1329
+ path=tmp_path,
1330
+ )
1331
+ t1_num_elems = wk.tasks.t1.num_elements
1332
+ t2_num_elems = wk.tasks.t2.num_elements
1333
+ t3_num_elems = wk.tasks.t3.num_elements
1334
+ wk.tasks.t1.add_elements(
1335
+ inputs=[hf.InputValue(param_p1, 102)],
1336
+ propagate_to={
1337
+ "t2": {"nesting_order": {"inputs.p2": 0, "inputs.p3": 1}},
1338
+ "t3": {
1339
+ "nesting_order": {"inputs.p3": 0, "inputs.p4": 1},
1340
+ "input_sources": {"p3": [hf.InputSource.task(0)]}, # override default
1341
+ },
1342
+ },
1343
+ )
1344
+ t1_num_elems_new = wk.tasks.t1.num_elements
1345
+ t2_num_elems_new = wk.tasks.t2.num_elements
1346
+ t3_num_elems_new = wk.tasks.t3.num_elements
1347
+ data_index_new = [sorted(i.get_data_idx().keys()) for i in wk.elements()]
1348
+ new_elems_t1 = data_index_new[t1_num_elems:t1_num_elems_new]
1349
+ new_elems_t2 = data_index_new[
1350
+ t1_num_elems_new + t2_num_elems : t1_num_elems_new + t2_num_elems_new
1351
+ ]
1352
+ new_elems_t3 = data_index_new[
1353
+ t1_num_elems_new
1354
+ + t2_num_elems_new
1355
+ + t3_num_elems : t1_num_elems_new
1356
+ + t2_num_elems_new
1357
+ + t3_num_elems_new
1358
+ ]
1359
+
1267
1360
  assert (
1268
1361
  new_elems_t1 == [["inputs.p1", "outputs.p3", "resources.any"]]
1269
1362
  and new_elems_t2
@@ -1297,6 +1390,40 @@ def test_task_add_elements_sequence_multi_task_dependence_workflow_num_elements(
1297
1390
  },
1298
1391
  )
1299
1392
  num_elems_new = wk.num_elements
1393
+ assert num_elems_new - num_elems == 45
1394
+
1395
+
1396
+ def test_task_add_elements_sequence_multi_task_dependence_workflow_num_elements_custom_input_source(
1397
+ tmp_path,
1398
+ ):
1399
+ wk = make_workflow(
1400
+ schemas_spec=[
1401
+ [{"p1": None}, ("p3",), "t1"],
1402
+ [{"p2": None, "p3": None}, ("p4",), "t2"],
1403
+ [{"p3": None, "p4": None}, (), "t3"],
1404
+ ],
1405
+ local_inputs={0: ("p1",)},
1406
+ local_sequences={1: [("inputs.p2", 2, 1)]},
1407
+ nesting_orders={2: {"inputs.p3": 0, "inputs.p4": 1}},
1408
+ input_sources={
1409
+ 2: {"p3": [hf.InputSource.task(0)]}
1410
+ }, # override default (t2 input)
1411
+ path=tmp_path,
1412
+ )
1413
+ num_elems = wk.num_elements
1414
+ wk.tasks.t1.add_elements(
1415
+ sequences=[
1416
+ hf.ValueSequence("inputs.p1", values=[102, 103, 104], nesting_order=1)
1417
+ ],
1418
+ propagate_to={
1419
+ "t2": {"nesting_order": {"inputs.p2": 0, "inputs.p3": 1}},
1420
+ "t3": {
1421
+ "nesting_order": {"inputs.p3": 0, "inputs.p4": 1},
1422
+ "input_sources": {"p3": [hf.InputSource.task(0)]}, # override default
1423
+ },
1424
+ },
1425
+ )
1426
+ num_elems_new = wk.num_elements
1300
1427
  assert num_elems_new - num_elems == 27
1301
1428
 
1302
1429
 
@@ -1326,6 +1453,41 @@ def test_task_add_elements_sequence_multi_task_dependence_expected_task_num_elem
1326
1453
  )
1327
1454
  num_elems_new = [task.num_elements for task in wk.tasks]
1328
1455
  num_elems_diff = [i - j for i, j in zip(num_elems_new, num_elems)]
1456
+ assert num_elems_diff == [3, 6, 36]
1457
+
1458
+
1459
+ def test_task_add_elements_sequence_multi_task_dependence_expected_task_num_elements_custom_input_source(
1460
+ tmp_path,
1461
+ ):
1462
+ wk = make_workflow(
1463
+ schemas_spec=[
1464
+ [{"p1": None}, ("p3",), "t1"],
1465
+ [{"p2": None, "p3": None}, ("p4",), "t2"],
1466
+ [{"p3": None, "p4": None}, (), "t3"],
1467
+ ],
1468
+ local_inputs={0: ("p1",)},
1469
+ local_sequences={1: [("inputs.p2", 2, 1)]},
1470
+ nesting_orders={2: {"inputs.p3": 0, "inputs.p4": 1}},
1471
+ input_sources={
1472
+ 2: {"p3": [hf.InputSource.task(0)]}
1473
+ }, # override default (t2 input)
1474
+ path=tmp_path,
1475
+ )
1476
+ num_elems = [task.num_elements for task in wk.tasks]
1477
+ wk.tasks.t1.add_elements(
1478
+ sequences=[
1479
+ hf.ValueSequence("inputs.p1", values=[102, 103, 104], nesting_order=1)
1480
+ ],
1481
+ propagate_to={
1482
+ "t2": {"nesting_order": {"inputs.p2": 0, "inputs.p3": 1}},
1483
+ "t3": {
1484
+ "nesting_order": {"inputs.p3": 0, "inputs.p4": 1},
1485
+ "input_sources": {"p3": [hf.InputSource.task(0)]}, # override default
1486
+ },
1487
+ },
1488
+ )
1489
+ num_elems_new = [task.num_elements for task in wk.tasks]
1490
+ num_elems_diff = [i - j for i, j in zip(num_elems_new, num_elems)]
1329
1491
  assert num_elems_diff == [3, 6, 18]
1330
1492
 
1331
1493
 
@@ -1359,6 +1521,62 @@ def test_task_add_elements_sequence_multi_task_dependence_expected_new_data_inde
1359
1521
  t2_num_elems_new = wk.tasks.t2.num_elements
1360
1522
  t3_num_elems_new = wk.tasks.t3.num_elements
1361
1523
 
1524
+ data_index_new = [sorted(i.get_data_idx().keys()) for i in wk.elements()]
1525
+ new_elems_t1 = data_index_new[t1_num_elems:t1_num_elems_new]
1526
+ new_elems_t2 = data_index_new[
1527
+ t1_num_elems_new + t2_num_elems : t1_num_elems_new + t2_num_elems_new
1528
+ ]
1529
+ new_elems_t3 = data_index_new[
1530
+ t1_num_elems_new
1531
+ + t2_num_elems_new
1532
+ + t3_num_elems : t1_num_elems_new
1533
+ + t2_num_elems_new
1534
+ + t3_num_elems_new
1535
+ ]
1536
+ assert (
1537
+ new_elems_t1 == [["inputs.p1", "outputs.p3", "resources.any"]] * 3
1538
+ and new_elems_t2
1539
+ == [["inputs.p2", "inputs.p3", "outputs.p4", "resources.any"]] * 6
1540
+ and new_elems_t3 == [["inputs.p3", "inputs.p4", "resources.any"]] * 36
1541
+ )
1542
+
1543
+
1544
+ def test_task_add_elements_sequence_multi_task_dependence_expected_new_data_index_custom_input_source(
1545
+ tmp_path,
1546
+ ):
1547
+ wk = make_workflow(
1548
+ schemas_spec=[
1549
+ [{"p1": None}, ("p3",), "t1"],
1550
+ [{"p2": None, "p3": None}, ("p4",), "t2"],
1551
+ [{"p3": None, "p4": None}, (), "t3"],
1552
+ ],
1553
+ local_inputs={0: ("p1",)},
1554
+ local_sequences={1: [("inputs.p2", 2, 1)]},
1555
+ nesting_orders={2: {"inputs.p3": 0, "inputs.p4": 1}},
1556
+ input_sources={
1557
+ 2: {"p3": [hf.InputSource.task(0)]}
1558
+ }, # override default (t2 input)
1559
+ path=tmp_path,
1560
+ )
1561
+ t1_num_elems = wk.tasks.t1.num_elements
1562
+ t2_num_elems = wk.tasks.t2.num_elements
1563
+ t3_num_elems = wk.tasks.t3.num_elements
1564
+ wk.tasks.t1.add_elements(
1565
+ sequences=[
1566
+ hf.ValueSequence("inputs.p1", values=[102, 103, 104], nesting_order=1)
1567
+ ],
1568
+ propagate_to={
1569
+ "t2": {"nesting_order": {"inputs.p2": 0, "inputs.p3": 1}},
1570
+ "t3": {
1571
+ "nesting_order": {"inputs.p3": 0, "inputs.p4": 1},
1572
+ "input_sources": {"p3": [hf.InputSource.task(0)]}, # override default
1573
+ },
1574
+ },
1575
+ )
1576
+ t1_num_elems_new = wk.tasks.t1.num_elements
1577
+ t2_num_elems_new = wk.tasks.t2.num_elements
1578
+ t3_num_elems_new = wk.tasks.t3.num_elements
1579
+
1362
1580
  data_index_new = [sorted(i.get_data_idx().keys()) for i in wk.elements()]
1363
1581
  new_elems_t1 = data_index_new[t1_num_elems:t1_num_elems_new]
1364
1582
  new_elems_t2 = data_index_new[
@@ -2176,3 +2394,67 @@ def test_raise_UnknownEnvironmentPresetError_sequence(null_config):
2176
2394
  seq = hf.ValueSequence(path="env_preset", values=["my_env_preset"])
2177
2395
  with pytest.raises(UnknownEnvironmentPresetError):
2178
2396
  hf.Task(schema=ts, sequences=[seq])
2397
+
2398
+
2399
+ def test_group_values_input_and_output_source_from_upstream(null_config, tmp_path):
2400
+ """
2401
+ | task | inputs | outputs | group | num_elements |
2402
+ | ---- | ------ | ------- | -------- | ---------------------------|
2403
+ | t1 | p0 | p1 | - | 3 |
2404
+ | t2 | p1 | p2 | my_group | 3 |
2405
+ | t3 | p1, p2 | - | - | 1 (grouped p1, grouped p2) |
2406
+ """
2407
+ s1 = hf.TaskSchema(
2408
+ objective="t1",
2409
+ inputs=[hf.SchemaInput("p0")],
2410
+ outputs=[hf.SchemaOutput("p1")],
2411
+ actions=[
2412
+ hf.Action(
2413
+ commands=[
2414
+ hf.Command(
2415
+ command="echo <<parameter:p0>> + 1",
2416
+ stdout="<<parameter:p1>>",
2417
+ )
2418
+ ]
2419
+ )
2420
+ ],
2421
+ )
2422
+ s2 = hf.TaskSchema(
2423
+ objective="t2",
2424
+ inputs=[hf.SchemaInput("p1")],
2425
+ outputs=[hf.SchemaOutput("p2")],
2426
+ actions=[
2427
+ hf.Action(
2428
+ commands=[
2429
+ hf.Command(
2430
+ command="echo <<parameter:p1>> + 1",
2431
+ stdout="<<parameter:p2>>",
2432
+ )
2433
+ ]
2434
+ )
2435
+ ],
2436
+ )
2437
+ s3 = hf.TaskSchema(
2438
+ objective="t3",
2439
+ inputs=[
2440
+ hf.SchemaInput("p1", group="my_group"),
2441
+ hf.SchemaInput("p2", group="my_group"),
2442
+ ],
2443
+ )
2444
+ t1 = hf.Task(
2445
+ schema=s1,
2446
+ inputs={"p0": 1},
2447
+ repeats=3,
2448
+ )
2449
+ t2 = hf.Task(schema=s2, groups=[hf.ElementGroup("my_group")])
2450
+ t3 = hf.Task(schema=s3)
2451
+ wk = hf.Workflow.from_template_data(
2452
+ template_name="test_group",
2453
+ tasks=[t1, t2, t3],
2454
+ path=tmp_path,
2455
+ )
2456
+ assert wk.tasks[0].num_elements == 3
2457
+ assert wk.tasks[1].num_elements == 3
2458
+ assert wk.tasks[2].num_elements == 1
2459
+ assert [i.value for i in wk.tasks[2].inputs.p1] == [[None, None, None]]
2460
+ assert [i.value for i in wk.tasks[2].inputs.p2] == [[None, None, None]]
@@ -1,5 +1,7 @@
1
+ import sys
1
2
  import numpy as np
2
3
  import pytest
4
+ import requests
3
5
 
4
6
  from hpcflow.app import app as hf
5
7
  from hpcflow.sdk.core.test_utils import P1_parameter_cls as P1
@@ -407,6 +409,14 @@ def test_nesting_order_three_seqs_all_decimal(null_config, tmp_path):
407
409
  assert wk.tasks.test.elements[5].get("inputs") == {"p1": "b", "p2": "e", "p3": "k"}
408
410
 
409
411
 
412
+ @pytest.mark.xfail(
413
+ condition=sys.platform == "darwin",
414
+ raises=requests.exceptions.HTTPError,
415
+ reason=(
416
+ "GHA MacOS runners use the same IP address, so we get rate limited when "
417
+ "retrieving demo data from GitHub."
418
+ ),
419
+ )
410
420
  def test_demo_data_values(null_config):
411
421
  name = "text_file.txt"
412
422
  assert hf.ValueSequence(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hpcflow-new2
3
- Version: 0.2.0a169
3
+ Version: 0.2.0a174
4
4
  Summary: Computational workflow management
5
5
  License: MIT
6
6
  Author: aplowman
@@ -22,7 +22,7 @@ Requires-Dist: msgpack (>=1.0.4,<2.0.0)
22
22
  Requires-Dist: numpy (>=1.24.4,<2.0.0) ; python_version < "3.9"
23
23
  Requires-Dist: numpy (>=1.26.4,<2.0.0) ; python_version >= "3.9"
24
24
  Requires-Dist: paramiko (>=3.2.0,<4.0.0)
25
- Requires-Dist: platformdirs (>=2.5.1,<3.0.0)
25
+ Requires-Dist: platformdirs (>=4.2.1,<5.0.0)
26
26
  Requires-Dist: psutil (>=5.9.4,<6.0.0)
27
27
  Requires-Dist: pytest (>=7.2.0,<8.0.0) ; extra == "test"
28
28
  Requires-Dist: requests (>=2.31.0,<3.0.0)
@@ -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=hxFrOWNQUJIOw8YnjryDCR0GrhCs69VkopK-elg35sw,26
4
+ hpcflow/_version.py,sha256=g1tMizJfeCe4QtSZFGZBHIWwzHvg3y3320eKsFMYrPY,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
@@ -35,7 +35,7 @@ hpcflow/data/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
35
35
  hpcflow/data/workflows/workflow_1.yaml,sha256=lF7Re2SVc_5gQk5AwB0gXaq-n-T5ia4su3zNQ9oMRV0,220
36
36
  hpcflow/examples.ipynb,sha256=cLKp4QsxwwMXRanDnfWY9kqsV23q6G4raOpu6IZXnMw,28553
37
37
  hpcflow/sdk/__init__.py,sha256=SdzVm7dydLv2kmr2tqrH14Gf1GEAEhsEuAuqiGBLHhM,5700
38
- hpcflow/sdk/app.py,sha256=DDIHHvXjjjpCbZ4HQXk7ByuvzUUPsDy7WxS_940bG48,95077
38
+ hpcflow/sdk/app.py,sha256=lS9sl6YEbB02LZbltlgs8neokZNmxfl4aT46-2UuDTQ,96661
39
39
  hpcflow/sdk/cli.py,sha256=uIzF2YEFQFxmJNFwZM_OZWpzgJK0BnqNY3zwa9sfVzM,35028
40
40
  hpcflow/sdk/cli_common.py,sha256=kDSIe90mxD37lQqvIXDyRauLtTRRnNueSljcRPF_w0M,4738
41
41
  hpcflow/sdk/config/__init__.py,sha256=qJrrxcAN4f1u_RyTtXgz-xlTLwNafE9v0VEMP1x6-bU,70
@@ -50,20 +50,20 @@ hpcflow/sdk/core/command_files.py,sha256=GEFlgZv7g9lkFoNgwyDtmlI_90e2TWliCJuJimn
50
50
  hpcflow/sdk/core/commands.py,sha256=5SKxSBuYz8sSvfpp9p5utBwMoQV6Pd2KlGBCpXAHDxE,12741
51
51
  hpcflow/sdk/core/element.py,sha256=hTAR2kxfGSRf4vFgWwrnyuP5z5RnKYOd2X6c6Xd70zo,47048
52
52
  hpcflow/sdk/core/environment.py,sha256=DGUz1NvliKh6opP0IueGHD69rn_8wFLhDsq6kAmEgM4,4849
53
- hpcflow/sdk/core/errors.py,sha256=jU-vA9e1CW7nFp8MUWH1XKswPYWoF35fVFhIm8N-5GE,9192
53
+ hpcflow/sdk/core/errors.py,sha256=ku4wwsrmxBpJBFflUeZD6vrmAqgC7H02VdlRG4aAGqQ,9292
54
54
  hpcflow/sdk/core/json_like.py,sha256=LRZsUd1tn8zXC8fESeiXs7Eko-VdnB8zcXiqixKVcZM,18874
55
- hpcflow/sdk/core/loop.py,sha256=5Ai_HHCzM21_IOvtgobE8yi_b9dc9jWQijt2LyI3PlM,21865
55
+ hpcflow/sdk/core/loop.py,sha256=7WHif9U3KenNqICN5Ibq76WCwEn9xzBo0jnROwv4z-4,30051
56
56
  hpcflow/sdk/core/object_list.py,sha256=HASx7AMniX82bTlROIgIvrjE_DupmwDgxfkfROmI3GA,20168
57
57
  hpcflow/sdk/core/parallel.py,sha256=LI-g-qOuOR1oaEUWVT0qW0hmiP9hsJyUP8_IfSTKYYo,95
58
58
  hpcflow/sdk/core/parameters.py,sha256=0h1M-fXqOVgruyM0Au7Fo38cUbHgDNEPd1Alb1FULxE,65588
59
59
  hpcflow/sdk/core/rule.py,sha256=3jVsSZCBv4Odxy8QbSbKo9ZcRuU-5DRJoNK8adXCEpI,4567
60
60
  hpcflow/sdk/core/run_dir_files.py,sha256=_k-hA7dlry9GZw5ZXcntFcPGxg07p03hnHSM5S-2G2Y,2197
61
- hpcflow/sdk/core/task.py,sha256=rfzjTHCldnTIlLQ1yWnMC-cJjvyVehFt-WCVL3_H2kc,121281
61
+ hpcflow/sdk/core/task.py,sha256=-Ugs13wl76FxBv9q0Ik2dWGSDPZQ4KR4qvwmrfsAEgE,122247
62
62
  hpcflow/sdk/core/task_schema.py,sha256=TipXzC2guu9zilv0En-rHt6lUCTSIj5faI4lVWQdUbA,32346
63
- hpcflow/sdk/core/test_utils.py,sha256=UKitv3qvZpSz8vE_HRaJjPDnaOeojy6WVntSskPs03Q,9354
63
+ hpcflow/sdk/core/test_utils.py,sha256=IhCLvRzDuG4hVNGeGulGKfZEgg7Ow-vgiEqewzMiaZ4,9762
64
64
  hpcflow/sdk/core/utils.py,sha256=pReOwnmuxJqexPUdaA8UMjJ4o8ucllBVVssWjb_LNQc,25651
65
65
  hpcflow/sdk/core/validation.py,sha256=KBKiy5DdfGiGmMaB0HdKTY0V972u5dJzvkYkX0_KtCo,518
66
- hpcflow/sdk/core/workflow.py,sha256=9YCgqCLQmkHuMnZS3HTEth-2syDhaXOJoBCuYv5Kqkw,108627
66
+ hpcflow/sdk/core/workflow.py,sha256=oi9QdBgAMSr62c6HQx2OXw3ljRmxhEb_3YNXGCwIbBE,111164
67
67
  hpcflow/sdk/core/zarr_io.py,sha256=V_Zm6uSiuaCbXyHFJUO74K1pAr4Zqrj3aLCBjohCwvs,5724
68
68
  hpcflow/sdk/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
69
  hpcflow/sdk/data/config_file_schema.yaml,sha256=7i3z_m3GBRtLyB4c7qPngnlQWqcIq1CyCcOysDyq4es,791
@@ -81,12 +81,12 @@ hpcflow/sdk/helper/helper.py,sha256=MkjYKHox1F4XOpy-20sCCDUTWUbQY84QpWZkcpSq9n8,
81
81
  hpcflow/sdk/helper/watcher.py,sha256=hLqgwXtZw-6ihNUUcWYnZw8TCyD_AdhYE7abOrO2r_0,4003
82
82
  hpcflow/sdk/log.py,sha256=_DA5nNS8BoSIFB3d9nrIjbxNDxFflEaL3Ubkq8UYQK8,5735
83
83
  hpcflow/sdk/persistence/__init__.py,sha256=IzWycfiO6rDn_7Kocw4Df5ETe9BSoaqqxG7Yp4FW_ls,900
84
- hpcflow/sdk/persistence/base.py,sha256=JNGFKsg7CEjAAyVUfRnSesHvutBLVlPDnrnKu0YB4bc,60605
85
- hpcflow/sdk/persistence/json.py,sha256=5_a73kUmukhNw1LR_evKPKcHo0YcbUzzAtYiS9lN07c,21416
86
- hpcflow/sdk/persistence/pending.py,sha256=4V4Xf760GV6JsCl95bm72z8Y78Gw8cbPiBiHZ031orU,24471
84
+ hpcflow/sdk/persistence/base.py,sha256=cmfvgUQAp6BVcOL04IemzmtPvzSJfVd2nQFvgp2VLyU,61718
85
+ hpcflow/sdk/persistence/json.py,sha256=XD4km426WZ6F6YCrnw87ntS_Qfg3qa9CAyK2GQmJNFU,21700
86
+ hpcflow/sdk/persistence/pending.py,sha256=ZaiY_I6c0CpXGPOkHfs595GtDvx8daP4nqVZGSJ6tS4,25566
87
87
  hpcflow/sdk/persistence/store_resource.py,sha256=oEyocRqa8Uym-57UFosrwate-Xw9O7i2FM82TxHc4m0,4307
88
88
  hpcflow/sdk/persistence/utils.py,sha256=yQT6gS-Ipj2N6grtlV5d0czxxKE0CaeqAkXA1247XGo,1522
89
- hpcflow/sdk/persistence/zarr.py,sha256=HJYghGZk4D7OfQ1NRWJqlZ1Poqoq9kWRi5kYipBiGYg,45207
89
+ hpcflow/sdk/persistence/zarr.py,sha256=cyhLVaHUVLuFg-sokfD8L2YOMvfCCk1KCawRD9_qg30,45452
90
90
  hpcflow/sdk/runtime.py,sha256=_in5ojiy9R8fD1ZNbdE6PDmZx6kSaiG9WPB6kVBFE7k,9217
91
91
  hpcflow/sdk/submission/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
92
92
  hpcflow/sdk/submission/jobscript.py,sha256=Z9NUzkIcmoFw-XAtG8FdLpO2LtMt3czk1v1BnbM1eZw,44678
@@ -117,7 +117,7 @@ hpcflow/tests/scripts/test_main_scripts.py,sha256=6mZvcppeFf9yL7XipYwHKxQvILKzCo
117
117
  hpcflow/tests/shells/wsl/test_wsl_submission.py,sha256=IrpvsxVfsQCUmS8KKn7w9DiVFR8z_ak_IWyAd1E0KKc,516
118
118
  hpcflow/tests/unit/test_action.py,sha256=GDyx2ak6H-gvuHAG7-oia39crFcX1bGC3h2M7j8teOs,26334
119
119
  hpcflow/tests/unit/test_action_rule.py,sha256=vX7hMo_9AO5iUGWdDF8uP8rM4jghZidusiY4ZvNcEKo,556
120
- hpcflow/tests/unit/test_app.py,sha256=dujHPEpUMAHVWgA-TB0zeACMfmmMgFTDAJgX0Dd3qzQ,2967
120
+ hpcflow/tests/unit/test_app.py,sha256=1JVEuGlPHhO3igkbHsKAQOkBrRbXD-YFsRcyKD3uF2o,3244
121
121
  hpcflow/tests/unit/test_cli.py,sha256=9oQZOlX0z5LC4e2JFLuIgGnUXgmR2RCAtbXR5XRwqJs,288
122
122
  hpcflow/tests/unit/test_command.py,sha256=qf2z0wofxCisza90HMDlb81wsNhByXRAOPMfmRv6paA,22422
123
123
  hpcflow/tests/unit/test_config.py,sha256=yW_tCjCaReCud7Lv4-CLt8mZ7XoaGLGxjozJQoZYZ2c,2507
@@ -125,12 +125,13 @@ hpcflow/tests/unit/test_config_file.py,sha256=eB1wJimxk7v4vYtwQ1kwPcExdjcN1q-rds
125
125
  hpcflow/tests/unit/test_element.py,sha256=JxqLigktPbdoZz6zV8iXiqPG7-vrdexUpzK5xdbWpzg,20526
126
126
  hpcflow/tests/unit/test_element_iteration.py,sha256=K0oxoDSSKy2JAcAhhE_l63M3u1cus1SsVc5LR2jLe0k,1292
127
127
  hpcflow/tests/unit/test_element_set.py,sha256=oy0KTIwUKm5NNnBYVNNjLcYfipb3sZWDldjE1klSGUU,3709
128
+ hpcflow/tests/unit/test_group.py,sha256=J7Gx6BdzD2uoRUnBow7L_OfdfLUZi7sv5AZd1ysstnk,2588
128
129
  hpcflow/tests/unit/test_input_source.py,sha256=pYm1V4kBsBIFstKDcrbwUiDLb82rr7ITcUEFJES2dI0,39194
129
- hpcflow/tests/unit/test_input_value.py,sha256=hHoe9rlCbfFvqqkAu4ylu95YVaAhinthXqTCUNEnSm8,5454
130
+ hpcflow/tests/unit/test_input_value.py,sha256=H6GX1ee7fuq5f-OsfkfiSW8eye_pWwVLUCYUSnj1-Gg,5731
130
131
  hpcflow/tests/unit/test_json_like.py,sha256=aGCiGfT-tNiFu3yzW6d_T-oDc5QLwSUgq3pN3jFhyF0,29939
131
- hpcflow/tests/unit/test_loop.py,sha256=vBnCnoweiFIi2T68bu6PCQ4yH829pxK6Oe4Comg0bHo,21060
132
+ hpcflow/tests/unit/test_loop.py,sha256=6SPRzqxk0X3aWPiUJJTu6lKODsPGNUOdDgzdN1dFs0k,40438
132
133
  hpcflow/tests/unit/test_object_list.py,sha256=nDpbRpCu4XqoYxKMr1_QmDS1s2_6nQOpIEBRHSAXoVg,3049
133
- hpcflow/tests/unit/test_parameter.py,sha256=g-4pZeIYW0GQyy2rL9JkKBpOC6p1PuGOiq4cbBIwzq0,6132
134
+ hpcflow/tests/unit/test_parameter.py,sha256=39CVido_NJGX-Xj9NDSlazpGzWqMG4zp0GmIKwzO7lI,6659
134
135
  hpcflow/tests/unit/test_persistence.py,sha256=DPXFiuY2v8vj0zZ7299nf-KtgYT8LhHI52fq7UPoa6Y,8128
135
136
  hpcflow/tests/unit/test_resources.py,sha256=2RRFIn5brKyD1UNmkmnvyjPZowa-dokQd0EuCEeo7so,7799
136
137
  hpcflow/tests/unit/test_run.py,sha256=uvG2BbVOD0JJAJCbdh0MMRJME8tVzOm7H4PTLzPLWZY,2613
@@ -139,16 +140,16 @@ hpcflow/tests/unit/test_schema_input.py,sha256=738tJjEzBcQ8Z_YTcybVBW7Twy_hXmbPW
139
140
  hpcflow/tests/unit/test_shell.py,sha256=FDtQ9fHRhSKiVtxMJ8BRisoeSvvk8zmJndTB4LlhqGc,3442
140
141
  hpcflow/tests/unit/test_slurm.py,sha256=ewfNuXXUEEelAxcd7MBbAQ-RCvU8xBenHTAyfXYF-R0,1064
141
142
  hpcflow/tests/unit/test_submission.py,sha256=kQ3ksjGlfp47AYuwTA27RDX2XxRU3YxKlKC1ACTbXw8,16682
142
- hpcflow/tests/unit/test_task.py,sha256=rSMD5eLJxss81HgAxGU9yKTFLZHE2LYdG-XFaN5B5N4,70202
143
+ hpcflow/tests/unit/test_task.py,sha256=QJuEpJ0y0nBesprgoau5R2kFZBCW-ygNmYatLT_M5-o,80227
143
144
  hpcflow/tests/unit/test_task_schema.py,sha256=j5HHxoqq4Mb223jKcusgX-C6-TsmKG0PLjYQ4M01ZHo,4531
144
145
  hpcflow/tests/unit/test_utils.py,sha256=JMhSRZFqmI9ZhREJet9en_y3aRVlQlWE7OKpkdt8SVI,14172
145
- hpcflow/tests/unit/test_value_sequence.py,sha256=Xv121bLTnrLpdhmwoJ_yJvXoJ3L-iOWEQBTl9V_aMio,15463
146
+ hpcflow/tests/unit/test_value_sequence.py,sha256=yJh5YRxN-VYMbCWiUaLH4T_Ue5F2IfVS3e11zx6HlS0,15740
146
147
  hpcflow/tests/unit/test_workflow.py,sha256=Eyr9BhnsFisAPotEAeYrAvxXT1d2i6oshEh1_OxgnSc,22732
147
148
  hpcflow/tests/unit/test_workflow_template.py,sha256=fF7LNveMwCledgncNCRfD9Nd9dL9tSPtlAAOKV3ovAU,5396
148
149
  hpcflow/tests/workflows/test_jobscript.py,sha256=9sp1o0g72JZbv2QlOl5v7wCZEFjotxiIKGNUxVaFgaA,724
149
150
  hpcflow/tests/workflows/test_workflows.py,sha256=xai6FRtGqG4lStJk6KmsqPUSuvqs9FrsBOxMVALshIs,13400
150
151
  hpcflow/viz_demo.ipynb,sha256=1QdnVsk72vihv2L6hOGyk318uEa22ZSgGxQCa7hW2oo,6238
151
- hpcflow_new2-0.2.0a169.dist-info/METADATA,sha256=V_GOYel9UeZ7LNLC1pvXWmN_vji3HzwHTwhKCDhBaO8,2473
152
- hpcflow_new2-0.2.0a169.dist-info/WHEEL,sha256=kLuE8m1WYU0Ig0_YEGrXyTtiJvKPpLpDEiChiNyei5Y,88
153
- hpcflow_new2-0.2.0a169.dist-info/entry_points.txt,sha256=aoGtCnFdfPcXfBdu2zZyMOJoz6fPgdR0elqsgrE-USU,106
154
- hpcflow_new2-0.2.0a169.dist-info/RECORD,,
152
+ hpcflow_new2-0.2.0a174.dist-info/METADATA,sha256=NfVF7HERChbLHOBa9_DF6ivOsKNunDM59lo97rwu_Ko,2473
153
+ hpcflow_new2-0.2.0a174.dist-info/WHEEL,sha256=kLuE8m1WYU0Ig0_YEGrXyTtiJvKPpLpDEiChiNyei5Y,88
154
+ hpcflow_new2-0.2.0a174.dist-info/entry_points.txt,sha256=aoGtCnFdfPcXfBdu2zZyMOJoz6fPgdR0elqsgrE-USU,106
155
+ hpcflow_new2-0.2.0a174.dist-info/RECORD,,