dv-flow-mgr 0.0.1.13954441689a1__py3-none-any.whl → 0.0.1.13959216751a1__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.
- dv_flow/mgr/__init__.py +0 -1
- dv_flow/mgr/cmds/cmd_run.py +0 -2
- dv_flow/mgr/package_def.py +18 -4
- dv_flow/mgr/param_def.py +1 -0
- dv_flow/mgr/std/exec.py +2 -2
- dv_flow/mgr/std/flow.dv +31 -1
- dv_flow/mgr/task.py +0 -1
- dv_flow/mgr/task_ctor.py +1 -1
- dv_flow/mgr/task_data.py +29 -1
- dv_flow/mgr/task_def.py +51 -10
- dv_flow/mgr/task_listener_log.py +8 -1
- dv_flow/mgr/task_node.py +2 -2
- dv_flow/mgr/task_node_compound.py +37 -0
- dv_flow/mgr/task_runner.py +8 -4
- {dv_flow_mgr-0.0.1.13954441689a1.dist-info → dv_flow_mgr-0.0.1.13959216751a1.dist-info}/METADATA +3 -2
- {dv_flow_mgr-0.0.1.13954441689a1.dist-info → dv_flow_mgr-0.0.1.13959216751a1.dist-info}/RECORD +20 -19
- {dv_flow_mgr-0.0.1.13954441689a1.dist-info → dv_flow_mgr-0.0.1.13959216751a1.dist-info}/WHEEL +1 -1
- {dv_flow_mgr-0.0.1.13954441689a1.dist-info → dv_flow_mgr-0.0.1.13959216751a1.dist-info}/entry_points.txt +0 -0
- {dv_flow_mgr-0.0.1.13954441689a1.dist-info → dv_flow_mgr-0.0.1.13959216751a1.dist-info/licenses}/LICENSE +0 -0
- {dv_flow_mgr-0.0.1.13954441689a1.dist-info → dv_flow_mgr-0.0.1.13959216751a1.dist-info}/top_level.txt +0 -0
dv_flow/mgr/__init__.py
CHANGED
@@ -21,7 +21,6 @@
|
|
21
21
|
#****************************************************************************
|
22
22
|
from .package_def import *
|
23
23
|
from .pkg_rgy import PkgRgy
|
24
|
-
from .task_graph_runner import *
|
25
24
|
from .task import *
|
26
25
|
from .task_data import *
|
27
26
|
from .task_graph_builder import TaskGraphBuilder
|
dv_flow/mgr/cmds/cmd_run.py
CHANGED
@@ -23,10 +23,8 @@ import asyncio
|
|
23
23
|
import os
|
24
24
|
import logging
|
25
25
|
from typing import ClassVar
|
26
|
-
from ..task_graph_runner import TaskGraphRunner
|
27
26
|
from ..util import loadProjPkgDef
|
28
27
|
from ..task_graph_builder import TaskGraphBuilder
|
29
|
-
from ..task_graph_runner_local import TaskGraphRunnerLocal
|
30
28
|
from ..task_runner import TaskSetRunner
|
31
29
|
from ..task_listener_log import TaskListenerLog
|
32
30
|
from ..pkg_rgy import PkgRgy
|
dv_flow/mgr/package_def.py
CHANGED
@@ -33,6 +33,7 @@ from typing import Any, Dict, List, Callable, Tuple, ClassVar, Union
|
|
33
33
|
from .fragment_def import FragmentDef
|
34
34
|
from .package import Package
|
35
35
|
from .package_import_spec import PackageImportSpec, PackageSpec
|
36
|
+
from .param_def import ParamDef
|
36
37
|
from .task_node import TaskNodeCtor, TaskNodeCtorProxy, TaskNodeCtorTask
|
37
38
|
from .task_ctor import TaskCtor
|
38
39
|
from .task_def import TaskDef, TaskSpec
|
@@ -41,13 +42,26 @@ from .type_def import TypeDef
|
|
41
42
|
|
42
43
|
|
43
44
|
class PackageDef(BaseModel):
|
44
|
-
name : str
|
45
|
+
name : str = dc.Field(
|
46
|
+
description="Name of the package")
|
45
47
|
params : Dict[str,Any] = dc.Field(default_factory=dict)
|
46
48
|
type : List[PackageSpec] = dc.Field(default_factory=list)
|
47
|
-
tasks : List[TaskDef] = dc.Field(
|
48
|
-
|
49
|
-
|
49
|
+
tasks : List[TaskDef] = dc.Field(
|
50
|
+
default_factory=list,
|
51
|
+
description="List of tasks defined in the package")
|
52
|
+
imports : List[Union[str,PackageImportSpec]] = dc.Field(
|
53
|
+
default_factory=list,
|
54
|
+
description="List of packages to import")
|
55
|
+
fragments: List[str] = dc.Field(
|
56
|
+
default_factory=list,
|
57
|
+
description="List of fragments to include")
|
50
58
|
types : List[TypeDef] = dc.Field(default_factory=list)
|
59
|
+
uses : str = dc.Field(
|
60
|
+
default=None,
|
61
|
+
description="Name of the package to use as a base")
|
62
|
+
params : List[ParamDef] = dc.Field(
|
63
|
+
default_factory=list, alias="with",
|
64
|
+
description="List of package parameters to set")
|
51
65
|
|
52
66
|
fragment_l : List['FragmentDef'] = dc.Field(default_factory=list, exclude=True)
|
53
67
|
subpkg_m : Dict[str,'PackageDef'] = dc.Field(default_factory=dict, exclude=True)
|
dv_flow/mgr/param_def.py
CHANGED
@@ -36,6 +36,7 @@ class ComplexType(BaseModel):
|
|
36
36
|
class ParamDef(BaseModel):
|
37
37
|
doc : str = None
|
38
38
|
type : Union[str, 'ComplexType'] = None
|
39
|
+
derived : bool = Field(default=False)
|
39
40
|
value : Union[Any, None] = None
|
40
41
|
append : Union[Any, None] = None
|
41
42
|
prepend : Union[Any, None] = None
|
dv_flow/mgr/std/exec.py
CHANGED
@@ -50,7 +50,7 @@ async def Exec(runner, input) -> TaskDataResult:
|
|
50
50
|
|
51
51
|
result = await proc.wait()
|
52
52
|
|
53
|
-
status =
|
53
|
+
status = proc.returncode
|
54
54
|
|
55
55
|
if status != 0:
|
56
56
|
markers.append(TaskMarker(
|
@@ -97,7 +97,7 @@ async def Exec(runner, input) -> TaskDataResult:
|
|
97
97
|
if input.params.when == "changed":
|
98
98
|
changed = input.changed
|
99
99
|
|
100
|
-
if input.params.timestamp is not None and input.params.
|
100
|
+
if input.params.timestamp is not None and input.params.timestamp != "":
|
101
101
|
# Check the timestamp file
|
102
102
|
try:
|
103
103
|
with open(input.params.timestamp_file, "r") as f:
|
dv_flow/mgr/std/flow.dv
CHANGED
@@ -1,5 +1,27 @@
|
|
1
1
|
|
2
|
-
# yaml-language-server: $schema=https://dv-flow.github.io/
|
2
|
+
# yaml-language-server: $schema=https://dv-flow.github.io/flow.dv.schema.json
|
3
|
+
|
4
|
+
#****************************************************************************
|
5
|
+
#* flow.dv
|
6
|
+
#*
|
7
|
+
#* Copyright 2023-2025 Matthew Ballance and Contributors
|
8
|
+
#*
|
9
|
+
#* Licensed under the Apache License, Version 2.0 (the "License"); you may
|
10
|
+
#* not use this file except in compliance with the License.
|
11
|
+
#* You may obtain a copy of the License at:
|
12
|
+
#*
|
13
|
+
#* http://www.apache.org/licenses/LICENSE-2.0
|
14
|
+
#*
|
15
|
+
#* Unless required by applicable law or agreed to in writing, software
|
16
|
+
#* distributed under the License is distributed on an "AS IS" BASIS,
|
17
|
+
#* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
18
|
+
#* See the License for the specific language governing permissions and
|
19
|
+
#* limitations under the License.
|
20
|
+
#*
|
21
|
+
#* Created on:
|
22
|
+
#* Author:
|
23
|
+
#*
|
24
|
+
#****************************************************************************
|
3
25
|
|
4
26
|
package:
|
5
27
|
name: std
|
@@ -12,18 +34,26 @@ package:
|
|
12
34
|
type: str
|
13
35
|
value: ""
|
14
36
|
- name: FileSet
|
37
|
+
doc: |
|
38
|
+
Creates a fileset from a list of files or glob patterns
|
15
39
|
pytask: dv_flow.mgr.std.fileset.FileSet
|
16
40
|
passthrough: true
|
17
41
|
with:
|
18
42
|
base:
|
43
|
+
doc: |
|
44
|
+
Specifies the base directory for the fileset.
|
19
45
|
type: str
|
20
46
|
value: ""
|
21
47
|
type:
|
48
|
+
doc: |
|
49
|
+
Specifies the file type (eg verilogSource) for the fileset.
|
22
50
|
type: str
|
23
51
|
value: ""
|
24
52
|
incdirs:
|
25
53
|
type: list
|
26
54
|
include:
|
55
|
+
doc: |
|
56
|
+
Specifies a list of files or a glob pattern for the files to include
|
27
57
|
type: str
|
28
58
|
value: ""
|
29
59
|
exclude:
|
dv_flow/mgr/task.py
CHANGED
@@ -26,7 +26,6 @@ import logging
|
|
26
26
|
from pydantic import BaseModel
|
27
27
|
from typing import Any, Callable, ClassVar, Dict, List, Tuple
|
28
28
|
from .task_data import TaskData, TaskDataInput, TaskDataOutput, TaskDataResult
|
29
|
-
from .task_memento import TaskMemento
|
30
29
|
from .task_ctor import TaskParamsCtor
|
31
30
|
from .task_params_ctor import TaskParamsCtor
|
32
31
|
from .task_runner import TaskRunner
|
dv_flow/mgr/task_ctor.py
CHANGED
@@ -38,7 +38,7 @@ class TaskCtor(object):
|
|
38
38
|
|
39
39
|
_log : ClassVar = logging.getLogger("TaskCtor")
|
40
40
|
|
41
|
-
def mkTask(self, name : str, srcdir=None) -> '
|
41
|
+
def mkTask(self, name : str, srcdir=None) -> 'TaskNode':
|
42
42
|
"""Creates a task object"""
|
43
43
|
if srcdir is None:
|
44
44
|
srcdir = self.srcdir
|
dv_flow/mgr/task_data.py
CHANGED
@@ -27,14 +27,25 @@ from typing import Any, ClassVar, Dict, Set, List, Tuple
|
|
27
27
|
from .fileset import FileSet
|
28
28
|
from toposort import toposort
|
29
29
|
|
30
|
+
class SeverityE(enum.Enum):
|
31
|
+
Info = "info"
|
32
|
+
Warning = "warning"
|
33
|
+
Error = "error"
|
34
|
+
|
30
35
|
class TaskMarkerLoc(BaseModel):
|
36
|
+
"""
|
37
|
+
Captures the source location of a marker
|
38
|
+
"""
|
31
39
|
path : str
|
32
40
|
line : int = dc.Field(default=-1)
|
33
41
|
pos : int = dc.Field(default=-1)
|
34
42
|
|
35
43
|
class TaskMarker(BaseModel):
|
44
|
+
"""
|
45
|
+
Captures marker data produced by a task.
|
46
|
+
"""
|
36
47
|
msg : str
|
37
|
-
severity :
|
48
|
+
severity : SeverityE
|
38
49
|
loc : TaskMarkerLoc = dc.Field(default=None)
|
39
50
|
|
40
51
|
class TaskParameterSet(BaseModel):
|
@@ -43,6 +54,15 @@ class TaskParameterSet(BaseModel):
|
|
43
54
|
seq : int = -1 # Order in which the param-set must appear
|
44
55
|
|
45
56
|
class TaskDataInput(BaseModel):
|
57
|
+
"""
|
58
|
+
Input data to a task
|
59
|
+
- name - name of the task
|
60
|
+
- changed - indicates whether any of this task's dependencies have changed
|
61
|
+
- rundir - directory in which the task is to be run
|
62
|
+
- params - parameters to the task
|
63
|
+
- inputs - list of parameter sets 'consumed' by this task
|
64
|
+
- memento - memento data previously returned by this task. None if no memento is available
|
65
|
+
"""
|
46
66
|
name : str
|
47
67
|
changed : bool
|
48
68
|
srcdir : str
|
@@ -52,6 +72,14 @@ class TaskDataInput(BaseModel):
|
|
52
72
|
memento : Any
|
53
73
|
|
54
74
|
class TaskDataResult(BaseModel):
|
75
|
+
"""
|
76
|
+
Result data from a task
|
77
|
+
- changed - indicates whether the task modified its result data
|
78
|
+
- output - list of output parameter sets
|
79
|
+
- memento - memento data to be passed to the next invocation of the task
|
80
|
+
- markers - list of markers produced by the task
|
81
|
+
- status - status code (0=success, non-zero=failure)
|
82
|
+
"""
|
55
83
|
changed : bool = dc.Field(default=True)
|
56
84
|
output : List[Any] = dc.Field(default_factory=list)
|
57
85
|
memento : Any = dc.Field(default=None)
|
dv_flow/mgr/task_def.py
CHANGED
@@ -20,6 +20,7 @@
|
|
20
20
|
#*
|
21
21
|
#****************************************************************************
|
22
22
|
import pydantic.dataclasses as dc
|
23
|
+
import enum
|
23
24
|
from pydantic import BaseModel
|
24
25
|
from typing import Any, Dict, List, Union, Tuple
|
25
26
|
from .param_def import ParamDef
|
@@ -35,20 +36,60 @@ class NeedSpec(object):
|
|
35
36
|
name : str
|
36
37
|
block : bool = False
|
37
38
|
|
39
|
+
class RundirE(enum.Enum):
|
40
|
+
Unique = "unique"
|
41
|
+
Inherit = "inherit"
|
42
|
+
|
43
|
+
class StrategyDef(BaseModel):
|
44
|
+
matrix : Dict[str,List[Any]] = dc.Field(
|
45
|
+
default_factory=dict,
|
46
|
+
description="Matrix of parameter values to explore")
|
47
|
+
|
38
48
|
class TaskDef(BaseModel):
|
39
49
|
"""Holds definition information (ie the YAML view) for a task"""
|
40
|
-
name : str
|
50
|
+
name : str = dc.Field(
|
51
|
+
title="Task Name",
|
52
|
+
description="The name of the task")
|
41
53
|
fullname : str = dc.Field(default=None)
|
42
54
|
# type : Union[str,TaskSpec] = dc.Field(default_factory=list)
|
43
|
-
uses : str = dc.Field(
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
55
|
+
uses : str = dc.Field(
|
56
|
+
default=None,
|
57
|
+
title="Base type",
|
58
|
+
description="Task from which this task is derived")
|
59
|
+
pytask : str = dc.Field(
|
60
|
+
default=None,
|
61
|
+
title="Python method name",
|
62
|
+
description="Python method to execute to implement this task")
|
63
|
+
strategy : StrategyDef = dc.Field(
|
64
|
+
default=None)
|
65
|
+
tasks: List['TaskDef'] = dc.Field(
|
66
|
+
default_factory=list,
|
67
|
+
description="Sub-tasks")
|
68
|
+
desc : str = dc.Field(
|
69
|
+
default="",
|
70
|
+
title="Task description",
|
71
|
+
description="Short description of the task's purpose")
|
72
|
+
doc : str = dc.Field(
|
73
|
+
default="",
|
74
|
+
title="Task documentation",
|
75
|
+
description="Full documentation of the task")
|
76
|
+
# needs : List[Union[str,NeedSpec,TaskSpec]] = dc.Field(
|
77
|
+
needs : List[Union[str]] = dc.Field(
|
78
|
+
default_factory=list,
|
79
|
+
description="List of tasks that this task depends on")
|
80
|
+
params: Dict[str,Union[str,list,ParamDef]] = dc.Field(
|
81
|
+
default_factory=dict,
|
82
|
+
alias="with",
|
83
|
+
description="Parameters for the task")
|
84
|
+
rundir : RundirE = dc.Field(
|
85
|
+
default=RundirE.Unique,
|
86
|
+
description="Specifies handling of this tasks's run directory")
|
87
|
+
passthrough: bool = dc.Field(
|
88
|
+
default=False,
|
89
|
+
description="Specifies whether this task should pass its inputs to its output")
|
90
|
+
consumes : List[Any] = dc.Field(
|
91
|
+
default_factory=list,
|
92
|
+
description="Specifies matching patterns for parameter sets that this task consumes")
|
52
93
|
|
53
94
|
# out: List[TaskOutput] = dc.Field(default_factory=list)
|
54
95
|
|
dv_flow/mgr/task_listener_log.py
CHANGED
@@ -56,8 +56,15 @@ class TaskListenerLog(object):
|
|
56
56
|
"error": "[red]E[/red]",
|
57
57
|
}
|
58
58
|
for m in task.result.markers:
|
59
|
+
severity_s = str(m.severity)
|
60
|
+
|
61
|
+
if severity_s in sev_pref_m.keys():
|
62
|
+
sev_pref = sev_pref_m[severity_s]
|
63
|
+
else:
|
64
|
+
sev_pref = ""
|
65
|
+
|
59
66
|
msg = " %s %s: %s" % (
|
60
|
-
|
67
|
+
sev_pref,
|
61
68
|
task.name,
|
62
69
|
m.msg)
|
63
70
|
|
dv_flow/mgr/task_node.py
CHANGED
@@ -128,8 +128,8 @@ class TaskNode(object):
|
|
128
128
|
|
129
129
|
# Set variables from the inputs
|
130
130
|
for need in self.needs:
|
131
|
-
for name,value in {"rundir" : need.rundir}.items():
|
132
|
-
eval.setVar("%s.%s" % (need.name, name), value)
|
131
|
+
for name,value in {"rundir" : need[0].rundir}.items():
|
132
|
+
eval.setVar("%s.%s" % (need[0].name, name), value)
|
133
133
|
|
134
134
|
# Default inputs is the list of parameter sets that match 'consumes'
|
135
135
|
inputs = []
|
@@ -0,0 +1,37 @@
|
|
1
|
+
#****************************************************************************
|
2
|
+
#* task_node_compound.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
|
+
#****************************************************************************
|
22
|
+
import dataclasses as dc
|
23
|
+
from .task_node import TaskNode
|
24
|
+
from .task_data import TaskDataResult, TaskDataInput, TaskDataOutput
|
25
|
+
from .task_runner import TaskRunner
|
26
|
+
from typing import Any, List
|
27
|
+
|
28
|
+
@dc.dataclass
|
29
|
+
class TaskNodeCompound(TaskNode):
|
30
|
+
tasks : List[TaskNode] = dc.field(default_factory=list)
|
31
|
+
|
32
|
+
async def do_run(self,
|
33
|
+
runner : TaskRunner,
|
34
|
+
rundir,
|
35
|
+
memento : Any=None) -> TaskDataResult:
|
36
|
+
pass
|
37
|
+
pass
|
dv_flow/mgr/task_runner.py
CHANGED
@@ -29,7 +29,7 @@ from datetime import datetime
|
|
29
29
|
from toposort import toposort
|
30
30
|
from typing import Any, Callable, ClassVar, List, Tuple, Union
|
31
31
|
from .task_data import TaskDataInput, TaskDataOutput, TaskDataResult
|
32
|
-
from .task_node import TaskNode
|
32
|
+
from .task_node import TaskNode, RundirE
|
33
33
|
|
34
34
|
@dc.dataclass
|
35
35
|
class TaskRunner(object):
|
@@ -140,10 +140,14 @@ class TaskSetRunner(TaskRunner):
|
|
140
140
|
memento = src_memento.get(t.name, None)
|
141
141
|
dirname = t.name
|
142
142
|
invalid_chars_pattern = r'[\/:*?"<>|#%&{}\$\\!\'`;=@+]'
|
143
|
-
# Replace invalid characters with the replacement string.
|
144
|
-
dirname = re.sub(invalid_chars_pattern, '_', dirname)
|
145
143
|
|
146
|
-
|
144
|
+
if t.rundir_t == RundirE.Unique:
|
145
|
+
# Replace invalid characters with the replacement string.
|
146
|
+
dirname = re.sub(invalid_chars_pattern, '_', dirname)
|
147
|
+
|
148
|
+
rundir = os.path.join(self.rundir, dirname)
|
149
|
+
else:
|
150
|
+
rundir = self.rundir
|
147
151
|
|
148
152
|
if not os.path.isdir(rundir):
|
149
153
|
os.makedirs(rundir, exist_ok=True)
|
{dv_flow_mgr-0.0.1.13954441689a1.dist-info → dv_flow_mgr-0.0.1.13959216751a1.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: dv-flow-mgr
|
3
|
-
Version: 0.0.1.
|
3
|
+
Version: 0.0.1.13959216751a1
|
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
|
@@ -212,3 +212,4 @@ Requires-Dist: pyyaml
|
|
212
212
|
Requires-Dist: rich
|
213
213
|
Requires-Dist: toposort
|
214
214
|
Requires-Dist: svdep
|
215
|
+
Dynamic: license-file
|
{dv_flow_mgr-0.0.1.13954441689a1.dist-info → dv_flow_mgr-0.0.1.13959216751a1.dist-info}/RECORD
RENAMED
@@ -1,4 +1,4 @@
|
|
1
|
-
dv_flow/mgr/__init__.py,sha256=
|
1
|
+
dv_flow/mgr/__init__.py,sha256=XWO0B0wXUyhqGzu7Pt2f-r-_k7CHPZOOxAaEPUgjaAs,1101
|
2
2
|
dv_flow/mgr/__main__.py,sha256=yH_LoWlqPc5y9fKATUyDLNVobUnjWtvcqgqcP2kc628,2213
|
3
3
|
dv_flow/mgr/eval_jq.py,sha256=bRsHtaN51qIOiZK1VJV52W0-vj5VH0nQ7XIFebZi5kI,1129
|
4
4
|
dv_flow/mgr/expr_eval.py,sha256=N_8hRIgzJK9JVqhRt8F9rc4S7AAdKHMMltafqk6KhJs,3113
|
@@ -7,37 +7,38 @@ dv_flow/mgr/fileset.py,sha256=cfKem8w5Xw4AUQkC0gyCXof2OlnoJ1t06Iw7IvMyihs,1245
|
|
7
7
|
dv_flow/mgr/fragment_def.py,sha256=nwxx3TW7UMa6uFMp0QEKgJdmOsO2iX89cwyD2beaGoU,1646
|
8
8
|
dv_flow/mgr/out,sha256=d8GGBi3J43fhdLBlnsUbzBfRe0TD0QTP3nOTz54l2bI,200
|
9
9
|
dv_flow/mgr/package.py,sha256=D-jH3jqoiQG3xZIYgteFLZ4vQ0ZfkbhnW1u6wlyAJMc,1684
|
10
|
-
dv_flow/mgr/package_def.py,sha256=
|
10
|
+
dv_flow/mgr/package_def.py,sha256=ZGanENWXRqYDKL8qiY4JzsGYLm2iXU85XfSAsq_7rIg,17719
|
11
11
|
dv_flow/mgr/package_import_spec.py,sha256=aZMpnS9a5NFY76_pYXEuO3-Mkc_xFzy73fdrUe_54Dc,1760
|
12
12
|
dv_flow/mgr/param.py,sha256=kkxMRGf6mPjSZJsjgLKH2vJL62Sn0ZESvjBLkEYOp20,1386
|
13
|
-
dv_flow/mgr/param_def.py,sha256=
|
13
|
+
dv_flow/mgr/param_def.py,sha256=snLHgafVqqWcDthJUOm9zvKocFsb7-wx2WTc5ltAlhg,1591
|
14
14
|
dv_flow/mgr/param_ref_eval.py,sha256=5yH37oIX6f2qmk7GfRgNT5qZx0jm3CJFgB9lLDZZ1yQ,1981
|
15
15
|
dv_flow/mgr/parsetab.py,sha256=I-p3nC60t9jiNtPhKyl_sE92SiP96zJLnNdydcLy33g,3780
|
16
16
|
dv_flow/mgr/pkg_rgy.py,sha256=d1nIjRm3ymMNJT-yiMDxCS6bFisTPvLMqh5VrfsHVKM,5404
|
17
|
-
dv_flow/mgr/task.py,sha256=
|
18
|
-
dv_flow/mgr/task_ctor.py,sha256=
|
19
|
-
dv_flow/mgr/task_data.py,sha256=
|
20
|
-
dv_flow/mgr/task_def.py,sha256=
|
17
|
+
dv_flow/mgr/task.py,sha256=464P7RAiHHiUcDzzoc1XSQj2ihwT6Lcuxr1U2qGfgLA,5943
|
18
|
+
dv_flow/mgr/task_ctor.py,sha256=sPbDqRBMlbMAUddgtT2c7xWzbrYnZwcXf16wj-q7_5Y,2225
|
19
|
+
dv_flow/mgr/task_data.py,sha256=IBkxdqpWDMqD1S06u4ohG9pOTdiQPCePT4ZJknPAAw0,12401
|
20
|
+
dv_flow/mgr/task_def.py,sha256=295FqKPcZKlgJENRdPdk_io_2lvVN2c3T3CezLEt1UU,3497
|
21
21
|
dv_flow/mgr/task_graph_builder.py,sha256=EYFsMZCDDHMEFWZOVSpPb7KBVE6N6XyL4KFzJVrPSPE,10106
|
22
|
-
dv_flow/mgr/task_listener_log.py,sha256=
|
23
|
-
dv_flow/mgr/task_node.py,sha256=
|
22
|
+
dv_flow/mgr/task_listener_log.py,sha256=vhyLegEown54RY3sRqFTgqhxrRAHqp_YhomObdnZ0vs,3743
|
23
|
+
dv_flow/mgr/task_node.py,sha256=H0OuBrridAhYutDUap-V09T-2xZNaJKkfayeqi1UrTw,15221
|
24
|
+
dv_flow/mgr/task_node_compound.py,sha256=1NZvPh0EkyJ_1Vj4H9RNmFQKcmGavybZWubNIOyl5AA,1330
|
24
25
|
dv_flow/mgr/task_output.py,sha256=ZwyvwnYj_gHOEFAEOH3m24Xfc4Cn77hb1j7LkX8_3C4,1086
|
25
26
|
dv_flow/mgr/task_params_ctor.py,sha256=BPkbnoCtzhCxc1g8CJ6VimCcm5UAu92PXeDMhQ4lYsQ,1957
|
26
|
-
dv_flow/mgr/task_runner.py,sha256=
|
27
|
+
dv_flow/mgr/task_runner.py,sha256=6yoNzAGb79vgYG95ku_4Kr90cgztdisSICFfV5Ykf9c,8936
|
27
28
|
dv_flow/mgr/type.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
28
29
|
dv_flow/mgr/type_def.py,sha256=NDeyplKrPnWwEv4yHkhXEMK9d9j39b5MOeLB-1Mchqo,1095
|
29
30
|
dv_flow/mgr/util.py,sha256=BLp-25Ph9roqo1O3VHI5sKhwxQ0wUU7znFwcSKt0hpA,1442
|
30
|
-
dv_flow/mgr/cmds/cmd_run.py,sha256=
|
31
|
+
dv_flow/mgr/cmds/cmd_run.py,sha256=J6uCzzhtGHD9MYkvE0PpX4dkk5KlY3iW7yZ29iBO3js,3196
|
31
32
|
dv_flow/mgr/share/flow.json,sha256=lNmZex9NXkYbyb2aZseQfUOkV9CMyfH0iLODEI7EPBw,5096
|
32
33
|
dv_flow/mgr/std/create_file.py,sha256=wmn5N_mObx_wr2LPdKOVbNmdM71hhs3UXOv6Ap9l3Ts,2726
|
33
|
-
dv_flow/mgr/std/exec.py,sha256=
|
34
|
+
dv_flow/mgr/std/exec.py,sha256=UChqa_tAjvdB1NjqTsvlPgFomP8hMsX2rAOPyUonNpk,3896
|
34
35
|
dv_flow/mgr/std/fileset.py,sha256=5IxS6T-x0wzA6fdEQcfHZ9kNP8IpH9hfJ3UMhL4A6Iw,3911
|
35
|
-
dv_flow/mgr/std/flow.dv,sha256=
|
36
|
+
dv_flow/mgr/std/flow.dv,sha256=rl0VZt_H-TyIJq0iERai07aDDZHI86mNozs4gUxidDA,3759
|
36
37
|
dv_flow/mgr/std/message.py,sha256=_Gox9oBzL9ZYG1JfJ-WYPXojVLqGNaKxZ9tpLVT0LO0,1035
|
37
38
|
dv_flow/mgr/std/task_null.py,sha256=dw6LXBXVwth6gLPeduDvlz5znAhcVpDH8r1DticD-0w,1041
|
38
|
-
dv_flow_mgr-0.0.1.
|
39
|
-
dv_flow_mgr-0.0.1.
|
40
|
-
dv_flow_mgr-0.0.1.
|
41
|
-
dv_flow_mgr-0.0.1.
|
42
|
-
dv_flow_mgr-0.0.1.
|
43
|
-
dv_flow_mgr-0.0.1.
|
39
|
+
dv_flow_mgr-0.0.1.13959216751a1.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
40
|
+
dv_flow_mgr-0.0.1.13959216751a1.dist-info/METADATA,sha256=JmI7tO_W1MFuZ6Fz-XgwWAHUi9bz8-6z6cwiACFCai8,13336
|
41
|
+
dv_flow_mgr-0.0.1.13959216751a1.dist-info/WHEEL,sha256=tTnHoFhvKQHCh4jz3yCn0WPTYIy7wXx3CJtJ7SJGV7c,91
|
42
|
+
dv_flow_mgr-0.0.1.13959216751a1.dist-info/entry_points.txt,sha256=1roy8wAFM48LabOvr6jiOw0MUs-qE8X3Vf8YykPazxk,50
|
43
|
+
dv_flow_mgr-0.0.1.13959216751a1.dist-info/top_level.txt,sha256=amfVTkggzYPtWwLqNmRukfz1Buu0pGS2SrYBBLhXm04,8
|
44
|
+
dv_flow_mgr-0.0.1.13959216751a1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|