dv-flow-mgr 0.0.1.12981364130a1__py3-none-any.whl → 0.0.1.13335470340a1__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/expr_parser.py +38 -0
- dv_flow/mgr/fragment_def.py +2 -0
- dv_flow/mgr/out +12 -0
- dv_flow/mgr/package.py +1 -0
- dv_flow/mgr/package_def.py +41 -3
- dv_flow/mgr/param_def.py +25 -0
- dv_flow/mgr/std/fileset.py +7 -0
- dv_flow/mgr/std/flow.dv +49 -1
- dv_flow/mgr/task.py +1 -2
- dv_flow/mgr/task_data.py +12 -14
- dv_flow/mgr/task_def.py +4 -1
- dv_flow/mgr/task_impl_data.py +17 -0
- dv_flow/mgr/task_output.py +6 -0
- dv_flow/mgr/type.py +0 -0
- dv_flow/mgr/type_def.py +10 -0
- {dv_flow_mgr-0.0.1.12981364130a1.dist-info → dv_flow_mgr-0.0.1.13335470340a1.dist-info}/METADATA +1 -1
- dv_flow_mgr-0.0.1.13335470340a1.dist-info/RECORD +35 -0
- dv_flow_mgr-0.0.1.12981364130a1.dist-info/RECORD +0 -28
- {dv_flow_mgr-0.0.1.12981364130a1.dist-info → dv_flow_mgr-0.0.1.13335470340a1.dist-info}/LICENSE +0 -0
- {dv_flow_mgr-0.0.1.12981364130a1.dist-info → dv_flow_mgr-0.0.1.13335470340a1.dist-info}/WHEEL +0 -0
- {dv_flow_mgr-0.0.1.12981364130a1.dist-info → dv_flow_mgr-0.0.1.13335470340a1.dist-info}/entry_points.txt +0 -0
- {dv_flow_mgr-0.0.1.12981364130a1.dist-info → dv_flow_mgr-0.0.1.13335470340a1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,38 @@
|
|
1
|
+
import dataclasses as dc
|
2
|
+
import enum
|
3
|
+
|
4
|
+
class TokenKind(enum.Enum):
|
5
|
+
ID = enum.auto()
|
6
|
+
|
7
|
+
@dc.dataclass
|
8
|
+
class Expr(object):
|
9
|
+
kind : TokenKind = TokenKind.ID
|
10
|
+
|
11
|
+
class ExprId(Expr):
|
12
|
+
id : str
|
13
|
+
|
14
|
+
def __post_init__(self):
|
15
|
+
self.kind = TokenKind.ID
|
16
|
+
|
17
|
+
class ExprPipe(Expr):
|
18
|
+
lhs : Expr
|
19
|
+
rhs : Expr
|
20
|
+
|
21
|
+
def __post_init__(self):
|
22
|
+
self.kind = TokenKind.ID
|
23
|
+
|
24
|
+
|
25
|
+
|
26
|
+
class ExprParser(object):
|
27
|
+
|
28
|
+
def __init__(self, input):
|
29
|
+
self.input = input
|
30
|
+
|
31
|
+
def __iter__(self):
|
32
|
+
return self
|
33
|
+
|
34
|
+
def __next__(self):
|
35
|
+
|
36
|
+
self.expr = expr
|
37
|
+
self.tokens = []
|
38
|
+
self.pos = 0
|
dv_flow/mgr/fragment_def.py
CHANGED
@@ -26,11 +26,13 @@ from typing import Any, Dict, List, Union
|
|
26
26
|
from .package import Package
|
27
27
|
from .package_import_spec import PackageImportSpec
|
28
28
|
from .task_def import TaskDef
|
29
|
+
from .type_def import TypeDef
|
29
30
|
|
30
31
|
class FragmentDef(BaseModel):
|
31
32
|
tasks : List[TaskDef] = dc.Field(default_factory=list)
|
32
33
|
imports : List[Union[str,PackageImportSpec]] = dc.Field(default_factory=list, alias="imports")
|
33
34
|
fragments: List[str] = dc.Field(default_factory=list)
|
35
|
+
types : List[TypeDef] = dc.Field(default_factory=list)
|
34
36
|
|
35
37
|
basedir : str = None
|
36
38
|
|
dv_flow/mgr/out
ADDED
dv_flow/mgr/package.py
CHANGED
@@ -31,6 +31,7 @@ class Package(object):
|
|
31
31
|
# Package holds constructors for tasks
|
32
32
|
# - Dict holds the default parameters for the task
|
33
33
|
tasks : Dict[str,TaskCtor] = dc.field(default_factory=dict)
|
34
|
+
types : Dict[str,Any] = dc.field(default_factory=dict)
|
34
35
|
_log : ClassVar = logging.getLogger("Package")
|
35
36
|
|
36
37
|
def getTaskCtor(self, name : str) -> TaskCtor:
|
dv_flow/mgr/package_def.py
CHANGED
@@ -19,6 +19,7 @@
|
|
19
19
|
#* Author:
|
20
20
|
#*
|
21
21
|
#****************************************************************************
|
22
|
+
import io
|
22
23
|
import os
|
23
24
|
import json
|
24
25
|
import yaml
|
@@ -35,6 +36,7 @@ from .package_import_spec import PackageImportSpec, PackageSpec
|
|
35
36
|
from .task import TaskCtor, TaskCtorProxy, TaskCtorCls, TaskCtorParam, TaskCtorParamCls
|
36
37
|
from .task_def import TaskDef, TaskSpec
|
37
38
|
from .std.task_null import TaskNull
|
39
|
+
from .type_def import TypeDef
|
38
40
|
|
39
41
|
|
40
42
|
class PackageDef(BaseModel):
|
@@ -44,6 +46,7 @@ class PackageDef(BaseModel):
|
|
44
46
|
tasks : List[TaskDef] = dc.Field(default_factory=list)
|
45
47
|
imports : List[PackageImportSpec] = dc.Field(default_factory=list)
|
46
48
|
fragments: List[str] = dc.Field(default_factory=list)
|
49
|
+
types : List[TypeDef] = dc.Field(default_factory=list)
|
47
50
|
|
48
51
|
fragment_l : List['FragmentDef'] = dc.Field(default_factory=list, exclude=True)
|
49
52
|
|
@@ -119,6 +122,7 @@ class PackageDef(BaseModel):
|
|
119
122
|
return ctor_t
|
120
123
|
|
121
124
|
def handleParams(self, task, ctor_t):
|
125
|
+
self._log.debug("--> handleParams %s params=%s" % (task.name, str(task.params)))
|
122
126
|
|
123
127
|
if task.params is not None and len(task.params) > 0:
|
124
128
|
decl_params = False
|
@@ -131,7 +135,8 @@ class PackageDef(BaseModel):
|
|
131
135
|
# ctor_t.params.update(task.params)
|
132
136
|
|
133
137
|
for value in task.params.values():
|
134
|
-
|
138
|
+
self._log.debug("value: %s" % str(value))
|
139
|
+
if type(value) == dict and "type" in value.keys():
|
135
140
|
decl_params = True
|
136
141
|
break
|
137
142
|
|
@@ -143,6 +148,7 @@ class PackageDef(BaseModel):
|
|
143
148
|
field_m[fname] = (info.annotation, info.default)
|
144
149
|
|
145
150
|
if decl_params:
|
151
|
+
self._log.debug("Type declares new parameters")
|
146
152
|
# We need to combine base parameters with new parameters
|
147
153
|
ptype_m = {
|
148
154
|
"str" : str,
|
@@ -160,6 +166,7 @@ class PackageDef(BaseModel):
|
|
160
166
|
}
|
161
167
|
for p in task.params.keys():
|
162
168
|
param = task.params[p]
|
169
|
+
self._log.debug("param: %s" % str(param))
|
163
170
|
if type(param) == dict and "type" in param.keys():
|
164
171
|
ptype_s = param["type"]
|
165
172
|
if ptype_s not in ptype_m.keys():
|
@@ -191,6 +198,7 @@ class PackageDef(BaseModel):
|
|
191
198
|
uses=ctor_t,
|
192
199
|
params_ctor=param_t)
|
193
200
|
else: # no new parameters declared
|
201
|
+
self._log.debug("Type only overrides existing parameters")
|
194
202
|
for p in task.params.keys():
|
195
203
|
param = task.params[p]
|
196
204
|
if p not in field_m.keys():
|
@@ -203,12 +211,15 @@ class PackageDef(BaseModel):
|
|
203
211
|
raise Exception("No value specified for param %s: %s" % (
|
204
212
|
p, str(param)))
|
205
213
|
field_m[p] = (field_m[p][0], value)
|
206
|
-
|
214
|
+
self._log.debug("Set param=%s to %s" % (p, str(value)))
|
215
|
+
ctor_t.params[p] = value
|
216
|
+
|
217
|
+
self._log.debug("<-- handleParams %s" % task.name)
|
207
218
|
|
208
219
|
return ctor_t
|
209
220
|
|
210
221
|
def mkTaskCtor(self, session, task, srcdir, tasks_m) -> TaskCtor:
|
211
|
-
self._log.debug("--> %s::mkTaskCtor %s" % (self.name, task.name))
|
222
|
+
self._log.debug("--> %s::mkTaskCtor %s (srcdir: %s)" % (self.name, task.name, srcdir))
|
212
223
|
ctor_t : TaskCtor = None
|
213
224
|
|
214
225
|
# Determine the implementation constructor first
|
@@ -261,6 +272,7 @@ class PackageDef(BaseModel):
|
|
261
272
|
srcdir=srcdir)
|
262
273
|
|
263
274
|
ctor_t = self.handleParams(task, ctor_t)
|
275
|
+
ctor_t.depends.extend(task.depends)
|
264
276
|
|
265
277
|
self._log.debug("<-- %s::mkTaskCtor %s" % (self.name, task.name))
|
266
278
|
return ctor_t
|
@@ -305,6 +317,32 @@ class PackageDef(BaseModel):
|
|
305
317
|
file_s.pop()
|
306
318
|
|
307
319
|
return pkg
|
320
|
+
|
321
|
+
@staticmethod
|
322
|
+
def loads(data, exp_pkg_name=None):
|
323
|
+
return PackageDef._loadPkgDefS(data, exp_pkg_name)
|
324
|
+
pass
|
325
|
+
|
326
|
+
@staticmethod
|
327
|
+
def _loadPkgDefS(data, exp_pkg_name):
|
328
|
+
ret = None
|
329
|
+
doc = yaml.load(io.StringIO(data), Loader=yaml.FullLoader)
|
330
|
+
if "package" not in doc.keys():
|
331
|
+
raise Exception("Missing 'package' key in %s" % root)
|
332
|
+
pkg = PackageDef(**(doc["package"]))
|
333
|
+
pkg.basedir = None
|
334
|
+
|
335
|
+
# for t in pkg.tasks:
|
336
|
+
# t.basedir = os.path.dirname(root)
|
337
|
+
|
338
|
+
if exp_pkg_name is not None:
|
339
|
+
if exp_pkg_name != pkg.name:
|
340
|
+
raise Exception("Package name mismatch: %s != %s" % (exp_pkg_name, pkg.name))
|
341
|
+
|
342
|
+
if len(pkg.fragments) > 0:
|
343
|
+
raise Exception("Cannot load a package-def with fragments from a string")
|
344
|
+
|
345
|
+
return pkg
|
308
346
|
|
309
347
|
@staticmethod
|
310
348
|
def _loadFragmentSpec(pkg, spec, file_s):
|
dv_flow/mgr/param_def.py
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
|
2
|
+
from typing import Any, List, Union
|
3
|
+
from pydantic import BaseModel, Field
|
4
|
+
|
5
|
+
class ListType(BaseModel):
|
6
|
+
item : Union[str, 'ComplexType']
|
7
|
+
|
8
|
+
class MapType(BaseModel):
|
9
|
+
key : Union[str, 'ComplexType']
|
10
|
+
item : Union[str, 'ComplexType']
|
11
|
+
|
12
|
+
class ComplexType(BaseModel):
|
13
|
+
list : Union[ListType, None] = None
|
14
|
+
map : Union[MapType, None] = None
|
15
|
+
|
16
|
+
class ParamDef(BaseModel):
|
17
|
+
name : str
|
18
|
+
doc : str = None
|
19
|
+
type : Union[str, 'ComplexType'] = None
|
20
|
+
value : Union[Any, None] = None
|
21
|
+
append : Union[Any, None] = None
|
22
|
+
prepend : Union[Any, None] = None
|
23
|
+
path_append : Union[Any, None] = Field(alias="path-append", default=None)
|
24
|
+
path_prepend : Union[Any, None] = Field(alias="path-prepend", default=None)
|
25
|
+
|
dv_flow/mgr/std/fileset.py
CHANGED
@@ -26,6 +26,9 @@ class FileSet(Task):
|
|
26
26
|
ex_memento = self.getMemento(TaskFileSetMemento)
|
27
27
|
memento = TaskFileSetMemento()
|
28
28
|
|
29
|
+
self._log.debug("ex_memento: %s" % str(ex_memento))
|
30
|
+
self._log.debug("params: %s" % str(self.params))
|
31
|
+
|
29
32
|
if self.params is not None:
|
30
33
|
glob_root = os.path.join(self.srcdir, self.params.base)
|
31
34
|
glob_root = glob_root.strip()
|
@@ -33,6 +36,8 @@ class FileSet(Task):
|
|
33
36
|
if glob_root[-1] == '/' or glob_root == '\\':
|
34
37
|
glob_root = glob_root[:-1]
|
35
38
|
|
39
|
+
self._log.debug("glob_root: %s" % glob_root)
|
40
|
+
|
36
41
|
fs = _FileSet(
|
37
42
|
src=self.name,
|
38
43
|
type=self.params.type,
|
@@ -45,6 +50,8 @@ class FileSet(Task):
|
|
45
50
|
for pattern in self.params.include:
|
46
51
|
included_files.extend(glob.glob(os.path.join(glob_root, pattern), recursive=False))
|
47
52
|
|
53
|
+
self._log.debug("included_files: %s" % str(included_files))
|
54
|
+
|
48
55
|
for file in included_files:
|
49
56
|
if not any(glob.fnmatch.fnmatch(file, os.path.join(glob_root, pattern)) for pattern in self.params.exclude):
|
50
57
|
memento.files.append((file, os.path.getmtime(os.path.join(glob_root, file))))
|
dv_flow/mgr/std/flow.dv
CHANGED
@@ -27,4 +27,52 @@ package:
|
|
27
27
|
# - name: Exec
|
28
28
|
# pyclass: dv_flow.mgr.std.exec.Exec
|
29
29
|
# with: {}
|
30
|
-
|
30
|
+
types:
|
31
|
+
# - name: TaskDataItem
|
32
|
+
# doc: |
|
33
|
+
# Base type for a data element produced by a task.
|
34
|
+
# TaskDataItem is never used directly
|
35
|
+
# with:
|
36
|
+
# - name: kind
|
37
|
+
# type: str
|
38
|
+
# kind: metadata
|
39
|
+
# doc: |
|
40
|
+
# Kind of data item
|
41
|
+
# - name: src
|
42
|
+
# type: str
|
43
|
+
# kind: metadata
|
44
|
+
# doc: |
|
45
|
+
# Name of the task that produced this item
|
46
|
+
# - name: id
|
47
|
+
# type: str
|
48
|
+
# kind: metadata
|
49
|
+
# doc: |
|
50
|
+
# Unique identiifer
|
51
|
+
|
52
|
+
- name: Env
|
53
|
+
doc: |
|
54
|
+
Environment variables
|
55
|
+
with:
|
56
|
+
- name: doc
|
57
|
+
|
58
|
+
- name: FileSet
|
59
|
+
uses: TaskDataItem
|
60
|
+
with:
|
61
|
+
- name: kind
|
62
|
+
value: "FileSet"
|
63
|
+
- name: base
|
64
|
+
type: str
|
65
|
+
- name: fileType
|
66
|
+
type: str
|
67
|
+
- name: files
|
68
|
+
type:
|
69
|
+
list:
|
70
|
+
item:
|
71
|
+
type: str
|
72
|
+
|
73
|
+
# type:
|
74
|
+
# list: (str,int)
|
75
|
+
# - complex type
|
76
|
+
# type:
|
77
|
+
# object:
|
78
|
+
#
|
dv_flow/mgr/task.py
CHANGED
@@ -123,7 +123,7 @@ class TaskCtorCls(TaskCtor):
|
|
123
123
|
_log : ClassVar = logging.getLogger("TaskCtorCls")
|
124
124
|
|
125
125
|
def mkTask(self, name : str, depends, rundir, srcdir=None, params=None):
|
126
|
-
self._log.debug("--> %s::mkTask (%s)" % (self.name, str(self.task_ctor)))
|
126
|
+
self._log.debug("--> %s::mkTask (%s) srcdir=%s" % (self.name, str(self.task_ctor), srcdir))
|
127
127
|
|
128
128
|
if srcdir is None:
|
129
129
|
srcdir = self.srcdir
|
@@ -137,7 +137,6 @@ class TaskCtorCls(TaskCtor):
|
|
137
137
|
rundir=rundir,
|
138
138
|
srcdir=srcdir,
|
139
139
|
params=params)
|
140
|
-
ret.srcdir = self.srcdir
|
141
140
|
|
142
141
|
# Update parameters on the way back
|
143
142
|
self.applyParams(ret.params)
|
dv_flow/mgr/task_data.py
CHANGED
@@ -48,26 +48,22 @@ class TaskDataParam(BaseModel):
|
|
48
48
|
kind : TaskDataParamKindE
|
49
49
|
ops : List[TaskDataParamOp] = dc.Field(default_factory=list)
|
50
50
|
|
51
|
+
class TaskDataItem(BaseModel):
|
52
|
+
type : str
|
53
|
+
src : str
|
54
|
+
id : str
|
55
|
+
|
51
56
|
class TaskData(BaseModel):
|
52
57
|
src : str = None
|
53
|
-
params : Dict[str,TaskDataParam] = dc.Field(default_factory=dict)
|
54
58
|
deps : Dict[str,Set[str]] = dc.Field(default_factory=dict)
|
55
|
-
filesets : List[FileSet] = dc.Field(default_factory=list)
|
56
59
|
changed : bool = False
|
60
|
+
data : List[TaskDataItem] = dc.Field(default_factory=list)
|
57
61
|
|
58
62
|
_log : ClassVar = logging.getLogger("TaskData")
|
59
63
|
|
60
|
-
def
|
61
|
-
|
62
|
-
|
63
|
-
def getParam(self, name: str) -> Any:
|
64
|
-
return self.params[name]
|
65
|
-
|
66
|
-
def setParam(self, name: str, value: Any):
|
67
|
-
self.params[name] = value
|
68
|
-
|
69
|
-
def addFileSet(self, fs : FileSet):
|
70
|
-
self.filesets.append(fs)
|
64
|
+
def addData(self, item : TaskDataItem):
|
65
|
+
item.src = self.src
|
66
|
+
self.data.append(item)
|
71
67
|
|
72
68
|
def getFileSets(self, type=None, order=True) -> List[FileSet]:
|
73
69
|
ret = []
|
@@ -77,8 +73,10 @@ class TaskData(BaseModel):
|
|
77
73
|
if order:
|
78
74
|
# The deps map specifies task dependencies
|
79
75
|
|
76
|
+
filesets = filter(lambda x: x.type == "std.FileSet", self.data)
|
77
|
+
|
80
78
|
candidate_fs = []
|
81
|
-
for fs in
|
79
|
+
for fs in filesets:
|
82
80
|
self._log.debug("fs: %s" % str(fs))
|
83
81
|
if type is None or fs.type in type:
|
84
82
|
candidate_fs.append(fs)
|
dv_flow/mgr/task_def.py
CHANGED
@@ -22,7 +22,9 @@
|
|
22
22
|
import pydantic.dataclasses as dc
|
23
23
|
from pydantic import BaseModel
|
24
24
|
from typing import Any, Dict, List, Union, Tuple
|
25
|
+
from .param_def import ParamDef
|
25
26
|
from .task import Task
|
27
|
+
from .task_output import TaskOutput
|
26
28
|
|
27
29
|
@dc.dataclass
|
28
30
|
class TaskSpec(object):
|
@@ -37,7 +39,8 @@ class TaskDef(BaseModel):
|
|
37
39
|
desc : str = dc.Field(default="")
|
38
40
|
doc : str = dc.Field(default="")
|
39
41
|
depends : List[Union[str,TaskSpec]] = dc.Field(default_factory=list, alias="needs")
|
40
|
-
params:
|
42
|
+
params: List[ParamDef] = dc.Field(default_factory=list, alias="with")
|
43
|
+
out: List[TaskOutput] = dc.Field(default_factory=list)
|
41
44
|
|
42
45
|
def copy(self) -> 'TaskDef':
|
43
46
|
ret = TaskDef(
|
@@ -0,0 +1,17 @@
|
|
1
|
+
|
2
|
+
from pydantic import BaseModel
|
3
|
+
from typing import Any, ClassVar, Dict, Set, List, Tuple
|
4
|
+
|
5
|
+
class TaskImplParams(BaseModel):
|
6
|
+
pass
|
7
|
+
|
8
|
+
class TaskImplSourceData(BaseModel):
|
9
|
+
params : Any
|
10
|
+
changed : bool
|
11
|
+
memento : Any
|
12
|
+
|
13
|
+
class TaskImplResultData(BaseModel):
|
14
|
+
data : List[Any]
|
15
|
+
changed : bool
|
16
|
+
memento : Any
|
17
|
+
|
dv_flow/mgr/type.py
ADDED
File without changes
|
dv_flow/mgr/type_def.py
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
dv_flow/mgr/__init__.py,sha256=IZA7I1u7RH34DrJXSkETxWFpK5Jn_A2zXfnCAzJ8XxA,289
|
2
|
+
dv_flow/mgr/__main__.py,sha256=uik6gDAvtZNG0yyDKYc4FTl6R1QHAR543jNG2lCAa6E,1771
|
3
|
+
dv_flow/mgr/expr_parser.py,sha256=4gVpWvBWkI6KfTN2PAXhZtAgKIRLxfFs5Gc5IAa27Dg,605
|
4
|
+
dv_flow/mgr/fileset.py,sha256=FNvC5sU2ArxJ0OO3v8dXTv8zX-bZ5t0a0ljne0fQQ1o,1150
|
5
|
+
dv_flow/mgr/fragment_def.py,sha256=cyzp1XeWtNOaagScmeS-BPsoXj9j2LTBbKq5ZUioz8I,1641
|
6
|
+
dv_flow/mgr/out,sha256=d8GGBi3J43fhdLBlnsUbzBfRe0TD0QTP3nOTz54l2bI,200
|
7
|
+
dv_flow/mgr/package.py,sha256=MDnt9q4pD_Aex_hSK_EUQ38IiaxOihgxbMmk5dH1deQ,1674
|
8
|
+
dv_flow/mgr/package_def.py,sha256=Sv3KS5pDysUrtPBWElCvmWt2pnkTipZcZGYwKr5N7Mc,14967
|
9
|
+
dv_flow/mgr/package_import_spec.py,sha256=ah3r15v5Jdub2poc3sgi6Uar1L3oGoYsCPPNiOHV-a4,1760
|
10
|
+
dv_flow/mgr/param_def.py,sha256=e2WvRCMArbgcsKC4TKQqZTscZmCdo3WvVR6w3LN0VK8,727
|
11
|
+
dv_flow/mgr/pkg_rgy.py,sha256=2R_EaeBDJn5qUq9DzSnLc37wUP36MWSv-p0LgUjJRAg,4471
|
12
|
+
dv_flow/mgr/task.py,sha256=giy5elwIS_fab6wGnA8JCeZIEeX0nG5zpcq5ifGYSOs,9087
|
13
|
+
dv_flow/mgr/task_data.py,sha256=ZKoYUhXGyLXXm4GvpS-UDwJ_lZH72lgpzOdHm1XDObY,10386
|
14
|
+
dv_flow/mgr/task_def.py,sha256=6qDDgge5RXssL5TAZR01dGb_Vjvbj72tJirg66O-Yt4,1818
|
15
|
+
dv_flow/mgr/task_graph_builder.py,sha256=4dfy_T26MYI7ls2xiofr4V0ItZHDehU2iw6UBPt-SZQ,7074
|
16
|
+
dv_flow/mgr/task_graph_runner.py,sha256=NwNYcOJ952lPMLwIIlYE9CoDdedqvcw2fWHYUsKFXuU,2164
|
17
|
+
dv_flow/mgr/task_graph_runner_local.py,sha256=66JYJcu-W60LjfuT9UkbcKslNqDcD5q4UR7ZAWrSaGM,4707
|
18
|
+
dv_flow/mgr/task_impl_data.py,sha256=bFPijoKrh9x7fZN2DsvRJp0UHo-gGM0VjtDQISyfhFk,321
|
19
|
+
dv_flow/mgr/task_memento.py,sha256=C7VTQpBhDEoYuDmE6YTM-6TLMLnqHp6Y0Vat1aTgtCs,1096
|
20
|
+
dv_flow/mgr/task_output.py,sha256=l-W-FvVo6YDah1RQS-I9N0KUtB3vp-kl7lxIdmNz0l4,178
|
21
|
+
dv_flow/mgr/type.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
22
|
+
dv_flow/mgr/type_def.py,sha256=KdhuNlfw-NKU-4VZFCnMPyj775yEB7cpr5tz73a9yuQ,259
|
23
|
+
dv_flow/mgr/util.py,sha256=06eVyURF4ga-s8C9Sd3ZSDebwO4QS0XXaB8xADVbWRc,1437
|
24
|
+
dv_flow/mgr/cmds/cmd_run.py,sha256=eths8kT7mBmpZqwOuMtpKAaux4rg-f7hPBxxTHbpKT4,2903
|
25
|
+
dv_flow/mgr/share/flow.json,sha256=lNmZex9NXkYbyb2aZseQfUOkV9CMyfH0iLODEI7EPBw,5096
|
26
|
+
dv_flow/mgr/std/fileset.py,sha256=uP7bGntRq-Tn5_GEFnt0_J_OAmfvep3GlCwCuE8by4o,2710
|
27
|
+
dv_flow/mgr/std/flow.dv,sha256=j9wLrF3Ghh1ZLbJxmk7WiNiRYUYEer-8CCUA5hsgtfk,1409
|
28
|
+
dv_flow/mgr/std/message.py,sha256=BPTHnEMD4tBufQ9LvsS9Sa_0xjaJATbBpwqosWslvVA,193
|
29
|
+
dv_flow/mgr/std/task_null.py,sha256=KObmjG_4D08GJ1k6neqKIQrFY72Sj0jLnwXxEkq5HA0,321
|
30
|
+
dv_flow_mgr-0.0.1.13335470340a1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
31
|
+
dv_flow_mgr-0.0.1.13335470340a1.dist-info/METADATA,sha256=NP0fraxF2IX1pTGM8-F-suzwkkbWU09BFex8ktZSVc8,13276
|
32
|
+
dv_flow_mgr-0.0.1.13335470340a1.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
33
|
+
dv_flow_mgr-0.0.1.13335470340a1.dist-info/entry_points.txt,sha256=1roy8wAFM48LabOvr6jiOw0MUs-qE8X3Vf8YykPazxk,50
|
34
|
+
dv_flow_mgr-0.0.1.13335470340a1.dist-info/top_level.txt,sha256=amfVTkggzYPtWwLqNmRukfz1Buu0pGS2SrYBBLhXm04,8
|
35
|
+
dv_flow_mgr-0.0.1.13335470340a1.dist-info/RECORD,,
|
@@ -1,28 +0,0 @@
|
|
1
|
-
dv_flow/mgr/__init__.py,sha256=IZA7I1u7RH34DrJXSkETxWFpK5Jn_A2zXfnCAzJ8XxA,289
|
2
|
-
dv_flow/mgr/__main__.py,sha256=uik6gDAvtZNG0yyDKYc4FTl6R1QHAR543jNG2lCAa6E,1771
|
3
|
-
dv_flow/mgr/fileset.py,sha256=FNvC5sU2ArxJ0OO3v8dXTv8zX-bZ5t0a0ljne0fQQ1o,1150
|
4
|
-
dv_flow/mgr/fragment_def.py,sha256=p5i6ONtBWlDHTBFsduu3Z36_76Bn8PCIylp_xoZ7jfQ,1552
|
5
|
-
dv_flow/mgr/package.py,sha256=AOLEEotVQF9VNMMl13uNQ7Na2TuHPXxEvybBOX7XIps,1615
|
6
|
-
dv_flow/mgr/package_def.py,sha256=VYeYtrWpLKvwtJCGpG1WPfDU67_ukIO9HyRcmfsZORQ,13428
|
7
|
-
dv_flow/mgr/package_import_spec.py,sha256=ah3r15v5Jdub2poc3sgi6Uar1L3oGoYsCPPNiOHV-a4,1760
|
8
|
-
dv_flow/mgr/pkg_rgy.py,sha256=2R_EaeBDJn5qUq9DzSnLc37wUP36MWSv-p0LgUjJRAg,4471
|
9
|
-
dv_flow/mgr/task.py,sha256=7Nc7H2Wj9xWAHjspJ5TKw6DZ7g8DMisAqWuhjcy3MZU,9102
|
10
|
-
dv_flow/mgr/task_data.py,sha256=XBPWwvuaQ3BZ94wknvv1bqLh98iTzAg5fskv7_kk6DQ,10524
|
11
|
-
dv_flow/mgr/task_def.py,sha256=96hSwqJo0MazJ1VcLhovYRmNCplsNLt47AumtyjSddU,1690
|
12
|
-
dv_flow/mgr/task_graph_builder.py,sha256=4dfy_T26MYI7ls2xiofr4V0ItZHDehU2iw6UBPt-SZQ,7074
|
13
|
-
dv_flow/mgr/task_graph_runner.py,sha256=NwNYcOJ952lPMLwIIlYE9CoDdedqvcw2fWHYUsKFXuU,2164
|
14
|
-
dv_flow/mgr/task_graph_runner_local.py,sha256=66JYJcu-W60LjfuT9UkbcKslNqDcD5q4UR7ZAWrSaGM,4707
|
15
|
-
dv_flow/mgr/task_memento.py,sha256=C7VTQpBhDEoYuDmE6YTM-6TLMLnqHp6Y0Vat1aTgtCs,1096
|
16
|
-
dv_flow/mgr/util.py,sha256=06eVyURF4ga-s8C9Sd3ZSDebwO4QS0XXaB8xADVbWRc,1437
|
17
|
-
dv_flow/mgr/cmds/cmd_run.py,sha256=eths8kT7mBmpZqwOuMtpKAaux4rg-f7hPBxxTHbpKT4,2903
|
18
|
-
dv_flow/mgr/share/flow.json,sha256=lNmZex9NXkYbyb2aZseQfUOkV9CMyfH0iLODEI7EPBw,5096
|
19
|
-
dv_flow/mgr/std/fileset.py,sha256=Hn3_C1CczSRSaNYI3aDYbaaNdnKDlIqU16_GRIBP4PI,2461
|
20
|
-
dv_flow/mgr/std/flow.dv,sha256=pSpzrPPEu_L8DHccGfArxsKYgUfyQidShZc0ShgGtsY,500
|
21
|
-
dv_flow/mgr/std/message.py,sha256=BPTHnEMD4tBufQ9LvsS9Sa_0xjaJATbBpwqosWslvVA,193
|
22
|
-
dv_flow/mgr/std/task_null.py,sha256=KObmjG_4D08GJ1k6neqKIQrFY72Sj0jLnwXxEkq5HA0,321
|
23
|
-
dv_flow_mgr-0.0.1.12981364130a1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
24
|
-
dv_flow_mgr-0.0.1.12981364130a1.dist-info/METADATA,sha256=2RdpXKBb_WGvELv-ExA0F8y6op7EBUxvZj45aOpCtrs,13276
|
25
|
-
dv_flow_mgr-0.0.1.12981364130a1.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
26
|
-
dv_flow_mgr-0.0.1.12981364130a1.dist-info/entry_points.txt,sha256=1roy8wAFM48LabOvr6jiOw0MUs-qE8X3Vf8YykPazxk,50
|
27
|
-
dv_flow_mgr-0.0.1.12981364130a1.dist-info/top_level.txt,sha256=amfVTkggzYPtWwLqNmRukfz1Buu0pGS2SrYBBLhXm04,8
|
28
|
-
dv_flow_mgr-0.0.1.12981364130a1.dist-info/RECORD,,
|
{dv_flow_mgr-0.0.1.12981364130a1.dist-info → dv_flow_mgr-0.0.1.13335470340a1.dist-info}/LICENSE
RENAMED
File without changes
|
{dv_flow_mgr-0.0.1.12981364130a1.dist-info → dv_flow_mgr-0.0.1.13335470340a1.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|
File without changes
|