hpcflow-new2 0.2.0a69__py3-none-any.whl → 0.2.0a71__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.
@@ -12,19 +12,7 @@ from hpcflow.sdk.core.errors import (
12
12
  WorkflowNotFoundError,
13
13
  )
14
14
  from hpcflow.sdk.core.parameters import ParameterValue
15
- from hpcflow.sdk.core.test_utils import make_workflow
16
-
17
-
18
- @dataclass
19
- class P1(ParameterValue):
20
- _typ = "p1"
21
-
22
- a: int
23
- d: Optional[int] = None
24
-
25
- @classmethod
26
- def from_data(cls, b, c):
27
- return cls(a=b + c)
15
+ from hpcflow.sdk.core.test_utils import make_workflow, P1_parameter_cls as P1
28
16
 
29
17
 
30
18
  p1 = hf.Parameter("p1")
@@ -325,7 +313,10 @@ def test_WorkflowTemplate_from_JSON_string_without_element_sets(null_config):
325
313
  hf.WorkflowTemplate.from_JSON_string(wkt_json)
326
314
 
327
315
 
328
- def test_equivalent_element_input_parameter_value_class_and_kwargs():
316
+ @pytest.mark.parametrize("store", ["json", "zarr"])
317
+ def test_equivalent_element_input_parameter_value_class_and_kwargs(
318
+ null_config, tmp_path, store
319
+ ):
329
320
  a_value = 101
330
321
  t1_1 = hf.Task(
331
322
  schemas=[s1], inputs=[hf.InputValue(parameter=p1, value=P1(a=a_value))]
@@ -335,10 +326,9 @@ def test_equivalent_element_input_parameter_value_class_and_kwargs():
335
326
  )
336
327
  wk = hf.Workflow.from_template_data(
337
328
  tasks=[t1_1, t1_2],
338
- template_name="test_param_class_init",
339
- workflow_name="test_param_class_init",
340
- overwrite=True,
341
- store="json",
329
+ path=tmp_path,
330
+ template_name="temp",
331
+ store=store,
342
332
  )
343
333
  assert (
344
334
  wk.tasks.t1_1.elements[0].inputs.p1.value
@@ -346,7 +336,10 @@ def test_equivalent_element_input_parameter_value_class_and_kwargs():
346
336
  )
347
337
 
348
338
 
349
- def test_equivalent_element_input_parameter_value_class_method_and_kwargs():
339
+ @pytest.mark.parametrize("store", ["json", "zarr"])
340
+ def test_equivalent_element_input_parameter_value_class_method_and_kwargs(
341
+ null_config, tmp_path, store
342
+ ):
350
343
  b_val = 50
351
344
  c_val = 51
352
345
  expected_a_val = b_val + c_val
@@ -366,10 +359,9 @@ def test_equivalent_element_input_parameter_value_class_method_and_kwargs():
366
359
  )
367
360
  wk = hf.Workflow.from_template_data(
368
361
  tasks=[t1_1, t1_2],
369
- template_name="test_param_class_init",
370
- workflow_name="test_param_class_init",
371
- overwrite=True,
372
- store="json",
362
+ path=tmp_path,
363
+ template_name="temp",
364
+ store=store,
373
365
  )
374
366
  assert wk.tasks.t1_1.elements[0].inputs.p1.value.a == expected_a_val
375
367
  assert (
@@ -378,7 +370,8 @@ def test_equivalent_element_input_parameter_value_class_method_and_kwargs():
378
370
  )
379
371
 
380
372
 
381
- def test_input_value_class_expected_value():
373
+ @pytest.mark.parametrize("store", ["json", "zarr"])
374
+ def test_input_value_class_expected_value(null_config, tmp_path, store):
382
375
  a_value = 101
383
376
  t1_value_exp = P1(a=a_value)
384
377
  t2_value_exp = {"a": a_value}
@@ -386,10 +379,9 @@ def test_input_value_class_expected_value():
386
379
  t1_2 = hf.Task(schemas=[s1], inputs=[hf.InputValue(parameter=p1, value=t2_value_exp)])
387
380
  wk = hf.Workflow.from_template_data(
388
381
  tasks=[t1_1, t1_2],
389
- template_name="test_param_class_init",
390
- workflow_name="test_param_class_init",
391
- overwrite=True,
392
- store="json",
382
+ path=tmp_path,
383
+ template_name="temp",
384
+ store=store,
393
385
  )
394
386
  value_1 = wk.tasks.t1_1.template.element_sets[0].inputs[0].value
395
387
  value_2 = wk.tasks.t1_2.template.element_sets[0].inputs[0].value
@@ -397,7 +389,8 @@ def test_input_value_class_expected_value():
397
389
  assert value_2 == t2_value_exp
398
390
 
399
391
 
400
- def test_input_value_class_method_expected_value():
392
+ @pytest.mark.parametrize("store", ["json", "zarr"])
393
+ def test_input_value_class_method_expected_value(null_config, tmp_path, store):
401
394
  b_val = 50
402
395
  c_val = 51
403
396
  t1_value_exp = P1.from_data(b=b_val, c=c_val)
@@ -415,10 +408,9 @@ def test_input_value_class_method_expected_value():
415
408
  )
416
409
  wk = hf.Workflow.from_template_data(
417
410
  tasks=[t1_1, t1_2],
418
- template_name="test_param_class_init",
419
- workflow_name="test_param_class_init",
420
- overwrite=True,
421
- store="json",
411
+ path=tmp_path,
412
+ template_name="temp",
413
+ store=store,
422
414
  )
423
415
  value_1 = wk.tasks.t1_1.template.element_sets[0].inputs[0].value
424
416
  value_2 = wk.tasks.t1_2.template.element_sets[0].inputs[0].value
@@ -426,7 +418,10 @@ def test_input_value_class_method_expected_value():
426
418
  assert value_2 == t2_value_exp
427
419
 
428
420
 
429
- def test_equivalent_element_input_sequence_parameter_value_class_and_kwargs():
421
+ @pytest.mark.parametrize("store", ["json", "zarr"])
422
+ def test_equivalent_element_input_sequence_parameter_value_class_and_kwargs(
423
+ null_config, tmp_path, store
424
+ ):
430
425
  data = {"a": 101}
431
426
  obj = P1(**data)
432
427
  t1_1 = hf.Task(
@@ -439,17 +434,19 @@ def test_equivalent_element_input_sequence_parameter_value_class_and_kwargs():
439
434
  )
440
435
  wk = hf.Workflow.from_template_data(
441
436
  tasks=[t1_1, t1_2],
442
- template_name="test_param_class_init",
443
- workflow_name="test_param_class_init",
444
- overwrite=True,
445
- store="json",
437
+ path=tmp_path,
438
+ template_name="temp",
439
+ store=store,
446
440
  )
447
441
  val_1 = wk.tasks.t1_1.elements[0].inputs.p1.value
448
442
  val_2 = wk.tasks.t1_2.elements[0].inputs.p1.value
449
443
  assert val_1 == val_2 == obj
450
444
 
451
445
 
452
- def test_equivalent_element_input_sequence_parameter_value_class_method_and_kwargs():
446
+ @pytest.mark.parametrize("store", ["json", "zarr"])
447
+ def test_equivalent_element_input_sequence_parameter_value_class_method_and_kwargs(
448
+ null_config, tmp_path, store
449
+ ):
453
450
  data = {"b": 50, "c": 51}
454
451
  obj = P1.from_data(**data)
455
452
  t1_1 = hf.Task(
@@ -469,17 +466,17 @@ def test_equivalent_element_input_sequence_parameter_value_class_method_and_kwar
469
466
  )
470
467
  wk = hf.Workflow.from_template_data(
471
468
  tasks=[t1_1, t1_2],
472
- template_name="test_param_class_init",
473
- workflow_name="test_param_class_init",
474
- overwrite=True,
475
- store="json",
469
+ path=tmp_path,
470
+ template_name="temp",
471
+ store=store,
476
472
  )
477
473
  val_1 = wk.tasks.t1_1.elements[0].inputs.p1.value
478
474
  val_2 = wk.tasks.t1_2.elements[0].inputs.p1.value
479
475
  assert val_1 == val_2 == obj
480
476
 
481
477
 
482
- def test_sequence_value_class_expected_value():
478
+ @pytest.mark.parametrize("store", ["json", "zarr"])
479
+ def test_sequence_value_class_expected_value(null_config, tmp_path, store):
483
480
  data = {"a": 101}
484
481
  obj = P1(**data)
485
482
  t1_1 = hf.Task(
@@ -492,10 +489,9 @@ def test_sequence_value_class_expected_value():
492
489
  )
493
490
  wk = hf.Workflow.from_template_data(
494
491
  tasks=[t1_1, t1_2],
495
- template_name="test_param_class_init",
496
- workflow_name="test_param_class_init",
497
- overwrite=True,
498
- store="json",
492
+ path=tmp_path,
493
+ template_name="temp",
494
+ store=store,
499
495
  )
500
496
  value_1 = wk.tasks.t1_1.template.element_sets[0].sequences[0].values[0]
501
497
  value_2 = wk.tasks.t1_2.template.element_sets[0].sequences[0].values[0]
@@ -503,7 +499,8 @@ def test_sequence_value_class_expected_value():
503
499
  assert value_2 == data
504
500
 
505
501
 
506
- def test_sequence_value_class_method_expected_value():
502
+ @pytest.mark.parametrize("store", ["json", "zarr"])
503
+ def test_sequence_value_class_method_expected_value(null_config, tmp_path, store):
507
504
  data = {"b": 50, "c": 51}
508
505
  obj = P1.from_data(**data)
509
506
  t1_1 = hf.Task(
@@ -523,10 +520,9 @@ def test_sequence_value_class_method_expected_value():
523
520
  )
524
521
  wk = hf.Workflow.from_template_data(
525
522
  tasks=[t1_1, t1_2],
526
- template_name="test_param_class_init",
527
- workflow_name="test_param_class_init",
528
- overwrite=True,
529
- store="json",
523
+ path=tmp_path,
524
+ template_name="temp",
525
+ store=store,
530
526
  )
531
527
  value_1 = wk.tasks.t1_1.template.element_sets[0].sequences[0].values[0]
532
528
  value_2 = wk.tasks.t1_2.template.element_sets[0].sequences[0].values[0]
@@ -534,7 +530,10 @@ def test_sequence_value_class_method_expected_value():
534
530
  assert value_2 == data
535
531
 
536
532
 
537
- def test_expected_element_input_parameter_value_class_merge_sequence():
533
+ @pytest.mark.parametrize("store", ["json", "zarr"])
534
+ def test_expected_element_input_parameter_value_class_merge_sequence(
535
+ null_config, tmp_path, store
536
+ ):
538
537
  a_val = 101
539
538
  d_val = 201
540
539
  obj_exp = P1(a=a_val, d=d_val)
@@ -546,16 +545,18 @@ def test_expected_element_input_parameter_value_class_merge_sequence():
546
545
  )
547
546
  wk = hf.Workflow.from_template_data(
548
547
  tasks=[t1],
549
- template_name="test_param_class_init",
550
- workflow_name="test_param_class_init",
551
- overwrite=True,
552
- store="json",
548
+ path=tmp_path,
549
+ template_name="temp",
550
+ store=store,
553
551
  )
554
552
  wk.tasks.t1.template.element_sets[0].sequences[0].values[0]
555
553
  assert wk.tasks.t1.elements[0].inputs.p1.value == obj_exp
556
554
 
557
555
 
558
- def test_expected_element_input_parameter_value_class_method_merge_sequence():
556
+ @pytest.mark.parametrize("store", ["json", "zarr"])
557
+ def test_expected_element_input_parameter_value_class_method_merge_sequence(
558
+ null_config, tmp_path, store
559
+ ):
559
560
  b_val = 50
560
561
  c_val = 51
561
562
  obj_exp = P1.from_data(b=b_val, c=c_val)
@@ -571,10 +572,146 @@ def test_expected_element_input_parameter_value_class_method_merge_sequence():
571
572
  )
572
573
  wk = hf.Workflow.from_template_data(
573
574
  tasks=[t1],
574
- template_name="test_param_class_init",
575
- workflow_name="test_param_class_init",
576
- overwrite=True,
577
- store="json",
575
+ path=tmp_path,
576
+ template_name="temp",
577
+ store=store,
578
578
  )
579
579
  wk.tasks.t1.template.element_sets[0].sequences[0].values[0]
580
580
  assert wk.tasks.t1.elements[0].inputs.p1.value == obj_exp
581
+
582
+
583
+ @pytest.mark.parametrize("store", ["json", "zarr"])
584
+ def test_upstream_input_source_merge_with_current_input_modification(
585
+ null_config, tmp_path, store
586
+ ):
587
+ s1 = hf.TaskSchema(
588
+ objective="t1", inputs=[hf.SchemaInput(parameter=hf.Parameter("p2"))]
589
+ )
590
+ s2 = hf.TaskSchema(
591
+ objective="t2", inputs=[hf.SchemaInput(parameter=hf.Parameter("p2"))]
592
+ )
593
+ tasks = [
594
+ hf.Task(schemas=s1, inputs=[hf.InputValue("p2", {"a": 101})]),
595
+ hf.Task(schemas=s2, inputs=[hf.InputValue("p2", value=102, path="b")]),
596
+ ]
597
+ wk = hf.Workflow.from_template_data(
598
+ tasks=tasks,
599
+ path=tmp_path,
600
+ template_name="temp",
601
+ store=store,
602
+ )
603
+ assert wk.tasks[1].elements[0].inputs.p2.value == {"a": 101, "b": 102}
604
+
605
+
606
+ @pytest.mark.parametrize("store", ["json", "zarr"])
607
+ def test_upstream_input_source_with_sub_parameter(null_config, tmp_path, store):
608
+ s1 = hf.TaskSchema(
609
+ objective="t1", inputs=[hf.SchemaInput(parameter=hf.Parameter("p2"))]
610
+ )
611
+ s2 = hf.TaskSchema(
612
+ objective="t2", inputs=[hf.SchemaInput(parameter=hf.Parameter("p2"))]
613
+ )
614
+ tasks = [
615
+ hf.Task(
616
+ schemas=s1,
617
+ inputs=[
618
+ hf.InputValue("p2", {"a": 101}),
619
+ hf.InputValue("p2", value=102, path="b"),
620
+ ],
621
+ ),
622
+ hf.Task(schemas=s2),
623
+ ]
624
+ wk = hf.Workflow.from_template_data(
625
+ tasks=tasks,
626
+ path=tmp_path,
627
+ template_name="temp",
628
+ store=store,
629
+ )
630
+ assert wk.tasks[1].elements[0].inputs.p2.value == {"a": 101, "b": 102}
631
+
632
+
633
+ @pytest.mark.parametrize("store", ["json", "zarr"])
634
+ def test_from_template_data_workflow_reload(null_config, tmp_path, store):
635
+ wk_name = "temp"
636
+ t1 = hf.Task(schemas=[hf.task_schemas.test_t1_ps], inputs=[hf.InputValue("p1", 101)])
637
+ wk = hf.Workflow.from_template_data(
638
+ tasks=[t1],
639
+ path=tmp_path,
640
+ template_name="temp",
641
+ store=store,
642
+ )
643
+ wk_ld = hf.Workflow(wk.path)
644
+ assert (
645
+ wk.tasks[0].elements[0].get_data_idx()
646
+ == wk_ld.tasks[0].elements[0].get_data_idx()
647
+ )
648
+
649
+
650
+ @pytest.mark.parametrize("store", ["json", "zarr"])
651
+ def test_from_template_workflow_reload(null_config, tmp_path, store):
652
+ wk_name = "temp"
653
+ t1 = hf.Task(schemas=[hf.task_schemas.test_t1_ps], inputs=[hf.InputValue("p1", 101)])
654
+ wkt = hf.WorkflowTemplate(name=wk_name, tasks=[t1])
655
+ wk = hf.Workflow.from_template(
656
+ template=wkt,
657
+ path=tmp_path,
658
+ store=store,
659
+ )
660
+ wk_ld = hf.Workflow(wk.path)
661
+ assert (
662
+ wk.tasks[0].elements[0].get_data_idx()
663
+ == wk_ld.tasks[0].elements[0].get_data_idx()
664
+ )
665
+
666
+
667
+ @pytest.mark.parametrize("store", ["json", "zarr"])
668
+ def test_from_YAML_str_template_workflow_reload(null_config, tmp_path, store):
669
+ yaml_str = dedent(
670
+ """
671
+ name: temp
672
+ tasks:
673
+ - schemas: [test_t1_ps]
674
+ inputs:
675
+ p1: 101
676
+ """
677
+ )
678
+ wk = hf.Workflow.from_YAML_string(
679
+ YAML_str=yaml_str,
680
+ path=tmp_path,
681
+ store=store,
682
+ )
683
+ wk_ld = hf.Workflow(wk.path)
684
+ assert (
685
+ wk.tasks[0].elements[0].get_data_idx()
686
+ == wk_ld.tasks[0].elements[0].get_data_idx()
687
+ )
688
+
689
+
690
+ @pytest.mark.parametrize("store", ["json", "zarr"])
691
+ def test_from_template_workflow_add_task_reload(null_config, tmp_path, store):
692
+ wk_name = "temp"
693
+ t1 = hf.Task(schemas=[hf.task_schemas.test_t1_ps], inputs=[hf.InputValue("p1", 101)])
694
+ wkt = hf.WorkflowTemplate(name=wk_name)
695
+ wk = hf.Workflow.from_template(
696
+ template=wkt,
697
+ path=tmp_path,
698
+ store=store,
699
+ )
700
+ wk.add_task(t1)
701
+ wk_ld = hf.Workflow(wk.path)
702
+ assert (
703
+ wk.tasks[0].elements[0].get_data_idx()
704
+ == wk_ld.tasks[0].elements[0].get_data_idx()
705
+ )
706
+
707
+
708
+ @pytest.mark.parametrize("store", ["json", "zarr"])
709
+ def test_batch_update_mode_false_after_empty_workflow_init(null_config, tmp_path, store):
710
+ wk_name = "temp"
711
+ wk = hf.Workflow.from_template_data(
712
+ tasks=[],
713
+ path=tmp_path,
714
+ template_name=wk_name,
715
+ store=store,
716
+ )
717
+ assert wk._in_batch_mode == False
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hpcflow-new2
3
- Version: 0.2.0a69
3
+ Version: 0.2.0a71
4
4
  Summary: Computational workflow management
5
5
  License: MIT
6
6
  Author: aplowman
@@ -1,11 +1,11 @@
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=r57ND9UuWoWKdcHjr1UFvNSLwFpZ4FIXAb5-q8NRGis,741
4
- hpcflow/_version.py,sha256=Ydljpf9rFWfIpiXjzifb-mnkA8xXsYxCffUIMKJAS1o,25
4
+ hpcflow/_version.py,sha256=Te36CAAu8MCIKT19JeZwzRwlMnvgHFV0NRHY1iy3IIQ,25
5
5
  hpcflow/app.py,sha256=aqAu60N-8rpTDevhcgcDeyY4OTvMKX0u-AWrZTIYWvI,1324
6
6
  hpcflow/cli.py,sha256=G2J3D9v6MnMWOWMMWK6UEKLn_6wnV9lT_qygEBBxg-I,66
7
7
  hpcflow/examples.ipynb,sha256=cLKp4QsxwwMXRanDnfWY9kqsV23q6G4raOpu6IZXnMw,28553
8
- hpcflow/sdk/__init__.py,sha256=jA9D8ebXZMQssJvp23VJSTYKOMog74XtvwYWzh5RzAE,5681
8
+ hpcflow/sdk/__init__.py,sha256=UHbTDI8k1Rl7n1ip7cfuTXJ2TdBkoSmDIlJ9bU2qp18,5725
9
9
  hpcflow/sdk/api.py,sha256=vSJRtzBvqnkWswOFyjXlHIPeib3M38x4wmqSKWcBJwo,618
10
10
  hpcflow/sdk/app.py,sha256=_5n_dAZwAMFT2L6UdL3sIeZ5X6Ao-hftnkq19D38Zeg,51764
11
11
  hpcflow/sdk/cli.py,sha256=DKlh83rDJHTHpq88hB7CeX5cGTRD_0y2LswMAU5cJaI,24356
@@ -16,22 +16,22 @@ hpcflow/sdk/config/config.py,sha256=EqC9KNhhUAduDA2btCqBjwWXJwR_JFXeICqM_CIpYPE,
16
16
  hpcflow/sdk/config/config_file.py,sha256=RLjViofKwJ90XZ2skOcg77Q45Ad4-ua90_PF8ZTwcYg,7910
17
17
  hpcflow/sdk/config/errors.py,sha256=8MUFBms4T7O4btjttO24_gRIRQJw1RdcjMZSYIivF18,6521
18
18
  hpcflow/sdk/core/__init__.py,sha256=t5zVtlPT1p49yQuAzHkkkB7s-rugTPgvqWA5YZbW2Z4,248
19
- hpcflow/sdk/core/actions.py,sha256=2tgois7rLpgFFOu0tlLiOaT-FjBWrP7OZ8UbcpncCos,61292
19
+ hpcflow/sdk/core/actions.py,sha256=A4p2pro6FoW73Xzf53vssRHPjhBNrP665bZphAB8zd8,61774
20
20
  hpcflow/sdk/core/command_files.py,sha256=y4pvlH451p5QLTrCL7l4PwH7JFlcHeuCFzUW5he566c,17183
21
21
  hpcflow/sdk/core/commands.py,sha256=9hDyOdHTBBequPa0BSK1ggkUJYyABYVPHNd9rcr7ChI,5386
22
- hpcflow/sdk/core/element.py,sha256=49fwYk0CUX72z8xDjPx7u_S8nedXjJH-5w-QpXQodxE,33457
22
+ hpcflow/sdk/core/element.py,sha256=2wA_SdQ2Ysg7Vt2XvwYsMkFWiyM7snMK2NCkRA768N8,36397
23
23
  hpcflow/sdk/core/environment.py,sha256=DGUz1NvliKh6opP0IueGHD69rn_8wFLhDsq6kAmEgM4,4849
24
24
  hpcflow/sdk/core/errors.py,sha256=9luP-XAveLOcOOATlBHRYSHS5z1_ZyLoHa0l2Ok_DUI,5331
25
25
  hpcflow/sdk/core/json_like.py,sha256=DRJzpveSwakvm20_-SiHKFpRBa8GHNgkibrSPIW8698,18597
26
26
  hpcflow/sdk/core/loop.py,sha256=w1Y5U6qAzI1FaktlkEI5ixRcqyMO3pQJXbr3g1VuMUg,18077
27
27
  hpcflow/sdk/core/object_list.py,sha256=opUmvr0Lo1gQw9zUp1Mzt4rM4thCsECPN9G1R-VV9Co,16423
28
- hpcflow/sdk/core/parameters.py,sha256=EK24o2Z_zgySJm29Gab-EEmU2zzZ3S80JpO4QiXr8BA,41966
29
- hpcflow/sdk/core/task.py,sha256=H4YT5HT7aOwDEeoR_p9rDMskdFkyx0AHiu0vndbm2DM,84305
30
- hpcflow/sdk/core/task_schema.py,sha256=Jlk3Fo-IRTiUfs1Zwt4aechyo5-x5075oF0qslrHsHw,9857
31
- hpcflow/sdk/core/test_utils.py,sha256=FfYAZytsWSVTHYRNiSBf7VQpyDKhAVScnU42nqsB2eM,4374
32
- hpcflow/sdk/core/utils.py,sha256=fAHb-cD1ZkOdPQ0jkt6T_fPYSJOdhqdgT5ZwQXIkR_w,17441
28
+ hpcflow/sdk/core/parameters.py,sha256=0EbyvHDEfia4GUOkWU7_ggsz8H2CZwNXuoH1JZnMcn4,51919
29
+ hpcflow/sdk/core/task.py,sha256=0iLH-iyfOmQwy0FB2eheCOGdn4atYU_JGSevmoBvhvU,90863
30
+ hpcflow/sdk/core/task_schema.py,sha256=d8pb7kAKQ-nHuDtGbKi2rHdf9fwE706oRBruH-CVQVI,10549
31
+ hpcflow/sdk/core/test_utils.py,sha256=x47742tXOXTQbCl4lkjw1Dub1bY895R3w-I9nF-OOyw,4685
32
+ hpcflow/sdk/core/utils.py,sha256=BZlCh2KjOpaLScZKed7GMoBBnBIXuVraOBbmrrXDMlw,18079
33
33
  hpcflow/sdk/core/validation.py,sha256=LIgQ7RH5kgMzdZjOFHQ3PXM1R-_QBdIajzLdoXtfFrc,518
34
- hpcflow/sdk/core/workflow.py,sha256=TaBIO9azLc1SCr5vtBufcgZ44rxAbtniw4pPmKUp4do,79909
34
+ hpcflow/sdk/core/workflow.py,sha256=NKAx2jrLU9R8moexTy73vaIeoFUDrW5Q9tDJrbYBpos,80031
35
35
  hpcflow/sdk/core/zarr_io.py,sha256=V_Zm6uSiuaCbXyHFJUO74K1pAr4Zqrj3aLCBjohCwvs,5724
36
36
  hpcflow/sdk/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
37
  hpcflow/sdk/data/config_file_schema.yaml,sha256=tSHZ_RrFWTP4x14Ft0wVD_TzF8ekxvIDgcorydE0AuU,720
@@ -85,23 +85,25 @@ hpcflow/sdk/submission/shells/powershell.py,sha256=PJQ015fvbhTldVf9yqDqq5cqhmHd2
85
85
  hpcflow/sdk/submission/submission.py,sha256=7IoDbIXH2Pokk_aGk-Qbs6RSKVJt4XvAEvvGFgk0HNs,16203
86
86
  hpcflow/sdk/typing.py,sha256=p1duIXcWh5FRNZIGUjsTcnqjGDg2-nCpfNicrut-VPk,327
87
87
  hpcflow/tests/unit/test_action.py,sha256=uYYp76Z7lcSW3APddJ4jnDhgvBxmP_2-RoUE2ZtjDkA,5073
88
- hpcflow/tests/unit/test_app.py,sha256=PXEJ9MvGzSQf_8aZuUy1JBmK-oJTemcQd0FBF18lMjI,3104
88
+ hpcflow/tests/unit/test_app.py,sha256=8-Ws1SOcMYkSxORn0bW_1XUv1KhJhYAP8-d6LPGWnUk,2905
89
89
  hpcflow/tests/unit/test_cli.py,sha256=9oQZOlX0z5LC4e2JFLuIgGnUXgmR2RCAtbXR5XRwqJs,288
90
90
  hpcflow/tests/unit/test_element.py,sha256=Vq4sW2ioYRGTw1u2O1p765OlbnzxPdfJTYIwYn2ZCJU,1572
91
91
  hpcflow/tests/unit/test_element_set.py,sha256=VPH5rtoSoDgJV33L48qD7IQAS1PWR4oD3KbKVsTlZ7Q,1082
92
92
  hpcflow/tests/unit/test_input_source.py,sha256=e-C1UX7MlA-4bXVi8lHRkDhzrywH6ReSlqf_P5uyXQ0,9607
93
- hpcflow/tests/unit/test_input_value.py,sha256=UILBRg0Fqlnh5dmILkagUaH0Z-HWhyjFGCh5Qq8JH8k,2958
93
+ hpcflow/tests/unit/test_input_value.py,sha256=xGn2Fl6dKTc3dGNvKhSMnjmuJ3phR4TLpgZzBQ-WVvg,4300
94
94
  hpcflow/tests/unit/test_json_like.py,sha256=SiCOOAH2uDvL63yjWVbKx5DNXEuWbdSPZIObSx9fMv8,29410
95
95
  hpcflow/tests/unit/test_loop.py,sha256=QvGIz5svGf4aEUiQB2mXMLIDraHGHO0KJ2K-tueoKR8,8615
96
96
  hpcflow/tests/unit/test_object_list.py,sha256=Wygp6f4rdmWaeVofeW8err0hvNqhryPisyb_UHWfaBQ,2008
97
97
  hpcflow/tests/unit/test_persistence.py,sha256=ZUJLt_Il9PjMqDKw1TWlOwzYGGNIaqL-SnxyIgP4AdY,7422
98
+ hpcflow/tests/unit/test_schema_input.py,sha256=Gafl7uXKZJSIGxfpFygpFMd6g1Nqe6m_REgqNCymv7k,6342
98
99
  hpcflow/tests/unit/test_submission.py,sha256=C7qPYVou_OiL0Jfk5cebyB5ov0OXaKRsg0byIKLDSaE,5632
99
- hpcflow/tests/unit/test_task.py,sha256=zEa1r2n6RFft3SkkMElMPI9kQWqzjzP_lzjoms9MNGc,45892
100
+ hpcflow/tests/unit/test_task.py,sha256=nkOyoehVORWzHnMgSqNrvait4hZL95P-NMGvhCgabd0,47147
100
101
  hpcflow/tests/unit/test_task_schema.py,sha256=7a7o42gQhrZPMXfH0a6sGzFCJnuFrbDEl9u3u_bFsgw,3624
101
102
  hpcflow/tests/unit/test_utils.py,sha256=C-0rd7-gEZY_TJItJcSdN1TVPuHsOUfVfl0NscFRg8I,11200
102
- hpcflow/tests/unit/test_workflow.py,sha256=MK6hhV1Fweh1KFFzrYbGZd3lSxK8HjuMVF4ibf7sWt8,16690
103
+ hpcflow/tests/unit/test_value_sequence.py,sha256=DoxXV_hUJ4ptMaiqJ8-tjZM6sLeZ82i4rxtXRdZA8VM,7330
104
+ hpcflow/tests/unit/test_workflow.py,sha256=DOfjXJ-tkn-xfk4gwlpt4hpylA02em7YWCk5QG4SwP4,20831
103
105
  hpcflow/viz_demo.ipynb,sha256=1QdnVsk72vihv2L6hOGyk318uEa22ZSgGxQCa7hW2oo,6238
104
- hpcflow_new2-0.2.0a69.dist-info/METADATA,sha256=DAKXsWTAkXE1WZs-lY_6DPyba87jtSgZQMsbC2zZt9M,1878
105
- hpcflow_new2-0.2.0a69.dist-info/WHEEL,sha256=kLuE8m1WYU0Ig0_YEGrXyTtiJvKPpLpDEiChiNyei5Y,88
106
- hpcflow_new2-0.2.0a69.dist-info/entry_points.txt,sha256=aoGtCnFdfPcXfBdu2zZyMOJoz6fPgdR0elqsgrE-USU,106
107
- hpcflow_new2-0.2.0a69.dist-info/RECORD,,
106
+ hpcflow_new2-0.2.0a71.dist-info/METADATA,sha256=OY7oVb7BQfXsHRnrzeczU3-cCKImYKW7be2eBMXLCu8,1878
107
+ hpcflow_new2-0.2.0a71.dist-info/WHEEL,sha256=kLuE8m1WYU0Ig0_YEGrXyTtiJvKPpLpDEiChiNyei5Y,88
108
+ hpcflow_new2-0.2.0a71.dist-info/entry_points.txt,sha256=aoGtCnFdfPcXfBdu2zZyMOJoz6fPgdR0elqsgrE-USU,106
109
+ hpcflow_new2-0.2.0a71.dist-info/RECORD,,