dv-flow-mgr 0.0.1.12931082290a1__py3-none-any.whl → 0.0.1.12941329363a1__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/__main__.py CHANGED
@@ -1,4 +1,24 @@
1
-
1
+ #****************************************************************************
2
+ #* __main__.py
3
+ #*
4
+ #* Copyright 2023 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 argparse
3
23
  from .cmds.cmd_run import CmdRun
4
24
 
@@ -59,6 +59,8 @@ class CmdRun(object):
59
59
  tasks = []
60
60
 
61
61
  for spec in args.tasks:
62
+ if spec.find('.') == -1:
63
+ spec = pkg.name + "." + spec
62
64
  task = builder.mkTaskGraph(spec)
63
65
  tasks.append(task)
64
66
 
dv_flow/mgr/package.py CHANGED
@@ -20,22 +20,8 @@
20
20
  #*
21
21
  #****************************************************************************
22
22
  import dataclasses as dc
23
- import json
24
- from pydantic import BaseModel
25
- from typing import Any, Callable, Dict, List, Tuple
26
- from .flow import Flow
27
- from .task import TaskParams, TaskCtor
28
- from .task_def import TaskDef
29
-
30
- class PackageAcc(object):
31
- pkg_spec : 'PackageSpec'
32
- session : 'Session'
33
- pkg : 'Package' = None
34
-
35
- def getPackage(self) -> 'Package':
36
- if self.pkg is None:
37
- self.pkg = self.session.getPackage(self.pkg_spec)
38
- return self.pkg
23
+ from typing import Any, Dict
24
+ from .task import TaskCtor
39
25
 
40
26
  @dc.dataclass
41
27
  class Package(object):
@@ -44,13 +30,7 @@ class Package(object):
44
30
  # Package holds constructors for tasks
45
31
  # - Dict holds the default parameters for the task
46
32
  tasks : Dict[str,TaskCtor] = dc.field(default_factory=dict)
47
- imports : List['PackageAcc'] = dc.field(default_factory=list)
48
33
 
49
- def getPackage(self, name : str) -> 'Package':
50
- for p in self.imports:
51
- if p.name == name:
52
- return p.getPackage()
53
-
54
34
  def getTaskCtor(self, name : str) -> TaskCtor:
55
35
  return self.tasks[name]
56
36
 
@@ -28,7 +28,6 @@ import pydantic
28
28
  import pydantic.dataclasses as dc
29
29
  from pydantic import BaseModel
30
30
  from typing import Any, Dict, List, Callable, Tuple
31
- from .flow import Flow
32
31
  from .fragment_def import FragmentDef
33
32
  from .package import Package
34
33
  from .package_import_spec import PackageImportSpec, PackageSpec
@@ -1,4 +1,24 @@
1
-
1
+ #****************************************************************************
2
+ #* package_import_spec.py
3
+ #*
4
+ #* Copyright 2023 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 pydantic.dataclasses as dc
3
23
  import json
4
24
  from typing import Dict, Any
@@ -28,4 +48,4 @@ class PackageSpec(object):
28
48
  @dc.dataclass
29
49
  class PackageImportSpec(PackageSpec):
30
50
  path : str = dc.Field(default=None, alias="from")
31
- alias : str = dc.Field(default=None, alias="as")
51
+ alias : str = dc.Field(default=None, alias="as")
dv_flow/mgr/pkg_rgy.py CHANGED
@@ -1,3 +1,24 @@
1
+ #****************************************************************************
2
+ #* pkg_rgy.py
3
+ #*
4
+ #* Copyright 2023 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
  from typing import Dict, Tuple
@@ -10,13 +31,11 @@ class PkgRgy(object):
10
31
  self._pkgpath = []
11
32
  self._pkg_m : Dict[str, Tuple[str,PackageDef]] = {}
12
33
 
13
- def hasPackage(self, name, search_path=False):
34
+ def hasPackage(self, name, search_path=True):
14
35
  if name in self._pkg_m.keys():
15
36
  return True
16
- elif search_path:
17
- for p in self._pkgpath:
18
- if os.path.exists(os.path.join(p, name)):
19
- return True
37
+ elif search_path and self._findOnPath(name) is not None:
38
+ return True
20
39
  else:
21
40
  return False
22
41
 
@@ -29,11 +48,33 @@ class PkgRgy(object):
29
48
  self._pkg_m[name][0],
30
49
  pkg_def
31
50
  )
32
- pass
33
51
  return self._pkg_m[name][1]
34
52
  else:
35
- # Go search the package path
36
- return None
53
+ return self._findOnPath(name)
54
+
55
+ def _findOnPath(self, name):
56
+ name_s = name.split('.')
57
+ name_dir = "/".join(name_s)
58
+ if len(name_s) > 1:
59
+ name_pref = "/".join(name_s[:-1])
60
+ else:
61
+ name_pref = None
62
+
63
+ pkg = None
64
+
65
+ for path in self._pkgpath:
66
+ if os.path.isfile(os.path.join(path, name_dir, "flow.dv")):
67
+ pkg = PackageDef.load(os.path.join(path, name_dir, "flow.dv"))
68
+ elif name_pref is not None and os.path.isfile(os.path.join(path, name_pref, name_s[-1] + ".dv")):
69
+ pkg = PackageDef.load(os.path.join(path, name_pref, name_s[-1] + ".dv"))
70
+ elif os.path.isfile(os.path.join(path, name + ".dv")):
71
+ pkg = PackageDef.load(os.path.join(path, name + ".dv"))
72
+
73
+ if pkg is not None:
74
+ self._pkg_m[name] = (pkg.name, pkg)
75
+ break
76
+
77
+ return pkg
37
78
 
38
79
  def registerPackage(self, pkg_def):
39
80
  if pkg_def.name in self._pkg_m.keys():
@@ -44,6 +85,10 @@ class PkgRgy(object):
44
85
  # Register built-in package
45
86
  self._pkg_m["std"] = (os.path.join(os.path.dirname(__file__), "std/flow.dv"), None)
46
87
 
88
+ if "DV_FLOW_PATH" in os.environ.keys() and os.environ["DV_FLOW_PATH"] != "":
89
+ paths = os.environ["DV_FLOW_PATH"].split(':')
90
+ self._pkgpath.extend(paths)
91
+
47
92
  if sys.version_info < (3,10):
48
93
  from importlib_metadata import entry_points
49
94
  else:
dv_flow/mgr/task.py CHANGED
@@ -110,9 +110,6 @@ class Task(object):
110
110
  raise Exception("Null output for %s" % d.name)
111
111
  deps_o.append(dep_o)
112
112
 
113
- # Merge filesets. A fileset with the same
114
- print("deps_o: %s" % str(deps_o))
115
-
116
113
  input = TaskData.merge(deps_o)
117
114
  input.src = self.name
118
115
  input.deps[self.name] = list(inp.name for inp in self.depends)
@@ -1,3 +1,24 @@
1
+ #****************************************************************************
2
+ #* task_graph_builder.py
3
+ #*
4
+ #* Copyright 2023 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 dataclasses as dc
3
24
  from .package import Package
@@ -14,7 +35,6 @@ class TaskGraphBuilder(object):
14
35
  pkg_rgy : PkgRgy = None
15
36
  _pkg_s : List[Package] = dc.field(default_factory=list)
16
37
  _pkg_m : Dict[PackageSpec,Package] = dc.field(default_factory=dict)
17
- _pkg_def_m : Dict[str,PackageDef] = dc.field(default_factory=dict)
18
38
  _pkg_spec_s : List[PackageDef] = dc.field(default_factory=list)
19
39
  _task_m : Dict[TaskSpec,Task] = dc.field(default_factory=dict)
20
40
 
@@ -106,8 +126,6 @@ class TaskGraphBuilder(object):
106
126
  else:
107
127
  pkg_def = None
108
128
 
109
- print("spec: %s ; _pkg_def_m: %s" % (str(spec), str(self._pkg_def_m.keys())))
110
-
111
129
  # Need a stack to track which package we are currently in
112
130
  # Need a map to get a concrete package from a name with parameterization
113
131
 
@@ -119,8 +137,9 @@ class TaskGraphBuilder(object):
119
137
  pkg = self._pkg_s[-1]
120
138
  if spec in self._pkg_m.keys():
121
139
  pkg = self._pkg_m[spec]
122
- elif spec in self._pkg_def_m.keys():
123
- pkg = self._pkg_def_m[spec].mkPackage(self)
140
+ elif self.pkg_rgy.hasPackage(spec.name):
141
+ pkg_def = self.pkg_rgy.getPackage(spec.name)
142
+ pkg = pkg_def.mkPackage(self)
124
143
  self._pkg_m[spec] = pkg
125
144
  else:
126
145
  pkg = None
@@ -135,22 +154,26 @@ class TaskGraphBuilder(object):
135
154
  tgt_pkg_spec = PackageSpec(imp.name)
136
155
  if tgt_pkg_spec in self._pkg_m.keys():
137
156
  pkg = self._pkg_m[tgt_pkg_spec]
138
- elif tgt_pkg_spec in self._pkg_def_m.keys():
139
- base = self._pkg_def_m[tgt_pkg_spec]
157
+ elif self.pkg_rgy.hasPackage(tgt_pkg_spec.name):
158
+ base = self.pkg_rgy.getPackage(tgt_pkg_spec.name)
140
159
  pkg = base.mkPackage(self, spec.params)
141
160
  self._pkg_m[spec] = pkg
142
161
  elif imp.path is not None:
143
162
  # See if we can load the package
144
163
  print("TODO: load referenced package")
145
164
  else:
146
- raise Exception("Import alias %s not found" % imp.name)
165
+ raise Exception("Failed to resolve target (%s) of import alias %s" % (
166
+ imp.name,
167
+ imp.alias))
147
168
  break
148
169
  else:
149
170
  # Need to compare the spec with the full import spec
150
171
  imp_spec = PackageSpec(imp.name)
151
172
  # TODO: set parameters
152
173
  if imp_spec == spec:
153
- base = self._pkg_def_m[PackageSpec(spec.name)]
174
+ base = self.pkg_rgy.getPackage(spec.name)
175
+ if base is None:
176
+ raise Exception("Failed to find imported package %s" % spec.name)
154
177
  pkg = base.mkPackage(self, spec.params)
155
178
  self._pkg_m[spec] = pkg
156
179
  break
@@ -1,5 +1,5 @@
1
1
  #****************************************************************************
2
- #* session.py
2
+ #* task_graph_runner.py
3
3
  #*
4
4
  #* Copyright 2023 Matthew Ballance and Contributors
5
5
  #*
@@ -74,6 +74,8 @@ class TaskGraphRunnerLocal(TaskGraphRunner):
74
74
  print("dep_m: %s" % str(dep_m))
75
75
 
76
76
  order = list(toposort(dep_m))
77
+
78
+ print("order: %s" % str(order))
77
79
 
78
80
  active_task_l : List[Tuple[Task,Coroutine]]= []
79
81
  # Now, iterate over the concurrent sets
@@ -93,9 +95,9 @@ class TaskGraphRunnerLocal(TaskGraphRunner):
93
95
  active_task_l.pop(i)
94
96
  break
95
97
  if t not in self.done_task_m.keys():
96
- task = task_m[t]
97
- coro = asyncio.Task(task.do_run())
98
- active_task_l.append((task, coro))
98
+ task_t = task_m[t]
99
+ coro = asyncio.Task(task_t.do_run())
100
+ active_task_l.append((task_t, coro))
99
101
 
100
102
  # Now, wait for tasks to complete
101
103
  if len(active_task_l):
@@ -110,7 +112,7 @@ class TaskGraphRunnerLocal(TaskGraphRunner):
110
112
  ret = None
111
113
 
112
114
  if unwrap:
113
- return task.output
115
+ return task[0].output
114
116
  else:
115
117
  return list(t.output for t in task)
116
118
 
dv_flow/mgr/util.py CHANGED
@@ -1,3 +1,24 @@
1
+ #****************************************************************************
2
+ #* util.py
3
+ #*
4
+ #* Copyright 2023 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 yaml
3
24
  from .package_def import PackageDef
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: dv-flow-mgr
3
- Version: 0.0.1.12931082290a1
3
+ Version: 0.0.1.12941329363a1
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,29 @@
1
+ dv_flow/mgr/__init__.py,sha256=VtQfTiskn-fBaWU18s8odFPMDJ1Lx2DD4Y4Uy5EJ0Qs,261
2
+ dv_flow/mgr/__main__.py,sha256=big-RSuqbx7P48_8rzaZKX5YW3B2US1i0mRH_TfoeIs,1340
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=7G_ZQaTHin_mcwQu1PRsGmqfKAbdu9IC5HeLXtPgBDc,1342
6
+ dv_flow/mgr/package_def.py,sha256=3X0lrbU_SCNhxF9wFTpfQcmD1AbOv4XhnA-5U0IPouk,11431
7
+ dv_flow/mgr/package_import_spec.py,sha256=ah3r15v5Jdub2poc3sgi6Uar1L3oGoYsCPPNiOHV-a4,1760
8
+ dv_flow/mgr/pkg_rgy.py,sha256=ej8VyWH8BWdDNVqk3cSJgQq4h3bW1rgj6uCxUr7gfH8,4384
9
+ dv_flow/mgr/task.py,sha256=ewJ7bCFWqwVuzHZZsX2LDZfzXWVFfFlH8yFyn-xxIVg,5043
10
+ dv_flow/mgr/task_data.py,sha256=-6Dqa3oUI7RJc1Js2SRSnhxNTcASkamXFYMN6UiknZQ,10376
11
+ dv_flow/mgr/task_def.py,sha256=96hSwqJo0MazJ1VcLhovYRmNCplsNLt47AumtyjSddU,1690
12
+ dv_flow/mgr/task_graph_builder.py,sha256=hK4CxIBlyCL9L9iNQdDNQGrChfoFKmYtU7PT51g_PHM,8080
13
+ dv_flow/mgr/task_graph_runner.py,sha256=NwNYcOJ952lPMLwIIlYE9CoDdedqvcw2fWHYUsKFXuU,2164
14
+ dv_flow/mgr/task_graph_runner_local.py,sha256=-O0_TPuXoMrRvpSUWJZffDkUDyBC5PCnLCXJ4T30FgA,4604
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=C1bd2yZxVU03hZizGLYoH1JfZgeq_G57Kajc279iZpo,2773
18
+ dv_flow/mgr/share/flow.json,sha256=lNmZex9NXkYbyb2aZseQfUOkV9CMyfH0iLODEI7EPBw,5096
19
+ dv_flow/mgr/std/fileset.py,sha256=qY4RMqTHZaFZk68Y3oXtDv2_Ezu1r4wYvaRvr0GTyIY,2352
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_fileset.py,sha256=UzTYONvK0X9rgy3rP9LiX4giBU8SyCCJav0LSNUJ1Qg,3140
23
+ dv_flow/mgr/std/task_null.py,sha256=UEJ3fIoIMYWVsagiQC7GHD23UES7WoH4wtq94b4tcs4,265
24
+ dv_flow_mgr-0.0.1.12941329363a1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
25
+ dv_flow_mgr-0.0.1.12941329363a1.dist-info/METADATA,sha256=xuwb28g214WYwODgXHPicVVFvDj2Ct4TczlbOeDIuG8,13276
26
+ dv_flow_mgr-0.0.1.12941329363a1.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
27
+ dv_flow_mgr-0.0.1.12941329363a1.dist-info/entry_points.txt,sha256=1roy8wAFM48LabOvr6jiOw0MUs-qE8X3Vf8YykPazxk,50
28
+ dv_flow_mgr-0.0.1.12941329363a1.dist-info/top_level.txt,sha256=amfVTkggzYPtWwLqNmRukfz1Buu0pGS2SrYBBLhXm04,8
29
+ dv_flow_mgr-0.0.1.12941329363a1.dist-info/RECORD,,
dv_flow/mgr/flow.py DELETED
@@ -1,59 +0,0 @@
1
- #****************************************************************************
2
- #* flow.py
3
- #*
4
- #* Copyright 2023 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
- from pydantic import BaseModel, Field
23
- from typing import ClassVar
24
- #from .task import Task
25
-
26
- class Flow(BaseModel):
27
- # - Parameters are user-facing
28
- # - Any implementation data must be stored elsewhere, such that it isn't
29
- # checked for equality...
30
- name : str
31
- description : str = Field(None)
32
-
33
-
34
- @classmethod
35
- def mk(cls, *args, **kwargs):
36
- pass
37
-
38
- async def my_method(self):
39
- return Task(a,b,c)(self, input)
40
-
41
- #@extend(target)
42
- #class FlowExt(object):
43
- # pass
44
-
45
-
46
- class Flow2(Flow):
47
- description : str = "abc"
48
-
49
- async def my_method(self):
50
- super().my_method()
51
-
52
- f = Flow2(name="foo")
53
-
54
- #for d in dir(f):
55
- # if not d.startswith("_"):
56
- # print("%s: %s" % (d, str(getattr(f, d))))
57
-
58
-
59
-
dv_flow/mgr/parameters.py DELETED
@@ -1,27 +0,0 @@
1
- #****************************************************************************
2
- #* parameters.py
3
- #*
4
- #* Copyright 2023 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
-
23
- class Parameters(object):
24
-
25
- def __init__(self):
26
- pass
27
-
@@ -1,31 +0,0 @@
1
- dv_flow/mgr/__init__.py,sha256=VtQfTiskn-fBaWU18s8odFPMDJ1Lx2DD4Y4Uy5EJ0Qs,261
2
- dv_flow/mgr/__main__.py,sha256=pHXC_c-XSPUYQsBDxk5y7LtQ5kA5pKGhhzu4ko5jh7k,513
3
- dv_flow/mgr/fileset.py,sha256=FNvC5sU2ArxJ0OO3v8dXTv8zX-bZ5t0a0ljne0fQQ1o,1150
4
- dv_flow/mgr/flow.py,sha256=UdgJOIqBS2wTRpO-sNWCCqO9oQFxDfGPGVD0r42aTrA,1562
5
- dv_flow/mgr/fragment_def.py,sha256=p5i6ONtBWlDHTBFsduu3Z36_76Bn8PCIylp_xoZ7jfQ,1552
6
- dv_flow/mgr/package.py,sha256=k6gaDun9mJeGwGsFP5YOYOaFLmKb3KyPZy5wGRgJd_E,1965
7
- dv_flow/mgr/package_def.py,sha256=fdPzhoCqZ-w336ktDVWZ1HKKFk9Zi6iehCcS-iW_EvU,11454
8
- dv_flow/mgr/package_import_spec.py,sha256=bStPa727wAKMcixydVY1Ht6ylzXsSMy2K31HWPXhc9k,921
9
- dv_flow/mgr/parameters.py,sha256=kUjRss5VtMMz5eL3-Z_M6BS-wFs7MhQu3ANXO54UPo0,896
10
- dv_flow/mgr/pkg_rgy.py,sha256=y7HOBZAgKHL4ItnFvjT0lWC_ne81qJi4lJGNLt69au0,2581
11
- dv_flow/mgr/task.py,sha256=4ktSrDJOR7N477u8HWOBfeer1Wwc4mwqMYode1vkApY,5144
12
- dv_flow/mgr/task_data.py,sha256=-6Dqa3oUI7RJc1Js2SRSnhxNTcASkamXFYMN6UiknZQ,10376
13
- dv_flow/mgr/task_def.py,sha256=96hSwqJo0MazJ1VcLhovYRmNCplsNLt47AumtyjSddU,1690
14
- dv_flow/mgr/task_graph_builder.py,sha256=1b636njhFJ7gu-re2zBzb1g4GMKQkQmmCqk51niYnU0,7097
15
- dv_flow/mgr/task_graph_runner.py,sha256=x2e-wpJFhZ4Zkov30PtC8CuKyOK6htA1SKzmrcVBI9M,2154
16
- dv_flow/mgr/task_graph_runner_local.py,sha256=QDCUyFj_m4hJTUsZD5nCUCnPu3hysdk65-gVA8eJ894,4546
17
- dv_flow/mgr/task_memento.py,sha256=C7VTQpBhDEoYuDmE6YTM-6TLMLnqHp6Y0Vat1aTgtCs,1096
18
- dv_flow/mgr/util.py,sha256=WKwMF4vwYdte5wzieSTDpZTmZU0sjQro3Ofi9moCayE,613
19
- dv_flow/mgr/cmds/cmd_run.py,sha256=PqAbPMwqovaaq14tnNrCvP7-De8lMI09X0R7d6RIbwY,2691
20
- dv_flow/mgr/share/flow.json,sha256=lNmZex9NXkYbyb2aZseQfUOkV9CMyfH0iLODEI7EPBw,5096
21
- dv_flow/mgr/std/fileset.py,sha256=qY4RMqTHZaFZk68Y3oXtDv2_Ezu1r4wYvaRvr0GTyIY,2352
22
- dv_flow/mgr/std/flow.dv,sha256=pSpzrPPEu_L8DHccGfArxsKYgUfyQidShZc0ShgGtsY,500
23
- dv_flow/mgr/std/message.py,sha256=BPTHnEMD4tBufQ9LvsS9Sa_0xjaJATbBpwqosWslvVA,193
24
- dv_flow/mgr/std/task_fileset.py,sha256=UzTYONvK0X9rgy3rP9LiX4giBU8SyCCJav0LSNUJ1Qg,3140
25
- dv_flow/mgr/std/task_null.py,sha256=UEJ3fIoIMYWVsagiQC7GHD23UES7WoH4wtq94b4tcs4,265
26
- dv_flow_mgr-0.0.1.12931082290a1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
27
- dv_flow_mgr-0.0.1.12931082290a1.dist-info/METADATA,sha256=_K8BKKre8AzPLV2GnOy2xkn21sti9eA-liuG63-qP6E,13276
28
- dv_flow_mgr-0.0.1.12931082290a1.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
29
- dv_flow_mgr-0.0.1.12931082290a1.dist-info/entry_points.txt,sha256=1roy8wAFM48LabOvr6jiOw0MUs-qE8X3Vf8YykPazxk,50
30
- dv_flow_mgr-0.0.1.12931082290a1.dist-info/top_level.txt,sha256=amfVTkggzYPtWwLqNmRukfz1Buu0pGS2SrYBBLhXm04,8
31
- dv_flow_mgr-0.0.1.12931082290a1.dist-info/RECORD,,