hpcflow-new2 0.2.0a199__py3-none-any.whl → 0.2.0a200__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/app.py +16 -3
- hpcflow/sdk/core/utils.py +58 -12
- hpcflow/sdk/core/workflow.py +49 -20
- hpcflow/tests/data/benchmark_script_runner.yaml +26 -0
- hpcflow/tests/unit/test_workflow_template.py +31 -0
- {hpcflow_new2-0.2.0a199.dist-info → hpcflow_new2-0.2.0a200.dist-info}/METADATA +1 -1
- {hpcflow_new2-0.2.0a199.dist-info → hpcflow_new2-0.2.0a200.dist-info}/RECORD +11 -10
- {hpcflow_new2-0.2.0a199.dist-info → hpcflow_new2-0.2.0a200.dist-info}/LICENSE +0 -0
- {hpcflow_new2-0.2.0a199.dist-info → hpcflow_new2-0.2.0a200.dist-info}/WHEEL +0 -0
- {hpcflow_new2-0.2.0a199.dist-info → hpcflow_new2-0.2.0a200.dist-info}/entry_points.txt +0 -0
hpcflow/_version.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = "0.2.
|
1
|
+
__version__ = "0.2.0a200"
|
hpcflow/sdk/app.py
CHANGED
@@ -2370,10 +2370,23 @@ class BaseApp(metaclass=Singleton):
|
|
2370
2370
|
else:
|
2371
2371
|
print(contents)
|
2372
2372
|
|
2373
|
-
def load_demo_workflow(
|
2374
|
-
|
2373
|
+
def load_demo_workflow(
|
2374
|
+
self, name: str, variables: dict[str, str] | Literal[False] | None = None
|
2375
|
+
) -> _WorkflowTemplate:
|
2376
|
+
"""Load a WorkflowTemplate object from a builtin demo template file.
|
2377
|
+
|
2378
|
+
Parameters
|
2379
|
+
----------
|
2380
|
+
name:
|
2381
|
+
Name of the demo workflow to load.
|
2382
|
+
variables:
|
2383
|
+
String variables to substitute in the demo workflow. Substitutions will be
|
2384
|
+
attempted if the file looks to contain variable references (like
|
2385
|
+
"<<var:name>>"). If set to `False`, no substitutions will occur, which may
|
2386
|
+
result in an invalid workflow template!
|
2387
|
+
"""
|
2375
2388
|
with self.get_demo_workflow_template_file(name) as path:
|
2376
|
-
return self.WorkflowTemplate.from_file(path)
|
2389
|
+
return self.WorkflowTemplate.from_file(path, variables=variables)
|
2377
2390
|
|
2378
2391
|
def template_components_from_json_like(
|
2379
2392
|
self, json_like: dict[str, dict]
|
hpcflow/sdk/core/utils.py
CHANGED
@@ -414,20 +414,44 @@ def substitute_string_vars(string: str, variables: dict[str, str]):
|
|
414
414
|
|
415
415
|
@TimeIt.decorator
|
416
416
|
def read_YAML_str(
|
417
|
-
yaml_str: str, typ="safe", variables: dict[str, str] | None = None
|
417
|
+
yaml_str: str, typ="safe", variables: dict[str, str] | Literal[False] | None = None
|
418
418
|
) -> Any:
|
419
|
-
"""Load a YAML string. This will produce basic objects.
|
420
|
-
|
421
|
-
|
419
|
+
"""Load a YAML string. This will produce basic objects.
|
420
|
+
|
421
|
+
Parameters
|
422
|
+
----------
|
423
|
+
yaml_str:
|
424
|
+
The YAML string to parse.
|
425
|
+
typ:
|
426
|
+
Load type passed to the YAML library.
|
427
|
+
variables:
|
428
|
+
String variables to substitute in `yaml_str`. Substitutions will be attempted if
|
429
|
+
the file looks to contain variable references (like "<<var:name>>"). If set to
|
430
|
+
`False`, no substitutions will occur.
|
431
|
+
"""
|
432
|
+
if variables is not False and "<<var:" in yaml_str:
|
433
|
+
yaml_str = substitute_string_vars(yaml_str, variables=variables or {})
|
422
434
|
yaml = YAML(typ=typ)
|
423
435
|
return yaml.load(yaml_str)
|
424
436
|
|
425
437
|
|
426
438
|
@TimeIt.decorator
|
427
439
|
def read_YAML_file(
|
428
|
-
path: PathLike, typ="safe", variables: dict[str, str] | None = None
|
440
|
+
path: PathLike, typ="safe", variables: dict[str, str] | Literal[False] | None = None
|
429
441
|
) -> Any:
|
430
|
-
"""Load a YAML file. This will produce basic objects.
|
442
|
+
"""Load a YAML file. This will produce basic objects.
|
443
|
+
|
444
|
+
Parameters
|
445
|
+
----------
|
446
|
+
path:
|
447
|
+
Path to the YAML file to parse.
|
448
|
+
typ:
|
449
|
+
Load type passed to the YAML library.
|
450
|
+
variables:
|
451
|
+
String variables to substitute in the file given by `path`. Substitutions will be
|
452
|
+
attempted if the file looks to contain variable references (like "<<var:name>>").
|
453
|
+
If set to `False`, no substitutions will occur.
|
454
|
+
"""
|
431
455
|
with fsspec.open(path, "rt") as f:
|
432
456
|
yaml_str: str = f.read()
|
433
457
|
return read_YAML_str(yaml_str, typ=typ, variables=variables)
|
@@ -440,15 +464,37 @@ def write_YAML_file(obj, path: str | Path, typ: str = "safe") -> None:
|
|
440
464
|
yaml.dump(obj, fp)
|
441
465
|
|
442
466
|
|
443
|
-
def read_JSON_string(
|
444
|
-
|
445
|
-
|
446
|
-
|
467
|
+
def read_JSON_string(
|
468
|
+
json_str: str, variables: dict[str, str] | Literal[False] | None = None
|
469
|
+
) -> Any:
|
470
|
+
"""Load a JSON string. This will produce basic objects.
|
471
|
+
|
472
|
+
Parameters
|
473
|
+
----------
|
474
|
+
json_str:
|
475
|
+
The JSON string to parse.
|
476
|
+
variables:
|
477
|
+
String variables to substitute in `json_str`. Substitutions will be attempted if
|
478
|
+
the file looks to contain variable references (like "<<var:name>>"). If set to
|
479
|
+
`False`, no substitutions will occur.
|
480
|
+
"""
|
481
|
+
if variables is not False and "<<var:" in json_str:
|
482
|
+
json_str = substitute_string_vars(json_str, variables=variables or {})
|
447
483
|
return json.loads(json_str)
|
448
484
|
|
449
485
|
|
450
|
-
def read_JSON_file(path, variables: dict[str, str] | None = None) -> Any:
|
451
|
-
"""Load a JSON file. This will produce basic objects.
|
486
|
+
def read_JSON_file(path, variables: dict[str, str] | Literal[False] | None = None) -> Any:
|
487
|
+
"""Load a JSON file. This will produce basic objects.
|
488
|
+
|
489
|
+
Parameters
|
490
|
+
----------
|
491
|
+
path:
|
492
|
+
Path to the JSON file to parse.
|
493
|
+
variables:
|
494
|
+
String variables to substitute in the file given by `path`. Substitutions will be
|
495
|
+
attempted if the file looks to contain variable references (like "<<var:name>>").
|
496
|
+
If set to `False`, no substitutions will occur.
|
497
|
+
"""
|
452
498
|
with fsspec.open(path, "rt") as f:
|
453
499
|
json_str: str = f.read()
|
454
500
|
return read_JSON_string(json_str, variables=variables)
|
hpcflow/sdk/core/workflow.py
CHANGED
@@ -564,7 +564,7 @@ class WorkflowTemplate(JSONLike):
|
|
564
564
|
def from_YAML_string(
|
565
565
|
cls,
|
566
566
|
string: str,
|
567
|
-
variables: dict[str, str] | None = None,
|
567
|
+
variables: dict[str, str] | Literal[False] | None = None,
|
568
568
|
) -> WorkflowTemplate:
|
569
569
|
"""Load from a YAML string.
|
570
570
|
|
@@ -573,7 +573,10 @@ class WorkflowTemplate(JSONLike):
|
|
573
573
|
string
|
574
574
|
The YAML string containing the workflow template parametrisation.
|
575
575
|
variables
|
576
|
-
String variables to substitute in `string`.
|
576
|
+
String variables to substitute in `string`. Substitutions will be attempted if
|
577
|
+
the YAML string looks to contain variable references (like "<<var:name>>"). If
|
578
|
+
set to `False`, no substitutions will occur, which may result in an invalid
|
579
|
+
workflow template!
|
577
580
|
"""
|
578
581
|
return cls._from_data(read_YAML_str(string, variables=variables))
|
579
582
|
|
@@ -597,7 +600,7 @@ class WorkflowTemplate(JSONLike):
|
|
597
600
|
def from_YAML_file(
|
598
601
|
cls,
|
599
602
|
path: PathLike,
|
600
|
-
variables: dict[str, str] | None = None,
|
603
|
+
variables: dict[str, str] | Literal[False] | None = None,
|
601
604
|
) -> WorkflowTemplate:
|
602
605
|
"""Load from a YAML file.
|
603
606
|
|
@@ -606,7 +609,10 @@ class WorkflowTemplate(JSONLike):
|
|
606
609
|
path
|
607
610
|
The path to the YAML file containing the workflow template parametrisation.
|
608
611
|
variables
|
609
|
-
String variables to substitute in the file given by `path`.
|
612
|
+
String variables to substitute in the file given by `path`. Substitutions will
|
613
|
+
be attempted if the YAML file looks to contain variable references (like
|
614
|
+
"<<var:name>>"). If set to `False`, no substitutions will occur, which may
|
615
|
+
result in an invalid workflow template!
|
610
616
|
|
611
617
|
"""
|
612
618
|
cls._app.logger.debug("parsing workflow template from a YAML file")
|
@@ -620,7 +626,7 @@ class WorkflowTemplate(JSONLike):
|
|
620
626
|
def from_JSON_string(
|
621
627
|
cls,
|
622
628
|
string: str,
|
623
|
-
variables: dict[str, str] | None = None,
|
629
|
+
variables: dict[str, str] | Literal[False] | None = None,
|
624
630
|
) -> WorkflowTemplate:
|
625
631
|
"""Load from a JSON string.
|
626
632
|
|
@@ -629,7 +635,10 @@ class WorkflowTemplate(JSONLike):
|
|
629
635
|
string
|
630
636
|
The JSON string containing the workflow template parametrisation.
|
631
637
|
variables
|
632
|
-
String variables to substitute in `string`.
|
638
|
+
String variables to substitute in `string`. Substitutions will be attempted if
|
639
|
+
the JSON string looks to contain variable references (like "<<var:name>>"). If
|
640
|
+
set to `False`, no substitutions will occur, which may result in an invalid
|
641
|
+
workflow template!
|
633
642
|
"""
|
634
643
|
return cls._from_data(read_JSON_string(string, variables=variables))
|
635
644
|
|
@@ -638,7 +647,7 @@ class WorkflowTemplate(JSONLike):
|
|
638
647
|
def from_JSON_file(
|
639
648
|
cls,
|
640
649
|
path: PathLike,
|
641
|
-
variables: dict[str, str] | None = None,
|
650
|
+
variables: dict[str, str] | Literal[False] | None = None,
|
642
651
|
) -> WorkflowTemplate:
|
643
652
|
"""Load from a JSON file.
|
644
653
|
|
@@ -647,7 +656,10 @@ class WorkflowTemplate(JSONLike):
|
|
647
656
|
path
|
648
657
|
The path to the JSON file containing the workflow template parametrisation.
|
649
658
|
variables
|
650
|
-
String variables to substitute in the file given by `path`.
|
659
|
+
String variables to substitute in the file given by `path`. Substitutions will
|
660
|
+
be attempted if the JSON file looks to contain variable references (like
|
661
|
+
"<<var:name>>"). If set to `False`, no substitutions will occur, which may
|
662
|
+
result in an invalid workflow template!
|
651
663
|
"""
|
652
664
|
cls._app.logger.debug("parsing workflow template from a JSON file")
|
653
665
|
data = read_JSON_file(path, variables=variables)
|
@@ -661,7 +673,7 @@ class WorkflowTemplate(JSONLike):
|
|
661
673
|
cls,
|
662
674
|
path: PathLike,
|
663
675
|
template_format: Literal["yaml", "json"] | None = None,
|
664
|
-
variables: dict[str, str] | None = None,
|
676
|
+
variables: dict[str, str] | Literal[False] | None = None,
|
665
677
|
) -> WorkflowTemplate:
|
666
678
|
"""Load from either a YAML or JSON file, depending on the file extension.
|
667
679
|
|
@@ -673,8 +685,10 @@ class WorkflowTemplate(JSONLike):
|
|
673
685
|
The file format to expect at `path`. One of "json" or "yaml", if specified. By
|
674
686
|
default, "yaml".
|
675
687
|
variables
|
676
|
-
String variables to substitute in the file given by `path`.
|
677
|
-
|
688
|
+
String variables to substitute in the file given by `path`. Substitutions will
|
689
|
+
be attempted if the file looks to contain variable references (like
|
690
|
+
"<<var:name>>"). If set to `False`, no substitutions will occur, which may
|
691
|
+
result in an invalid workflow template!
|
678
692
|
"""
|
679
693
|
path_ = Path(path or ".")
|
680
694
|
fmt = template_format.lower() if template_format else None
|
@@ -983,7 +997,7 @@ class Workflow(AppAware):
|
|
983
997
|
ts_fmt: str | None = None,
|
984
998
|
ts_name_fmt: str | None = None,
|
985
999
|
store_kwargs: dict[str, Any] | None = None,
|
986
|
-
variables: dict[str, str] | None = None,
|
1000
|
+
variables: dict[str, str] | Literal[False] | None = None,
|
987
1001
|
) -> Workflow:
|
988
1002
|
"""Generate from a YAML file.
|
989
1003
|
|
@@ -1013,7 +1027,10 @@ class Workflow(AppAware):
|
|
1013
1027
|
store_kwargs:
|
1014
1028
|
Keyword arguments to pass to the store's `write_empty_workflow` method.
|
1015
1029
|
variables:
|
1016
|
-
String variables to substitute in the file given by `YAML_path`.
|
1030
|
+
String variables to substitute in the file given by `YAML_path`. Substitutions
|
1031
|
+
will be attempted if the YAML file looks to contain variable references (like
|
1032
|
+
"<<var:name>>"). If set to `False`, no substitutions will occur, which may
|
1033
|
+
result in an invalid workflow template!
|
1017
1034
|
"""
|
1018
1035
|
template = cls._app.WorkflowTemplate.from_YAML_file(
|
1019
1036
|
path=YAML_path,
|
@@ -1041,7 +1058,7 @@ class Workflow(AppAware):
|
|
1041
1058
|
ts_fmt: str | None = None,
|
1042
1059
|
ts_name_fmt: str | None = None,
|
1043
1060
|
store_kwargs: dict[str, Any] | None = None,
|
1044
|
-
variables: dict[str, str] | None = None,
|
1061
|
+
variables: dict[str, str] | Literal[False] | None = None,
|
1045
1062
|
status: Status | None = None,
|
1046
1063
|
) -> Workflow:
|
1047
1064
|
"""Generate from a YAML string.
|
@@ -1072,7 +1089,10 @@ class Workflow(AppAware):
|
|
1072
1089
|
store_kwargs:
|
1073
1090
|
Keyword arguments to pass to the store's `write_empty_workflow` method.
|
1074
1091
|
variables:
|
1075
|
-
String variables to substitute in the string `YAML_str`.
|
1092
|
+
String variables to substitute in the string `YAML_str`. Substitutions will be
|
1093
|
+
attempted if the YAML string looks to contain variable references (like
|
1094
|
+
"<<var:name>>"). If set to `False`, no substitutions will occur, which may
|
1095
|
+
result in an invalid workflow template!
|
1076
1096
|
"""
|
1077
1097
|
template = cls._app.WorkflowTemplate.from_YAML_string(
|
1078
1098
|
string=YAML_str,
|
@@ -1101,7 +1121,7 @@ class Workflow(AppAware):
|
|
1101
1121
|
ts_fmt: str | None = None,
|
1102
1122
|
ts_name_fmt: str | None = None,
|
1103
1123
|
store_kwargs: dict[str, Any] | None = None,
|
1104
|
-
variables: dict[str, str] | None = None,
|
1124
|
+
variables: dict[str, str] | Literal[False] | None = None,
|
1105
1125
|
status: Status | None = None,
|
1106
1126
|
) -> Workflow:
|
1107
1127
|
"""Generate from a JSON file.
|
@@ -1132,7 +1152,10 @@ class Workflow(AppAware):
|
|
1132
1152
|
store_kwargs:
|
1133
1153
|
Keyword arguments to pass to the store's `write_empty_workflow` method.
|
1134
1154
|
variables:
|
1135
|
-
String variables to substitute in the file given by `JSON_path`.
|
1155
|
+
String variables to substitute in the file given by `JSON_path`. Substitutions
|
1156
|
+
will be attempted if the JSON file looks to contain variable references (like
|
1157
|
+
"<<var:name>>"). If set to `False`, no substitutions will occur, which may
|
1158
|
+
result in an invalid workflow template!
|
1136
1159
|
"""
|
1137
1160
|
template = cls._app.WorkflowTemplate.from_JSON_file(
|
1138
1161
|
path=JSON_path,
|
@@ -1161,7 +1184,7 @@ class Workflow(AppAware):
|
|
1161
1184
|
ts_fmt: str | None = None,
|
1162
1185
|
ts_name_fmt: str | None = None,
|
1163
1186
|
store_kwargs: dict[str, Any] | None = None,
|
1164
|
-
variables: dict[str, str] | None = None,
|
1187
|
+
variables: dict[str, str] | Literal[False] | None = None,
|
1165
1188
|
status: Status | None = None,
|
1166
1189
|
) -> Workflow:
|
1167
1190
|
"""Generate from a JSON string.
|
@@ -1192,7 +1215,10 @@ class Workflow(AppAware):
|
|
1192
1215
|
store_kwargs:
|
1193
1216
|
Keyword arguments to pass to the store's `write_empty_workflow` method.
|
1194
1217
|
variables:
|
1195
|
-
String variables to substitute in the string `JSON_str`.
|
1218
|
+
String variables to substitute in the string `JSON_str`. Substitutions will be
|
1219
|
+
attempted if the JSON string looks to contain variable references (like
|
1220
|
+
"<<var:name>>"). If set to `False`, no substitutions will occur, which may
|
1221
|
+
result in an invalid workflow template!
|
1196
1222
|
"""
|
1197
1223
|
template = cls._app.WorkflowTemplate.from_JSON_string(
|
1198
1224
|
string=JSON_str,
|
@@ -1223,7 +1249,7 @@ class Workflow(AppAware):
|
|
1223
1249
|
ts_fmt: str | None = None,
|
1224
1250
|
ts_name_fmt: str | None = None,
|
1225
1251
|
store_kwargs: dict[str, Any] | None = None,
|
1226
|
-
variables: dict[str, str] | None = None,
|
1252
|
+
variables: dict[str, str] | Literal[False] | None = None,
|
1227
1253
|
status: Status | None = None,
|
1228
1254
|
) -> Workflow:
|
1229
1255
|
"""Generate from either a YAML or JSON file, depending on the file extension.
|
@@ -1259,6 +1285,9 @@ class Workflow(AppAware):
|
|
1259
1285
|
Keyword arguments to pass to the store's `write_empty_workflow` method.
|
1260
1286
|
variables:
|
1261
1287
|
String variables to substitute in the file given by `template_path`.
|
1288
|
+
Substitutions will be attempted if the file looks to contain variable
|
1289
|
+
references (like "<<var:name>>"). If set to `False`, no substitutions will
|
1290
|
+
occur, which may result in an invalid workflow template!
|
1262
1291
|
"""
|
1263
1292
|
try:
|
1264
1293
|
template = cls._app.WorkflowTemplate.from_file(
|
@@ -0,0 +1,26 @@
|
|
1
|
+
doc: |
|
2
|
+
A workflow for benchmarking the overhead introduced by hpcflow in running a Python
|
3
|
+
script `N` times.
|
4
|
+
|
5
|
+
template_components:
|
6
|
+
task_schemas:
|
7
|
+
- objective: run_script
|
8
|
+
inputs:
|
9
|
+
- parameter: p1
|
10
|
+
outputs:
|
11
|
+
- parameter: p2
|
12
|
+
actions:
|
13
|
+
- environments:
|
14
|
+
- scope:
|
15
|
+
type: any
|
16
|
+
environment: python_env
|
17
|
+
script: <<script:main_script_test_direct_in_direct_out.py>>
|
18
|
+
script_exe: python_script
|
19
|
+
script_data_in: direct
|
20
|
+
script_data_out: direct
|
21
|
+
|
22
|
+
tasks:
|
23
|
+
- schema: run_script
|
24
|
+
inputs:
|
25
|
+
p1: 101
|
26
|
+
repeats: <<var:N[default=1]>>
|
@@ -1,5 +1,7 @@
|
|
1
|
+
from textwrap import dedent
|
1
2
|
import pytest
|
2
3
|
from hpcflow.app import app as hf
|
4
|
+
from hpcflow.sdk.core.errors import MissingVariableSubstitutionError
|
3
5
|
from hpcflow.sdk.core.test_utils import (
|
4
6
|
make_test_data_YAML_workflow_template,
|
5
7
|
)
|
@@ -38,6 +40,35 @@ def test_workflow_template_vars(tmp_path, new_null_config):
|
|
38
40
|
assert wkt.tasks[0].element_sets[0].repeats[0]["number"] == num_repeats
|
39
41
|
|
40
42
|
|
43
|
+
def test_workflow_template_vars_raise_no_vars(tmp_path, new_null_config):
|
44
|
+
# no default value for the variable is provided in `benchmark_N_elements`, so should
|
45
|
+
# raise if the variables dict is not passed:
|
46
|
+
with pytest.raises(MissingVariableSubstitutionError):
|
47
|
+
make_test_data_YAML_workflow_template("benchmark_N_elements.yaml")
|
48
|
+
|
49
|
+
|
50
|
+
def test_workflow_template_vars_defaults_used(tmp_path, new_null_config):
|
51
|
+
# `benchmark_script_runner` contains a default value for the variable `N`, so that
|
52
|
+
# should be used, since we don't pass any variables:
|
53
|
+
wkt = make_test_data_YAML_workflow_template("benchmark_script_runner.yaml")
|
54
|
+
assert wkt.tasks[0].element_sets[0].repeats[0]["number"] == 1
|
55
|
+
|
56
|
+
|
57
|
+
def test_workflow_template_vars_False_no_substitution(tmp_path, new_null_config):
|
58
|
+
# read a yaml template, check variables are not substituted, when `variables=False`:
|
59
|
+
wkt_yaml = dedent(
|
60
|
+
"""\
|
61
|
+
name: workflow_1
|
62
|
+
tasks:
|
63
|
+
- schema: test_t1_conditional_OS
|
64
|
+
inputs:
|
65
|
+
p1: <<var:my_var>>
|
66
|
+
"""
|
67
|
+
)
|
68
|
+
wkt = hf.WorkflowTemplate.from_YAML_string(wkt_yaml, variables=False)
|
69
|
+
assert wkt.tasks[0].element_sets[0].inputs[0].value == "<<var:my_var>>"
|
70
|
+
|
71
|
+
|
41
72
|
def test_env_preset_merge_simple(null_config):
|
42
73
|
s1 = hf.TaskSchema(
|
43
74
|
objective="s1",
|
@@ -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=P2b-8QdQqkSS7cJB6CB3CudUuJ9iZzTh2fQF4hNdCa4,1118
|
4
|
-
hpcflow/_version.py,sha256=
|
4
|
+
hpcflow/_version.py,sha256=FIpubDr2PTbmmFVW3G71-VkQF7EsjntgWus3tJt2BqU,26
|
5
5
|
hpcflow/app.py,sha256=gl2viVS65PbpDhUp2DARaYHFDqDWQjuoyB3ikrCNRW4,1367
|
6
6
|
hpcflow/cli.py,sha256=G2J3D9v6MnMWOWMMWK6UEKLn_6wnV9lT_qygEBBxg-I,66
|
7
7
|
hpcflow/data/demo_data_manifest/__init__.py,sha256=Hsq0jT8EXM13wu1MpGy5FQgyuz56ygep4VWOnulFn50,41
|
@@ -62,7 +62,7 @@ hpcflow/data/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
|
|
62
62
|
hpcflow/data/workflows/workflow_1.yaml,sha256=lF7Re2SVc_5gQk5AwB0gXaq-n-T5ia4su3zNQ9oMRV0,220
|
63
63
|
hpcflow/examples.ipynb,sha256=cLKp4QsxwwMXRanDnfWY9kqsV23q6G4raOpu6IZXnMw,28553
|
64
64
|
hpcflow/sdk/__init__.py,sha256=BEbIz8adCAX06ZmvEcquEu29PmQDvVP1I1qn_q78dYc,6289
|
65
|
-
hpcflow/sdk/app.py,sha256=
|
65
|
+
hpcflow/sdk/app.py,sha256=13tof0UtuQwNhcZFq5xM4cQFrwSm2LxXdm6ENIcYrWo,146680
|
66
66
|
hpcflow/sdk/cli.py,sha256=C_7Ts6TbspTZtUXlPwF37Vt-t71NABJ_2zNpZLYFPUE,45563
|
67
67
|
hpcflow/sdk/cli_common.py,sha256=MO0TbC280JdZTLnxSV15wE7PDNx83sotpJsyAN1E2F4,10458
|
68
68
|
hpcflow/sdk/config/__init__.py,sha256=pkufl_CXm_Kswk1x7LTavuplWjUbUCitK0AJ2E60gwM,137
|
@@ -95,9 +95,9 @@ hpcflow/sdk/core/task.py,sha256=irMSVwfqUJYq6dYtoozGoKK3TKyic4im5XQb2N9i4Zw,1425
|
|
95
95
|
hpcflow/sdk/core/task_schema.py,sha256=Aw13WNLutU_nIJknC9noJyEFkpxMLz3cN7ojIMgwZqI,38843
|
96
96
|
hpcflow/sdk/core/test_utils.py,sha256=7AWsJhJScYVzgx2edUkn1jTog1fKL54S6w_BERTEDpE,13172
|
97
97
|
hpcflow/sdk/core/types.py,sha256=y07Z6xbagPy45P4FfSu-Sv6q2Caeo9886L5JjWYaEOg,13030
|
98
|
-
hpcflow/sdk/core/utils.py,sha256=
|
98
|
+
hpcflow/sdk/core/utils.py,sha256=P3JBrPS9ZM0sKrrihxaQScdFVX6ePSYQB5Rfbboo8CM,36316
|
99
99
|
hpcflow/sdk/core/validation.py,sha256=PtM-3j5_mzp79DObgsWeJOZjOOJPKqkwWgeyDAVuAf0,1926
|
100
|
-
hpcflow/sdk/core/workflow.py,sha256=
|
100
|
+
hpcflow/sdk/core/workflow.py,sha256=dQxUyih-Q6foMTEScR4Fz9rGwAjLPvIXNEmICpBYDao,183588
|
101
101
|
hpcflow/sdk/core/zarr_io.py,sha256=i6WqkFXe-q1sJGTCYAbsNRXRrdkxZy6NRahTcuZPuX4,5906
|
102
102
|
hpcflow/sdk/data/__init__.py,sha256=-YzROirohSKU2UGYj5vkCe_J2KejbzhIjUXNaJwKHLk,568
|
103
103
|
hpcflow/sdk/data/config_file_schema.yaml,sha256=7i3z_m3GBRtLyB4c7qPngnlQWqcIq1CyCcOysDyq4es,791
|
@@ -150,6 +150,7 @@ hpcflow/tests/api/test_api.py,sha256=h0HT9W0Jd1pChrXYaBOVwGThaI3slGkloS0sbq2YX88
|
|
150
150
|
hpcflow/tests/conftest.py,sha256=xtSqhOxjZYioiAPvrKwf7NFicZoA4BR9Si4J1A8mWHw,4083
|
151
151
|
hpcflow/tests/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
152
152
|
hpcflow/tests/data/benchmark_N_elements.yaml,sha256=6N6QK5y4A-o6u-XZHe7igcUvzjx73sBmnNLt9MXCSJs,108
|
153
|
+
hpcflow/tests/data/benchmark_script_runner.yaml,sha256=dd_csdbsC60IfJ8V1RUWKnlno_8aqXGEQa6O_KHK_yQ,643
|
153
154
|
hpcflow/tests/data/multi_path_sequences.yaml,sha256=jMAGJO0XvD5LBO-BWX3H-LSILeZO5IZsN-oLANrZqrE,848
|
154
155
|
hpcflow/tests/data/workflow_1.json,sha256=xdqa8nIOxNN-A2F7wJX7LTOT3KOEZmulaa-9tsSB-nk,119
|
155
156
|
hpcflow/tests/data/workflow_1.yaml,sha256=7mGwCCQX3VBWcpSYecAKqz_Gd-IODjhOlDNPh95Rw2U,85
|
@@ -199,7 +200,7 @@ hpcflow/tests/unit/test_task_schema.py,sha256=8qLioZQxdthDRU_-wFRFqfnuC8ygjyXt9i
|
|
199
200
|
hpcflow/tests/unit/test_utils.py,sha256=Owr-7BP0_ryAhgnf14CMYFlDkY8_fqfnSwHMJTv8BAc,14645
|
200
201
|
hpcflow/tests/unit/test_value_sequence.py,sha256=wQl-PVB72159OSVrpLPrHd2DyVjc2jNi79nDKhFbWMU,15858
|
201
202
|
hpcflow/tests/unit/test_workflow.py,sha256=SKH1GwFufZTEkgKCyOiJhvajxJwQdX2dpVoFGLrQD2s,24409
|
202
|
-
hpcflow/tests/unit/test_workflow_template.py,sha256=
|
203
|
+
hpcflow/tests/unit/test_workflow_template.py,sha256=M99VxA7hHRsrN7IjrcwHzA_yShH3O6BhoPU0rrl5jJc,6709
|
203
204
|
hpcflow/tests/unit/utils/test_arrays.py,sha256=12d08CMdUrZ61_2kX0XyCNKf5XqOsJQwa6ohKxquZE8,1475
|
204
205
|
hpcflow/tests/unit/utils/test_deferred_file_writer.py,sha256=1UvMGRT2pes1iDZdgL1HXTS7beHCvPhg4H24crjXxGo,1032
|
205
206
|
hpcflow/tests/unit/utils/test_hashing.py,sha256=Q1BZRdrbF5BKb5jkmOZE0QoaoOg-zHwymmamekxO5Mo,2334
|
@@ -214,8 +215,8 @@ hpcflow/tests/workflows/test_submission.py,sha256=SUbBUbD8C8LSulrI7aETkzP9RqED48
|
|
214
215
|
hpcflow/tests/workflows/test_workflows.py,sha256=9z3rtXjA5iMOp4C0q4TkD_9kLzwourCY-obpeOtnNt0,18927
|
215
216
|
hpcflow/tests/workflows/test_zip.py,sha256=MzEwsIAYV_1A3bD0XRo23zUwUKVzkkmNd8_cil6YdWQ,578
|
216
217
|
hpcflow/viz_demo.ipynb,sha256=6D9uBbWK3oMfbaf93Tnv5riFPtW-2miUTWNr9kGcnd4,228913
|
217
|
-
hpcflow_new2-0.2.
|
218
|
-
hpcflow_new2-0.2.
|
219
|
-
hpcflow_new2-0.2.
|
220
|
-
hpcflow_new2-0.2.
|
221
|
-
hpcflow_new2-0.2.
|
218
|
+
hpcflow_new2-0.2.0a200.dist-info/LICENSE,sha256=Xhxf_KsrJNJFGMogumZhXSTPhUOVHCWf7nU-TDzqg0E,16763
|
219
|
+
hpcflow_new2-0.2.0a200.dist-info/METADATA,sha256=ziKbPKmKGqO-998kZbBSTppNTEA_Ciakm1LHXV5N0zs,2447
|
220
|
+
hpcflow_new2-0.2.0a200.dist-info/WHEEL,sha256=kLuE8m1WYU0Ig0_YEGrXyTtiJvKPpLpDEiChiNyei5Y,88
|
221
|
+
hpcflow_new2-0.2.0a200.dist-info/entry_points.txt,sha256=aoGtCnFdfPcXfBdu2zZyMOJoz6fPgdR0elqsgrE-USU,106
|
222
|
+
hpcflow_new2-0.2.0a200.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|