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.
- hpcflow/_version.py +1 -1
- hpcflow/sdk/__init__.py +1 -0
- hpcflow/sdk/core/actions.py +24 -7
- hpcflow/sdk/core/element.py +99 -25
- hpcflow/sdk/core/parameters.py +316 -69
- hpcflow/sdk/core/task.py +312 -176
- hpcflow/sdk/core/task_schema.py +27 -18
- hpcflow/sdk/core/test_utils.py +16 -1
- hpcflow/sdk/core/utils.py +18 -2
- hpcflow/sdk/core/workflow.py +15 -11
- hpcflow/tests/unit/test_app.py +1 -8
- hpcflow/tests/unit/test_input_value.py +41 -0
- hpcflow/tests/unit/test_schema_input.py +191 -0
- hpcflow/tests/unit/test_task.py +68 -23
- hpcflow/tests/unit/test_value_sequence.py +219 -0
- hpcflow/tests/unit/test_workflow.py +200 -63
- {hpcflow_new2-0.2.0a69.dist-info → hpcflow_new2-0.2.0a71.dist-info}/METADATA +1 -1
- {hpcflow_new2-0.2.0a69.dist-info → hpcflow_new2-0.2.0a71.dist-info}/RECORD +20 -18
- {hpcflow_new2-0.2.0a69.dist-info → hpcflow_new2-0.2.0a71.dist-info}/WHEEL +0 -0
- {hpcflow_new2-0.2.0a69.dist-info → hpcflow_new2-0.2.0a71.dist-info}/entry_points.txt +0 -0
@@ -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
|
-
|
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
|
-
|
339
|
-
|
340
|
-
|
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
|
-
|
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
|
-
|
370
|
-
|
371
|
-
|
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
|
-
|
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
|
-
|
390
|
-
|
391
|
-
|
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
|
-
|
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
|
-
|
419
|
-
|
420
|
-
|
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
|
-
|
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
|
-
|
443
|
-
|
444
|
-
|
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
|
-
|
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
|
-
|
473
|
-
|
474
|
-
|
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
|
-
|
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
|
-
|
496
|
-
|
497
|
-
|
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
|
-
|
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
|
-
|
527
|
-
|
528
|
-
|
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
|
-
|
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
|
-
|
550
|
-
|
551
|
-
|
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
|
-
|
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
|
-
|
575
|
-
|
576
|
-
|
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,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=
|
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=
|
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=
|
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=
|
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=
|
29
|
-
hpcflow/sdk/core/task.py,sha256=
|
30
|
-
hpcflow/sdk/core/task_schema.py,sha256=
|
31
|
-
hpcflow/sdk/core/test_utils.py,sha256=
|
32
|
-
hpcflow/sdk/core/utils.py,sha256=
|
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=
|
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=
|
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=
|
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=
|
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/
|
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.
|
105
|
-
hpcflow_new2-0.2.
|
106
|
-
hpcflow_new2-0.2.
|
107
|
-
hpcflow_new2-0.2.
|
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,,
|
File without changes
|
File without changes
|