dv-flow-mgr 0.0.1.13862522550a1__py3-none-any.whl → 0.0.1.13867752514a1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. dv_flow/mgr/__init__.py +21 -1
  2. dv_flow/mgr/__main__.py +1 -1
  3. dv_flow/mgr/cmds/cmd_run.py +21 -0
  4. dv_flow/mgr/eval_jq.py +21 -1
  5. dv_flow/mgr/expr_eval.py +21 -1
  6. dv_flow/mgr/expr_parser.py +22 -1
  7. dv_flow/mgr/fileset.py +1 -1
  8. dv_flow/mgr/fragment_def.py +1 -1
  9. dv_flow/mgr/package.py +1 -1
  10. dv_flow/mgr/package_def.py +1 -1
  11. dv_flow/mgr/package_import_spec.py +1 -1
  12. dv_flow/mgr/param.py +21 -1
  13. dv_flow/mgr/param_def.py +21 -1
  14. dv_flow/mgr/param_ref_eval.py +21 -0
  15. dv_flow/mgr/pkg_rgy.py +1 -1
  16. dv_flow/mgr/std/create_file.py +21 -0
  17. dv_flow/mgr/std/exec.py +21 -0
  18. dv_flow/mgr/std/fileset.py +21 -1
  19. dv_flow/mgr/std/message.py +21 -1
  20. dv_flow/mgr/std/task_null.py +21 -0
  21. dv_flow/mgr/task.py +1 -1
  22. dv_flow/mgr/task_ctor.py +22 -1
  23. dv_flow/mgr/task_data.py +1 -1
  24. dv_flow/mgr/task_def.py +7 -2
  25. dv_flow/mgr/task_exec_data.py +21 -0
  26. dv_flow/mgr/task_graph_builder.py +1 -1
  27. dv_flow/mgr/task_graph_runner.py +1 -1
  28. dv_flow/mgr/task_graph_runner_local.py +1 -1
  29. dv_flow/mgr/task_impl_data.py +21 -1
  30. dv_flow/mgr/task_listener_log.py +21 -0
  31. dv_flow/mgr/task_memento.py +1 -1
  32. dv_flow/mgr/task_node.py +58 -40
  33. dv_flow/mgr/task_output.py +22 -1
  34. dv_flow/mgr/task_params_ctor.py +21 -0
  35. dv_flow/mgr/task_runner.py +24 -3
  36. dv_flow/mgr/type_def.py +21 -1
  37. dv_flow/mgr/util.py +1 -1
  38. {dv_flow_mgr-0.0.1.13862522550a1.dist-info → dv_flow_mgr-0.0.1.13867752514a1.dist-info}/METADATA +1 -1
  39. dv_flow_mgr-0.0.1.13867752514a1.dist-info/RECORD +48 -0
  40. dv_flow_mgr-0.0.1.13862522550a1.dist-info/RECORD +0 -48
  41. {dv_flow_mgr-0.0.1.13862522550a1.dist-info → dv_flow_mgr-0.0.1.13867752514a1.dist-info}/LICENSE +0 -0
  42. {dv_flow_mgr-0.0.1.13862522550a1.dist-info → dv_flow_mgr-0.0.1.13867752514a1.dist-info}/WHEEL +0 -0
  43. {dv_flow_mgr-0.0.1.13862522550a1.dist-info → dv_flow_mgr-0.0.1.13867752514a1.dist-info}/entry_points.txt +0 -0
  44. {dv_flow_mgr-0.0.1.13862522550a1.dist-info → dv_flow_mgr-0.0.1.13867752514a1.dist-info}/top_level.txt +0 -0
dv_flow/mgr/__init__.py CHANGED
@@ -1,4 +1,24 @@
1
-
1
+ #****************************************************************************
2
+ #* __init__.py
3
+ #*
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
+ #*
6
+ #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ #* not use this file except in compliance with the License.
8
+ #* You may obtain a copy of the License at:
9
+ #*
10
+ #* http://www.apache.org/licenses/LICENSE-2.0
11
+ #*
12
+ #* Unless required by applicable law or agreed to in writing, software
13
+ #* distributed under the License is distributed on an "AS IS" BASIS,
14
+ #* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ #* See the License for the specific language governing permissions and
16
+ #* limitations under the License.
17
+ #*
18
+ #* Created on:
19
+ #* Author:
20
+ #*
21
+ #****************************************************************************
2
22
  from .package_def import *
3
23
  from .pkg_rgy import PkgRgy
4
24
  from .task_graph_runner import *
dv_flow/mgr/__main__.py CHANGED
@@ -1,7 +1,7 @@
1
1
  #****************************************************************************
2
2
  #* __main__.py
3
3
  #*
4
- #* Copyright 2023 Matthew Ballance and Contributors
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
5
  #*
6
6
  #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
7
  #* not use this file except in compliance with the License.
@@ -1,3 +1,24 @@
1
+ #****************************************************************************
2
+ #* cmd_run.py
3
+ #*
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
+ #*
6
+ #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ #* not use this file except in compliance with the License.
8
+ #* You may obtain a copy of the License at:
9
+ #*
10
+ #* http://www.apache.org/licenses/LICENSE-2.0
11
+ #*
12
+ #* Unless required by applicable law or agreed to in writing, software
13
+ #* distributed under the License is distributed on an "AS IS" BASIS,
14
+ #* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ #* See the License for the specific language governing permissions and
16
+ #* limitations under the License.
17
+ #*
18
+ #* Created on:
19
+ #* Author:
20
+ #*
21
+ #****************************************************************************
1
22
  import asyncio
2
23
  import os
3
24
  import logging
dv_flow/mgr/eval_jq.py CHANGED
@@ -1,4 +1,24 @@
1
-
1
+ #****************************************************************************
2
+ #* eval_jq.py
3
+ #*
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
+ #*
6
+ #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ #* not use this file except in compliance with the License.
8
+ #* You may obtain a copy of the License at:
9
+ #*
10
+ #* http://www.apache.org/licenses/LICENSE-2.0
11
+ #*
12
+ #* Unless required by applicable law or agreed to in writing, software
13
+ #* distributed under the License is distributed on an "AS IS" BASIS,
14
+ #* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ #* See the License for the specific language governing permissions and
16
+ #* limitations under the License.
17
+ #*
18
+ #* Created on:
19
+ #* Author:
20
+ #*
21
+ #****************************************************************************
2
22
  import jq
3
23
 
4
24
  def eval_jq(input, args):
dv_flow/mgr/expr_eval.py CHANGED
@@ -1,4 +1,24 @@
1
-
1
+ #****************************************************************************
2
+ #* expr_eval.py
3
+ #*
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
+ #*
6
+ #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ #* not use this file except in compliance with the License.
8
+ #* You may obtain a copy of the License at:
9
+ #*
10
+ #* http://www.apache.org/licenses/LICENSE-2.0
11
+ #*
12
+ #* Unless required by applicable law or agreed to in writing, software
13
+ #* distributed under the License is distributed on an "AS IS" BASIS,
14
+ #* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ #* See the License for the specific language governing permissions and
16
+ #* limitations under the License.
17
+ #*
18
+ #* Created on:
19
+ #* Author:
20
+ #*
21
+ #****************************************************************************
2
22
  import dataclasses as dc
3
23
  import json
4
24
  from typing import Any, Callable, Dict, List
@@ -1,3 +1,24 @@
1
+ #****************************************************************************
2
+ #* expr_parser.py
3
+ #*
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
+ #*
6
+ #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ #* not use this file except in compliance with the License.
8
+ #* You may obtain a copy of the License at:
9
+ #*
10
+ #* http://www.apache.org/licenses/LICENSE-2.0
11
+ #*
12
+ #* Unless required by applicable law or agreed to in writing, software
13
+ #* distributed under the License is distributed on an "AS IS" BASIS,
14
+ #* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ #* See the License for the specific language governing permissions and
16
+ #* limitations under the License.
17
+ #*
18
+ #* Created on:
19
+ #* Author:
20
+ #*
21
+ #****************************************************************************
1
22
  import dataclasses as dc
2
23
  import enum
3
24
  import ply.lex as lex
@@ -236,4 +257,4 @@ class ExprParser(object):
236
257
 
237
258
  def parse(self, input):
238
259
  return self.parser.parse(input, lexer=self.lexer)
239
-
260
+
dv_flow/mgr/fileset.py CHANGED
@@ -1,7 +1,7 @@
1
1
  #****************************************************************************
2
2
  #* fileset.py
3
3
  #*
4
- #* Copyright 2023 Matthew Ballance and Contributors
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
5
  #*
6
6
  #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
7
  #* not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  #****************************************************************************
2
2
  #* fragment_def.py
3
3
  #*
4
- #* Copyright 2023 Matthew Ballance and Contributors
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
5
  #*
6
6
  #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
7
  #* not use this file except in compliance with the License.
dv_flow/mgr/package.py CHANGED
@@ -1,7 +1,7 @@
1
1
  #****************************************************************************
2
2
  #* package.py
3
3
  #*
4
- #* Copyright 2023 Matthew Ballance and Contributors
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
5
  #*
6
6
  #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
7
  #* not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  #****************************************************************************
2
2
  #* package_def.py
3
3
  #*
4
- #* Copyright 2023 Matthew Ballance and Contributors
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
5
  #*
6
6
  #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
7
  #* not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  #****************************************************************************
2
2
  #* package_import_spec.py
3
3
  #*
4
- #* Copyright 2023 Matthew Ballance and Contributors
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
5
  #*
6
6
  #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
7
  #* not use this file except in compliance with the License.
dv_flow/mgr/param.py CHANGED
@@ -1,4 +1,24 @@
1
-
1
+ #****************************************************************************
2
+ #* param.py
3
+ #*
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
+ #*
6
+ #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ #* not use this file except in compliance with the License.
8
+ #* You may obtain a copy of the License at:
9
+ #*
10
+ #* http://www.apache.org/licenses/LICENSE-2.0
11
+ #*
12
+ #* Unless required by applicable law or agreed to in writing, software
13
+ #* distributed under the License is distributed on an "AS IS" BASIS,
14
+ #* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ #* See the License for the specific language governing permissions and
16
+ #* limitations under the License.
17
+ #*
18
+ #* Created on:
19
+ #* Author:
20
+ #*
21
+ #****************************************************************************
2
22
  from pydantic import BaseModel
3
23
  import pydantic.dataclasses as pdc
4
24
  from typing import Any, List, Union
dv_flow/mgr/param_def.py CHANGED
@@ -1,4 +1,24 @@
1
-
1
+ #****************************************************************************
2
+ #* param_def.py
3
+ #*
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
+ #*
6
+ #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ #* not use this file except in compliance with the License.
8
+ #* You may obtain a copy of the License at:
9
+ #*
10
+ #* http://www.apache.org/licenses/LICENSE-2.0
11
+ #*
12
+ #* Unless required by applicable law or agreed to in writing, software
13
+ #* distributed under the License is distributed on an "AS IS" BASIS,
14
+ #* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ #* See the License for the specific language governing permissions and
16
+ #* limitations under the License.
17
+ #*
18
+ #* Created on:
19
+ #* Author:
20
+ #*
21
+ #****************************************************************************
2
22
  from typing import Any, List, Union
3
23
  from pydantic import BaseModel, Field
4
24
 
@@ -1,3 +1,24 @@
1
+ #****************************************************************************
2
+ #* param_ref_eval.py
3
+ #*
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
+ #*
6
+ #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ #* not use this file except in compliance with the License.
8
+ #* You may obtain a copy of the License at:
9
+ #*
10
+ #* http://www.apache.org/licenses/LICENSE-2.0
11
+ #*
12
+ #* Unless required by applicable law or agreed to in writing, software
13
+ #* distributed under the License is distributed on an "AS IS" BASIS,
14
+ #* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ #* See the License for the specific language governing permissions and
16
+ #* limitations under the License.
17
+ #*
18
+ #* Created on:
19
+ #* Author:
20
+ #*
21
+ #****************************************************************************
1
22
  import dataclasses as dc
2
23
  import json
3
24
  from .expr_eval import ExprEval
dv_flow/mgr/pkg_rgy.py CHANGED
@@ -1,7 +1,7 @@
1
1
  #****************************************************************************
2
2
  #* pkg_rgy.py
3
3
  #*
4
- #* Copyright 2023 Matthew Ballance and Contributors
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
5
  #*
6
6
  #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
7
  #* not use this file except in compliance with the License.
@@ -1,3 +1,24 @@
1
+ #****************************************************************************
2
+ #* create_file.py
3
+ #*
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
+ #*
6
+ #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ #* not use this file except in compliance with the License.
8
+ #* You may obtain a copy of the License at:
9
+ #*
10
+ #* http://www.apache.org/licenses/LICENSE-2.0
11
+ #*
12
+ #* Unless required by applicable law or agreed to in writing, software
13
+ #* distributed under the License is distributed on an "AS IS" BASIS,
14
+ #* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ #* See the License for the specific language governing permissions and
16
+ #* limitations under the License.
17
+ #*
18
+ #* Created on:
19
+ #* Author:
20
+ #*
21
+ #****************************************************************************
1
22
  import os
2
23
  import hashlib
3
24
  import logging
dv_flow/mgr/std/exec.py CHANGED
@@ -1,3 +1,24 @@
1
+ #****************************************************************************
2
+ #* exec.py
3
+ #*
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
+ #*
6
+ #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ #* not use this file except in compliance with the License.
8
+ #* You may obtain a copy of the License at:
9
+ #*
10
+ #* http://www.apache.org/licenses/LICENSE-2.0
11
+ #*
12
+ #* Unless required by applicable law or agreed to in writing, software
13
+ #* distributed under the License is distributed on an "AS IS" BASIS,
14
+ #* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ #* See the License for the specific language governing permissions and
16
+ #* limitations under the License.
17
+ #*
18
+ #* Created on:
19
+ #* Author:
20
+ #*
21
+ #****************************************************************************
1
22
  import asyncio
2
23
  import logging
3
24
  from dv_flow.mgr import TaskDataResult
@@ -1,4 +1,24 @@
1
-
1
+ #****************************************************************************
2
+ #* fileset.py
3
+ #*
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
+ #*
6
+ #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ #* not use this file except in compliance with the License.
8
+ #* You may obtain a copy of the License at:
9
+ #*
10
+ #* http://www.apache.org/licenses/LICENSE-2.0
11
+ #*
12
+ #* Unless required by applicable law or agreed to in writing, software
13
+ #* distributed under the License is distributed on an "AS IS" BASIS,
14
+ #* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ #* See the License for the specific language governing permissions and
16
+ #* limitations under the License.
17
+ #*
18
+ #* Created on:
19
+ #* Author:
20
+ #*
21
+ #****************************************************************************
2
22
  import os
3
23
  import fnmatch
4
24
  import glob
@@ -1,4 +1,24 @@
1
-
1
+ #****************************************************************************
2
+ #* message.py
3
+ #*
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
+ #*
6
+ #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ #* not use this file except in compliance with the License.
8
+ #* You may obtain a copy of the License at:
9
+ #*
10
+ #* http://www.apache.org/licenses/LICENSE-2.0
11
+ #*
12
+ #* Unless required by applicable law or agreed to in writing, software
13
+ #* distributed under the License is distributed on an "AS IS" BASIS,
14
+ #* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ #* See the License for the specific language governing permissions and
16
+ #* limitations under the License.
17
+ #*
18
+ #* Created on:
19
+ #* Author:
20
+ #*
21
+ #****************************************************************************
2
22
  from dv_flow.mgr import Task, TaskDataResult
3
23
 
4
24
  async def Message(runner, input) -> TaskDataResult:
@@ -1,3 +1,24 @@
1
+ #****************************************************************************
2
+ #* task_null_params.py
3
+ #*
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
+ #*
6
+ #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ #* not use this file except in compliance with the License.
8
+ #* You may obtain a copy of the License at:
9
+ #*
10
+ #* http://www.apache.org/licenses/LICENSE-2.0
11
+ #*
12
+ #* Unless required by applicable law or agreed to in writing, software
13
+ #* distributed under the License is distributed on an "AS IS" BASIS,
14
+ #* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ #* See the License for the specific language governing permissions and
16
+ #* limitations under the License.
17
+ #*
18
+ #* Created on:
19
+ #* Author:
20
+ #*
21
+ #****************************************************************************
1
22
  from pydantic import BaseModel
2
23
  from ..task_data import TaskDataResult
3
24
 
dv_flow/mgr/task.py CHANGED
@@ -1,7 +1,7 @@
1
1
  #****************************************************************************
2
2
  #* task.py
3
3
  #*
4
- #* Copyright 2023 Matthew Ballance and Contributors
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
5
  #*
6
6
  #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
7
  #* not use this file except in compliance with the License.
dv_flow/mgr/task_ctor.py CHANGED
@@ -1,3 +1,24 @@
1
+ #****************************************************************************
2
+ #* task_ctor.py
3
+ #*
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
+ #*
6
+ #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ #* not use this file except in compliance with the License.
8
+ #* You may obtain a copy of the License at:
9
+ #*
10
+ #* http://www.apache.org/licenses/LICENSE-2.0
11
+ #*
12
+ #* Unless required by applicable law or agreed to in writing, software
13
+ #* distributed under the License is distributed on an "AS IS" BASIS,
14
+ #* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ #* See the License for the specific language governing permissions and
16
+ #* limitations under the License.
17
+ #*
18
+ #* Created on:
19
+ #* Author:
20
+ #*
21
+ #****************************************************************************
1
22
  import os
2
23
  import json
3
24
  import dataclasses as dc
@@ -40,4 +61,4 @@ class TaskCtor(object):
40
61
 
41
62
  def applyParams(self, params):
42
63
  if self.uses is not None:
43
- self.uses.applyParams(params)
64
+ self.uses.applyParams(params)
dv_flow/mgr/task_data.py CHANGED
@@ -1,7 +1,7 @@
1
1
  #****************************************************************************
2
2
  #* task_data.py
3
3
  #*
4
- #* Copyright 2023 Matthew Ballance and Contributors
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
5
  #*
6
6
  #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
7
  #* not use this file except in compliance with the License.
dv_flow/mgr/task_def.py CHANGED
@@ -1,7 +1,7 @@
1
1
  #****************************************************************************
2
2
  #* task_def.py
3
3
  #*
4
- #* Copyright 2023 Matthew Ballance and Contributors
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
5
  #*
6
6
  #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
7
  #* not use this file except in compliance with the License.
@@ -30,6 +30,11 @@ from .task_output import TaskOutput
30
30
  class TaskSpec(object):
31
31
  name : str
32
32
 
33
+ @dc.dataclass
34
+ class NeedSpec(object):
35
+ name : str
36
+ block : bool = False
37
+
33
38
  class TaskDef(BaseModel):
34
39
  """Holds definition information (ie the YAML view) for a task"""
35
40
  name : str
@@ -39,7 +44,7 @@ class TaskDef(BaseModel):
39
44
  pytask : str = dc.Field(default=None)
40
45
  desc : str = dc.Field(default="")
41
46
  doc : str = dc.Field(default="")
42
- needs : List[Union[str,TaskSpec]] = dc.Field(default_factory=list, alias="needs")
47
+ needs : List[Union[str,NeedSpec,TaskSpec]] = dc.Field(default_factory=list, alias="needs")
43
48
  params: Dict[str,Union[str,list,ParamDef]] = dc.Field(default_factory=dict, alias="with")
44
49
  passthrough: bool = dc.Field(default=False)
45
50
  consumes : List[Any] = dc.Field(default_factory=list)
@@ -1,3 +1,24 @@
1
+ #****************************************************************************
2
+ #* task_exec_data.py
3
+ #*
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
+ #*
6
+ #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ #* not use this file except in compliance with the License.
8
+ #* You may obtain a copy of the License at:
9
+ #*
10
+ #* http://www.apache.org/licenses/LICENSE-2.0
11
+ #*
12
+ #* Unless required by applicable law or agreed to in writing, software
13
+ #* distributed under the License is distributed on an "AS IS" BASIS,
14
+ #* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ #* See the License for the specific language governing permissions and
16
+ #* limitations under the License.
17
+ #*
18
+ #* Created on:
19
+ #* Author:
20
+ #*
21
+ #****************************************************************************
1
22
  import pydantic.dataclasses as dc
2
23
  from pydantic import BaseModel
3
24
  from typing import Any, Dict, List
@@ -1,7 +1,7 @@
1
1
  #****************************************************************************
2
2
  #* task_graph_builder.py
3
3
  #*
4
- #* Copyright 2023 Matthew Ballance and Contributors
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
5
  #*
6
6
  #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
7
  #* not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  #****************************************************************************
2
2
  #* task_graph_runner.py
3
3
  #*
4
- #* Copyright 2023 Matthew Ballance and Contributors
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
5
  #*
6
6
  #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
7
  #* not use this file except in compliance with the License.
@@ -1,7 +1,7 @@
1
1
  #****************************************************************************
2
2
  #* task_graph_runner_local.py
3
3
  #*
4
- #* Copyright 2023 Matthew Ballance and Contributors
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
5
  #*
6
6
  #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
7
  #* not use this file except in compliance with the License.
@@ -1,4 +1,24 @@
1
-
1
+ #****************************************************************************
2
+ #* task_impl_data.py
3
+ #*
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
+ #*
6
+ #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ #* not use this file except in compliance with the License.
8
+ #* You may obtain a copy of the License at:
9
+ #*
10
+ #* http://www.apache.org/licenses/LICENSE-2.0
11
+ #*
12
+ #* Unless required by applicable law or agreed to in writing, software
13
+ #* distributed under the License is distributed on an "AS IS" BASIS,
14
+ #* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ #* See the License for the specific language governing permissions and
16
+ #* limitations under the License.
17
+ #*
18
+ #* Created on:
19
+ #* Author:
20
+ #*
21
+ #****************************************************************************
2
22
  from pydantic import BaseModel
3
23
  from typing import Any, ClassVar, Dict, Set, List, Tuple
4
24
 
@@ -1,3 +1,24 @@
1
+ #****************************************************************************
2
+ #* task_listener_log.py
3
+ #*
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
+ #*
6
+ #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ #* not use this file except in compliance with the License.
8
+ #* You may obtain a copy of the License at:
9
+ #*
10
+ #* http://www.apache.org/licenses/LICENSE-2.0
11
+ #*
12
+ #* Unless required by applicable law or agreed to in writing, software
13
+ #* distributed under the License is distributed on an "AS IS" BASIS,
14
+ #* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ #* See the License for the specific language governing permissions and
16
+ #* limitations under the License.
17
+ #*
18
+ #* Created on:
19
+ #* Author:
20
+ #*
21
+ #****************************************************************************
1
22
  import dataclasses as dc
2
23
  from datetime import datetime
3
24
  from rich.console import Console
@@ -1,7 +1,7 @@
1
1
  #****************************************************************************
2
2
  #* task_memento.py
3
3
  #*
4
- #* Copyright 2023 Matthew Ballance and Contributors
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
5
  #*
6
6
  #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
7
  #* not use this file except in compliance with the License.
dv_flow/mgr/task_node.py CHANGED
@@ -1,10 +1,31 @@
1
+ #****************************************************************************
2
+ #* task_node.py
3
+ #*
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
+ #*
6
+ #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ #* not use this file except in compliance with the License.
8
+ #* You may obtain a copy of the License at:
9
+ #*
10
+ #* http://www.apache.org/licenses/LICENSE-2.0
11
+ #*
12
+ #* Unless required by applicable law or agreed to in writing, software
13
+ #* distributed under the License is distributed on an "AS IS" BASIS,
14
+ #* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ #* See the License for the specific language governing permissions and
16
+ #* limitations under the License.
17
+ #*
18
+ #* Created on:
19
+ #* Author:
20
+ #*
21
+ #****************************************************************************
1
22
  import os
2
23
  import sys
3
24
  import dataclasses as dc
4
25
  import pydantic.dataclasses as pdc
5
26
  import logging
6
27
  import toposort
7
- from typing import Any, Callable, ClassVar, Dict, List
28
+ from typing import Any, Callable, ClassVar, Dict, List, Tuple
8
29
  from .task_data import TaskDataInput, TaskDataOutput, TaskDataResult
9
30
  from .task_params_ctor import TaskParamsCtor
10
31
  from .param_ref_eval import ParamRefEval
@@ -25,7 +46,7 @@ class TaskNode(object):
25
46
  changed : bool = False
26
47
  passthrough : bool = False
27
48
  consumes : List[Any] = dc.field(default_factory=list)
28
- needs : List['TaskNode'] = dc.field(default_factory=list)
49
+ needs : List[Tuple['TaskNode',bool]] = dc.field(default_factory=list)
29
50
  rundir : str = dc.field(default=None)
30
51
  output : TaskDataOutput = dc.field(default=None)
31
52
  result : TaskDataResult = dc.field(default=None)
@@ -37,6 +58,10 @@ class TaskNode(object):
37
58
  def __post_init__(self):
38
59
  if self.needs is None:
39
60
  self.needs = []
61
+ else:
62
+ for i,need in enumerate(self.needs):
63
+ if not isinstance(need, tuple):
64
+ self.needs[i] = (need, False)
40
65
 
41
66
  async def do_run(self,
42
67
  runner,
@@ -44,7 +69,7 @@ class TaskNode(object):
44
69
  memento : Any = None) -> 'TaskDataResult':
45
70
  self._log.debug("--> do_run: %s" % self.name)
46
71
  changed = False
47
- for dep in self.needs:
72
+ for dep,_ in self.needs:
48
73
  changed |= dep.changed
49
74
 
50
75
  self.rundir = rundir
@@ -52,22 +77,30 @@ class TaskNode(object):
52
77
  # TODO: Form dep-map from inputs
53
78
 
54
79
  dep_m = {}
55
- for need in self.needs:
80
+ for need,block in self.needs:
56
81
  self._log.debug("dep %s dep_m: %s" % (need.name, str(dep_m)))
57
- for subdep in need.output.dep_m.keys():
58
- if subdep not in dep_m.keys():
59
- dep_m[subdep] = []
60
- dep_m[subdep].extend(need.output.dep_m[subdep])
82
+ if not block:
83
+ for subdep in need.output.dep_m.keys():
84
+ if subdep not in dep_m.keys():
85
+ dep_m[subdep] = []
86
+ for dep in need.output.dep_m[subdep]:
87
+ if dep not in dep_m[subdep]:
88
+ dep_m[subdep].append(dep)
61
89
  self._log.debug("input dep_m: %s %s" % (self.name, str(dep_m)))
62
90
 
63
91
  sorted = toposort.toposort(dep_m)
64
92
 
65
93
  in_params_m = {}
66
- for need in self.needs:
67
- for p in need.output.output:
68
- if p.src not in in_params_m.keys():
69
- in_params_m[p.src] = []
70
- in_params_m[p.src].append(p)
94
+ added_srcs = set()
95
+ for need,block in self.needs:
96
+ if not block:
97
+ for p in need.output.output:
98
+ # Avoid adding parameters from a single task more than once
99
+ if p.src not in added_srcs:
100
+ added_srcs.add(p.src)
101
+ if p.src not in in_params_m.keys():
102
+ in_params_m[p.src] = []
103
+ in_params_m[p.src].append(p)
71
104
 
72
105
  # in_params holds parameter sets ordered by dependency
73
106
  in_params = []
@@ -129,43 +162,28 @@ class TaskNode(object):
129
162
 
130
163
  # Pass-through all dependencies
131
164
  # Add an entry for ourselves
132
- dep_m[self.name] = list(need.name for need in self.needs)
165
+ dep_m[self.name] = list(need.name for need,_ in self.needs)
133
166
 
134
167
  if self.passthrough:
135
168
  self._log.debug("passthrough: %s" % self.name)
136
169
 
137
170
  if self.consumes is None and len(self.consumes):
138
171
  self._log.debug("Propagating all input parameters to output")
139
- for need in self.needs:
140
- output.extend(need.output.output)
172
+ for need,block in self.needs:
173
+ if not block:
174
+ output.extend(need.output.output)
141
175
  else:
142
176
  # Filter out parameter sets that were consumed
143
177
  self._log.debug("Propagating non-consumed input parameters to output")
144
178
  self._log.debug("consumes: %s" % str(self.consumes))
145
- for need in self.needs:
146
- for out in need.output.output:
147
- if not self._matches(out, self.consumes):
148
- self._log.debug("Propagating type %s from %s" % (
149
- getattr(out, "type", "<unknown>"),
150
- getattr(out, "src", "<unknown>")))
151
- output.append(out)
152
-
153
- # consumed = False
154
- # for c in self.consumes:
155
- # match = False
156
- # for k,v in c.items():
157
- # self._log.debug("k,v: %s,%s" % (k,v))
158
- # if hasattr(out, k):
159
- # self._log.debug("has attribute: %s" % str(getattr(out ,k)))
160
- # if getattr(out, k) == v:
161
- # self._log.debug("match")
162
- # match = True
163
- # break
164
- # if match:
165
- # consumed = True
166
- # break
167
-
168
- # if not consumed:
179
+ for need,block in self.needs:
180
+ if not block:
181
+ for out in need.output.output:
182
+ if not self._matches(out, self.consumes):
183
+ self._log.debug("Propagating type %s from %s" % (
184
+ getattr(out, "type", "<unknown>"),
185
+ getattr(out, "src", "<unknown>")))
186
+ output.append(out)
169
187
  else:
170
188
  self._log.debug("non-passthrough: %s (only local outputs propagated)" % self.name)
171
189
  # empty dependency map
@@ -1,7 +1,28 @@
1
+ #****************************************************************************
2
+ #* task_output.py
3
+ #*
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
+ #*
6
+ #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ #* not use this file except in compliance with the License.
8
+ #* You may obtain a copy of the License at:
9
+ #*
10
+ #* http://www.apache.org/licenses/LICENSE-2.0
11
+ #*
12
+ #* Unless required by applicable law or agreed to in writing, software
13
+ #* distributed under the License is distributed on an "AS IS" BASIS,
14
+ #* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ #* See the License for the specific language governing permissions and
16
+ #* limitations under the License.
17
+ #*
18
+ #* Created on:
19
+ #* Author:
20
+ #*
21
+ #****************************************************************************
1
22
  from pydantic import BaseModel, Field
2
23
  from typing import Any, Dict, List
3
24
 
4
25
  class TaskOutput(BaseModel):
5
26
  type : str
6
27
  params : List[Any] = Field(default_factory=list, alias="with")
7
- deps : Dict[str,List[str]] = Field(default_factory=dict)
28
+ deps : Dict[str,List[str]] = Field(default_factory=dict)
@@ -1,3 +1,24 @@
1
+ #****************************************************************************
2
+ #* task_params_ctor.py
3
+ #*
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
+ #*
6
+ #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ #* not use this file except in compliance with the License.
8
+ #* You may obtain a copy of the License at:
9
+ #*
10
+ #* http://www.apache.org/licenses/LICENSE-2.0
11
+ #*
12
+ #* Unless required by applicable law or agreed to in writing, software
13
+ #* distributed under the License is distributed on an "AS IS" BASIS,
14
+ #* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ #* See the License for the specific language governing permissions and
16
+ #* limitations under the License.
17
+ #*
18
+ #* Created on:
19
+ #* Author:
20
+ #*
21
+ #****************************************************************************
1
22
  import dataclasses as dc
2
23
  from typing import Any, List
3
24
 
@@ -1,3 +1,24 @@
1
+ #****************************************************************************
2
+ #* task_runner.py
3
+ #*
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
+ #*
6
+ #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ #* not use this file except in compliance with the License.
8
+ #* You may obtain a copy of the License at:
9
+ #*
10
+ #* http://www.apache.org/licenses/LICENSE-2.0
11
+ #*
12
+ #* Unless required by applicable law or agreed to in writing, software
13
+ #* distributed under the License is distributed on an "AS IS" BASIS,
14
+ #* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ #* See the License for the specific language governing permissions and
16
+ #* limitations under the License.
17
+ #*
18
+ #* Created on:
19
+ #* Author:
20
+ #*
21
+ #****************************************************************************
1
22
  import asyncio
2
23
  import json
3
24
  import os
@@ -173,8 +194,8 @@ class TaskSetRunner(TaskRunner):
173
194
  self._anon_tid += 1
174
195
 
175
196
  if task not in dep_m.keys():
176
- dep_m[task] = set(task.needs)
177
- for need in task.needs:
197
+ dep_m[task] = set(task[0] for task in task.needs)
198
+ for need,block in task.needs:
178
199
  self._buildDepMap(dep_m, need)
179
200
 
180
201
  @dc.dataclass
@@ -184,7 +205,7 @@ class SingleTaskRunner(TaskRunner):
184
205
  task : 'Task',
185
206
  memento : Any = None) -> 'TaskDataResult':
186
207
  changed = False
187
- for dep in task.needs:
208
+ for dep,_ in task.needs:
188
209
  changed |= dep.changed
189
210
 
190
211
  # TODO: create an evaluator for substituting param values
dv_flow/mgr/type_def.py CHANGED
@@ -1,4 +1,24 @@
1
-
1
+ #****************************************************************************
2
+ #* type_def.py
3
+ #*
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
+ #*
6
+ #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
+ #* not use this file except in compliance with the License.
8
+ #* You may obtain a copy of the License at:
9
+ #*
10
+ #* http://www.apache.org/licenses/LICENSE-2.0
11
+ #*
12
+ #* Unless required by applicable law or agreed to in writing, software
13
+ #* distributed under the License is distributed on an "AS IS" BASIS,
14
+ #* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ #* See the License for the specific language governing permissions and
16
+ #* limitations under the License.
17
+ #*
18
+ #* Created on:
19
+ #* Author:
20
+ #*
21
+ #****************************************************************************
2
22
  from typing import List, Union
3
23
  from pydantic import BaseModel, Field
4
24
  from .param_def import ParamDef
dv_flow/mgr/util.py CHANGED
@@ -1,7 +1,7 @@
1
1
  #****************************************************************************
2
2
  #* util.py
3
3
  #*
4
- #* Copyright 2023 Matthew Ballance and Contributors
4
+ #* Copyright 2023-2025 Matthew Ballance and Contributors
5
5
  #*
6
6
  #* Licensed under the Apache License, Version 2.0 (the "License"); you may
7
7
  #* not use this file except in compliance with the License.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: dv-flow-mgr
3
- Version: 0.0.1.13862522550a1
3
+ Version: 0.0.1.13867752514a1
4
4
  Summary: DV Flow Manager is a build system for silicon design
5
5
  Author-email: Matthew Ballance <matt.ballance@gmail.com>
6
6
  License: Apache License
@@ -0,0 +1,48 @@
1
+ dv_flow/mgr/__init__.py,sha256=63pCyRCpFj4Rdc3Lz-HKaVmFAI4BAma1OEy6dDRQeXM,1134
2
+ dv_flow/mgr/__main__.py,sha256=yH_LoWlqPc5y9fKATUyDLNVobUnjWtvcqgqcP2kc628,2213
3
+ dv_flow/mgr/eval_jq.py,sha256=bRsHtaN51qIOiZK1VJV52W0-vj5VH0nQ7XIFebZi5kI,1129
4
+ dv_flow/mgr/expr_eval.py,sha256=N_8hRIgzJK9JVqhRt8F9rc4S7AAdKHMMltafqk6KhJs,3113
5
+ dv_flow/mgr/expr_parser.py,sha256=P6u2FdSXeZbdamC3zpEnYKLcK2RULQJfSoev2Ol75fE,6543
6
+ dv_flow/mgr/fileset.py,sha256=cfKem8w5Xw4AUQkC0gyCXof2OlnoJ1t06Iw7IvMyihs,1245
7
+ dv_flow/mgr/fragment_def.py,sha256=nwxx3TW7UMa6uFMp0QEKgJdmOsO2iX89cwyD2beaGoU,1646
8
+ dv_flow/mgr/out,sha256=d8GGBi3J43fhdLBlnsUbzBfRe0TD0QTP3nOTz54l2bI,200
9
+ dv_flow/mgr/package.py,sha256=D-jH3jqoiQG3xZIYgteFLZ4vQ0ZfkbhnW1u6wlyAJMc,1684
10
+ dv_flow/mgr/package_def.py,sha256=7WUStRgJcUY0FEKx3NYOs7hyLel0YI1lfRMutTgcblM,17193
11
+ dv_flow/mgr/package_import_spec.py,sha256=aZMpnS9a5NFY76_pYXEuO3-Mkc_xFzy73fdrUe_54Dc,1760
12
+ dv_flow/mgr/param.py,sha256=kkxMRGf6mPjSZJsjgLKH2vJL62Sn0ZESvjBLkEYOp20,1386
13
+ dv_flow/mgr/param_def.py,sha256=ObRf289sI1xzOudjO9MzyTVuKsz3AS949XA4Deyz-kE,1549
14
+ dv_flow/mgr/param_ref_eval.py,sha256=5yH37oIX6f2qmk7GfRgNT5qZx0jm3CJFgB9lLDZZ1yQ,1981
15
+ dv_flow/mgr/parsetab.py,sha256=I-p3nC60t9jiNtPhKyl_sE92SiP96zJLnNdydcLy33g,3780
16
+ dv_flow/mgr/pkg_rgy.py,sha256=U5LgBsdCpVJ7tXjlTsn_Qjf9OoEEOjyWsYNsOecS2uQ,5337
17
+ dv_flow/mgr/task.py,sha256=BmS0wd51l4tpTrsit3-ugCB5VGnwpMJNl0dfJfHS4DQ,5981
18
+ dv_flow/mgr/task_ctor.py,sha256=YDYb5uW9Js7MnA8GqbYJljNCbeJFKGveZ2v-IJRgIa8,2221
19
+ dv_flow/mgr/task_data.py,sha256=ysawiUcbQu-ImNSgU5LsfOWlBKdfBt_8juwSacnAqAQ,11437
20
+ dv_flow/mgr/task_def.py,sha256=BJKZZE8yO_kcKaf36HnzTkhYaC0DPIya4IKlKNM4s5I,2080
21
+ dv_flow/mgr/task_exec_data.py,sha256=-mh9G2-iq6ioB7v7QrHiQAOEwd_hDKhnVf2Mb_IHRtg,1483
22
+ dv_flow/mgr/task_graph_builder.py,sha256=EYFsMZCDDHMEFWZOVSpPb7KBVE6N6XyL4KFzJVrPSPE,10106
23
+ dv_flow/mgr/task_graph_runner.py,sha256=LZ5cTXLQlcK348AxTYKqfpsFFmxA3aseGfholvQW39s,2187
24
+ dv_flow/mgr/task_graph_runner_local.py,sha256=quAxmF1go2iVhBDieksg3brAZukIvpvF-8oJ_YXiauE,4692
25
+ dv_flow/mgr/task_impl_data.py,sha256=jpO7kQ6AjYcOOfpgFIPCEYA1pQbVwFcIY_SY3Q53eGk,1163
26
+ dv_flow/mgr/task_listener_log.py,sha256=b7caUHERGkN6eT8IinBJTdZpwASUs8xAqDmtEymMKzQ,3529
27
+ dv_flow/mgr/task_memento.py,sha256=CV3d1J4ADhMpqvYPfWvUI7duSFCbLEzY41y2GZBHIhM,1101
28
+ dv_flow/mgr/task_node.py,sha256=OMw2K63HEm5Oh43uW830mEV2vRObC7B4vS44sJ2T_gA,14919
29
+ dv_flow/mgr/task_output.py,sha256=ZwyvwnYj_gHOEFAEOH3m24Xfc4Cn77hb1j7LkX8_3C4,1086
30
+ dv_flow/mgr/task_params_ctor.py,sha256=BPkbnoCtzhCxc1g8CJ6VimCcm5UAu92PXeDMhQ4lYsQ,1957
31
+ dv_flow/mgr/task_runner.py,sha256=TB4feCEItxufUyyBSwNNY3OkQ0yjSO0fUfjga0u7rsg,8790
32
+ dv_flow/mgr/type.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
+ dv_flow/mgr/type_def.py,sha256=NDeyplKrPnWwEv4yHkhXEMK9d9j39b5MOeLB-1Mchqo,1095
34
+ dv_flow/mgr/util.py,sha256=BLp-25Ph9roqo1O3VHI5sKhwxQ0wUU7znFwcSKt0hpA,1442
35
+ dv_flow/mgr/cmds/cmd_run.py,sha256=lNMvpiyKf-Ehs0GUkzcOIoJxaXgeLKv6UFNakcm9_hw,3303
36
+ dv_flow/mgr/share/flow.json,sha256=lNmZex9NXkYbyb2aZseQfUOkV9CMyfH0iLODEI7EPBw,5096
37
+ dv_flow/mgr/std/create_file.py,sha256=wmn5N_mObx_wr2LPdKOVbNmdM71hhs3UXOv6Ap9l3Ts,2726
38
+ dv_flow/mgr/std/exec.py,sha256=hGvZke853iee1xw8r80vra5WLcCKveXbNHuSu3kC2Yw,1285
39
+ dv_flow/mgr/std/fileset.py,sha256=5IxS6T-x0wzA6fdEQcfHZ9kNP8IpH9hfJ3UMhL4A6Iw,3911
40
+ dv_flow/mgr/std/flow.dv,sha256=CcQOvSfT0JgsaNf7dH8gfbG8lPvQQXw9W9gqrT52Pw0,2025
41
+ dv_flow/mgr/std/message.py,sha256=_Gox9oBzL9ZYG1JfJ-WYPXojVLqGNaKxZ9tpLVT0LO0,1035
42
+ dv_flow/mgr/std/task_null.py,sha256=dw6LXBXVwth6gLPeduDvlz5znAhcVpDH8r1DticD-0w,1041
43
+ dv_flow_mgr-0.0.1.13867752514a1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
44
+ dv_flow_mgr-0.0.1.13867752514a1.dist-info/METADATA,sha256=Jpb6C6pbqvv6xPfxetNkW3sYHKrjmK8GlKm7DXeuKUo,13314
45
+ dv_flow_mgr-0.0.1.13867752514a1.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
46
+ dv_flow_mgr-0.0.1.13867752514a1.dist-info/entry_points.txt,sha256=1roy8wAFM48LabOvr6jiOw0MUs-qE8X3Vf8YykPazxk,50
47
+ dv_flow_mgr-0.0.1.13867752514a1.dist-info/top_level.txt,sha256=amfVTkggzYPtWwLqNmRukfz1Buu0pGS2SrYBBLhXm04,8
48
+ dv_flow_mgr-0.0.1.13867752514a1.dist-info/RECORD,,
@@ -1,48 +0,0 @@
1
- dv_flow/mgr/__init__.py,sha256=dtKBSjWYcRQmNp-l2b46eHr7c3Udc8QOs4Wohvew32Q,298
2
- dv_flow/mgr/__main__.py,sha256=shnmbpIsD98HA1a12boQtpzunhi2atAD1T1hNJwS1Lw,2208
3
- dv_flow/mgr/eval_jq.py,sha256=Ue-qkyNW6uOu2Wy8u6nrTbPPY7ujaHd0-4iki0eV3Ec,294
4
- dv_flow/mgr/expr_eval.py,sha256=Mp0TvrV6gZWcj1uYwLfPNI-ARwwdAfwntE5byLBfBuY,2276
5
- dv_flow/mgr/expr_parser.py,sha256=FhBTkKKkJXubGHUzmcMWubPfPklYLGzVz1jK4-dYb44,5702
6
- dv_flow/mgr/fileset.py,sha256=_EhtqBVn0prylXJhR3dUV2p7ocGHzNAF_ZtYNgeKJhs,1240
7
- dv_flow/mgr/fragment_def.py,sha256=cyzp1XeWtNOaagScmeS-BPsoXj9j2LTBbKq5ZUioz8I,1641
8
- dv_flow/mgr/out,sha256=d8GGBi3J43fhdLBlnsUbzBfRe0TD0QTP3nOTz54l2bI,200
9
- dv_flow/mgr/package.py,sha256=878twhPD-E1pFlDNUtuyeFEgJ_Y89b560og4St-Iwrs,1679
10
- dv_flow/mgr/package_def.py,sha256=EChN0LwvAcrASBSlzQ3LaWqt_SyFaedfPEujG9FNj6Y,17188
11
- dv_flow/mgr/package_import_spec.py,sha256=K5bwbO82A7MB5WeR7kmzWk7wQmQbQVMG1BOtpSPKQRU,1755
12
- dv_flow/mgr/param.py,sha256=3BY-ucig6JRw73FhjyJQL-vpd57qhAzixgZ8I5FoUpw,553
13
- dv_flow/mgr/param_def.py,sha256=gLua-EQiY8V2CFX-2svLRIlrs8PEeGh4-EPtn4a2Mng,712
14
- dv_flow/mgr/param_ref_eval.py,sha256=U8QhDf1n_9bLnExdc1oQamq5-pOUXrFalOX4oyR9UoM,1138
15
- dv_flow/mgr/parsetab.py,sha256=I-p3nC60t9jiNtPhKyl_sE92SiP96zJLnNdydcLy33g,3780
16
- dv_flow/mgr/pkg_rgy.py,sha256=UGQvBYUbAiabiBk8lKxknpk-yAOVfgeQzTB180iG9h4,5332
17
- dv_flow/mgr/task.py,sha256=kLQSvnVwj9ROIDtxq8lLu-4mJizTxOqvUeogmgN6QAA,5976
18
- dv_flow/mgr/task_ctor.py,sha256=hlfl-UVvyjzLFN6D0Oel9eBs0xUQPqCX7gQ0uEHoL7o,1382
19
- dv_flow/mgr/task_data.py,sha256=m3W7k-xv09ZyhpP2gg33CLOhBLyQDJS2mlG35yOZjZQ,11432
20
- dv_flow/mgr/task_def.py,sha256=Wmh78mQLAiHXlpD2KCvFxTWtnjjwgct8fEm8gelCg1c,1987
21
- dv_flow/mgr/task_exec_data.py,sha256=aT__kmVmNxqnS_GbTRS1vrYgKiv8cH-HUSmRb6YYKsI,640
22
- dv_flow/mgr/task_graph_builder.py,sha256=a9g_2WYlxqD_3R9wa7QDKxA5lqQozGskb8afg8ArP1Y,10101
23
- dv_flow/mgr/task_graph_runner.py,sha256=jUGI49QvxUCfQoKQDDk2psbeapIcCg72qNOW1JipHzM,2182
24
- dv_flow/mgr/task_graph_runner_local.py,sha256=OrydPwtQ8E7hYWvSXx0h7lI3nfUNFyklULhsyMwz9dA,4687
25
- dv_flow/mgr/task_impl_data.py,sha256=bFPijoKrh9x7fZN2DsvRJp0UHo-gGM0VjtDQISyfhFk,321
26
- dv_flow/mgr/task_listener_log.py,sha256=d4GQcT3n_0Dq-XWQP-WNJIhuxvw948RbFPSiJ6X1_eI,2683
27
- dv_flow/mgr/task_memento.py,sha256=C7VTQpBhDEoYuDmE6YTM-6TLMLnqHp6Y0Vat1aTgtCs,1096
28
- dv_flow/mgr/task_node.py,sha256=I1wbq-EpuZZ94R42rtBSQRnk-2Yf6ZQhctsxjn2Vbus,14228
29
- dv_flow/mgr/task_output.py,sha256=dkJhhNRFGFQSkVsw_bGirK0_0ghTxBYq1LjRMZCVWnA,245
30
- dv_flow/mgr/task_params_ctor.py,sha256=aXgB8o9xFPjaEjGW_xYkEC0N0apzGzGUPDj7g2ZLvus,1112
31
- dv_flow/mgr/task_runner.py,sha256=NFGAAlOKMeXkWQtSX3YcZ6RMPn5xlZ92R6q57xPpueg,7922
32
- dv_flow/mgr/type.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
- dv_flow/mgr/type_def.py,sha256=KdhuNlfw-NKU-4VZFCnMPyj775yEB7cpr5tz73a9yuQ,259
34
- dv_flow/mgr/util.py,sha256=06eVyURF4ga-s8C9Sd3ZSDebwO4QS0XXaB8xADVbWRc,1437
35
- dv_flow/mgr/cmds/cmd_run.py,sha256=w1KdnS5Skg4RH1xTB1RZP7gAElZMNcRuOhz3G98n9uk,2467
36
- dv_flow/mgr/share/flow.json,sha256=lNmZex9NXkYbyb2aZseQfUOkV9CMyfH0iLODEI7EPBw,5096
37
- dv_flow/mgr/std/create_file.py,sha256=gPNasXwjg3NSIc2QhMp-UlBW1r5dRDLt6pluFTJhfek,1886
38
- dv_flow/mgr/std/exec.py,sha256=ETx9xSxhdCD_iw6pcmhrafDCJ-41AneyEAPwQf3q-3w,452
39
- dv_flow/mgr/std/fileset.py,sha256=nW5Cg4IyCs-ccKKsIxA5W5aZvaluFk6LXDyFh9Jixcs,3076
40
- dv_flow/mgr/std/flow.dv,sha256=CcQOvSfT0JgsaNf7dH8gfbG8lPvQQXw9W9gqrT52Pw0,2025
41
- dv_flow/mgr/std/message.py,sha256=T8Ye44784rD6CT2qIAP5SD7sKPdAlGMFimc4IaPCxxE,200
42
- dv_flow/mgr/std/task_null.py,sha256=UKwUnqwFPBY8BO44ZAPcgehQB59kHZFa1qyZc1TwUqE,196
43
- dv_flow_mgr-0.0.1.13862522550a1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
44
- dv_flow_mgr-0.0.1.13862522550a1.dist-info/METADATA,sha256=B8h8L4Nr9ywSDxAGO4ElhZg4cIHndSyJCmNRMJGP4d4,13314
45
- dv_flow_mgr-0.0.1.13862522550a1.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
46
- dv_flow_mgr-0.0.1.13862522550a1.dist-info/entry_points.txt,sha256=1roy8wAFM48LabOvr6jiOw0MUs-qE8X3Vf8YykPazxk,50
47
- dv_flow_mgr-0.0.1.13862522550a1.dist-info/top_level.txt,sha256=amfVTkggzYPtWwLqNmRukfz1Buu0pGS2SrYBBLhXm04,8
48
- dv_flow_mgr-0.0.1.13862522550a1.dist-info/RECORD,,