dv-flow-mgr 0.0.1.12922457458a1__py3-none-any.whl → 0.0.1.12931082290a1__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/task.py +12 -53
- dv_flow/mgr/task_graph_builder.py +0 -7
- {dv_flow_mgr-0.0.1.12922457458a1.dist-info → dv_flow_mgr-0.0.1.12931082290a1.dist-info}/METADATA +1 -1
- {dv_flow_mgr-0.0.1.12922457458a1.dist-info → dv_flow_mgr-0.0.1.12931082290a1.dist-info}/RECORD +8 -8
- {dv_flow_mgr-0.0.1.12922457458a1.dist-info → dv_flow_mgr-0.0.1.12931082290a1.dist-info}/LICENSE +0 -0
- {dv_flow_mgr-0.0.1.12922457458a1.dist-info → dv_flow_mgr-0.0.1.12931082290a1.dist-info}/WHEEL +0 -0
- {dv_flow_mgr-0.0.1.12922457458a1.dist-info → dv_flow_mgr-0.0.1.12931082290a1.dist-info}/entry_points.txt +0 -0
- {dv_flow_mgr-0.0.1.12922457458a1.dist-info → dv_flow_mgr-0.0.1.12931082290a1.dist-info}/top_level.txt +0 -0
dv_flow/mgr/task.py
CHANGED
@@ -68,12 +68,8 @@ class Task(object):
|
|
68
68
|
session : 'TaskGraphRunner' = None
|
69
69
|
basedir : str = None
|
70
70
|
memento : TaskMemento = None
|
71
|
-
|
72
|
-
depends : List[int] = dc.field(default_factory=list)
|
73
|
-
running : bool = False
|
74
|
-
output_set : bool = False
|
71
|
+
depends : List['Task'] = dc.field(default_factory=list)
|
75
72
|
output : Any = None
|
76
|
-
output_ev : Any = asyncio.Event()
|
77
73
|
|
78
74
|
# Implementation data below
|
79
75
|
basedir : str = dc.field(default=None)
|
@@ -107,23 +103,16 @@ class Task(object):
|
|
107
103
|
async def do_run(self) -> TaskData:
|
108
104
|
print("do_run: %s - %d depends" % (self.name, len(self.depends)))
|
109
105
|
if len(self.depends) > 0:
|
110
|
-
|
111
|
-
|
106
|
+
deps_o = []
|
107
|
+
for d in self.depends:
|
108
|
+
dep_o = d.getOutput()
|
109
|
+
if dep_o is None:
|
110
|
+
raise Exception("Null output for %s" % d.name)
|
111
|
+
deps_o.append(dep_o)
|
112
112
|
|
113
113
|
# Merge filesets. A fileset with the same
|
114
114
|
print("deps_o: %s" % str(deps_o))
|
115
115
|
|
116
|
-
|
117
|
-
# print("deps_m: %s" % str(deps_m))
|
118
|
-
|
119
|
-
# Merge the output of the dependencies into a single input data
|
120
|
-
# if len(self.depends) > 1:
|
121
|
-
# raise Exception("TODO: handle >1 inputs")
|
122
|
-
|
123
|
-
# Now that we have a clean input object, we need
|
124
|
-
# to build the dep map
|
125
|
-
|
126
|
-
# input = self.depends[0].output.copy()
|
127
116
|
input = TaskData.merge(deps_o)
|
128
117
|
input.src = self.name
|
129
118
|
input.deps[self.name] = list(inp.name for inp in self.depends)
|
@@ -137,29 +126,17 @@ class Task(object):
|
|
137
126
|
|
138
127
|
self.init_rundir()
|
139
128
|
|
140
|
-
|
141
|
-
|
142
|
-
if not self.output_set:
|
143
|
-
if result is None:
|
144
|
-
result = TaskData()
|
129
|
+
self.output = await self.run(input)
|
145
130
|
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
# result.deps.append(dep_o.clone())
|
150
|
-
|
151
|
-
self.setOutput(result)
|
152
|
-
else:
|
153
|
-
# The task has taken control of the output
|
154
|
-
result = self.getOutput()
|
131
|
+
if self.output is None:
|
132
|
+
raise Exception("No output produced by %s" % self.name)
|
133
|
+
result = TaskData()
|
155
134
|
|
156
135
|
# Write-back the memento, if specified
|
157
136
|
self.save_memento()
|
158
137
|
|
159
|
-
self.running = False
|
160
|
-
|
161
138
|
# Combine data from the deps to produce a result
|
162
|
-
return
|
139
|
+
return self.output
|
163
140
|
|
164
141
|
async def run(self, input : TaskData) -> TaskData:
|
165
142
|
raise NotImplementedError("TaskImpl.run() not implemented")
|
@@ -173,24 +150,6 @@ class Task(object):
|
|
173
150
|
with open(os.path.join(self.rundir, "memento.json"), "w") as fp:
|
174
151
|
fp.write(self.memento.model_dump_json(indent=2))
|
175
152
|
|
176
|
-
def setOutput(self, output : TaskData):
|
177
|
-
self.output_set = True
|
178
|
-
output.src = self.name
|
179
|
-
self.output = output
|
180
|
-
self.output_ev.set()
|
181
|
-
|
182
|
-
async def waitOutput(self) -> TaskData:
|
183
|
-
if not self.output_set:
|
184
|
-
if self.running:
|
185
|
-
# Task is already running
|
186
|
-
print("wait")
|
187
|
-
await self.output_ev.wait()
|
188
|
-
else:
|
189
|
-
self.running = True
|
190
|
-
print("start task")
|
191
|
-
await self.do_run()
|
192
|
-
return self.output
|
193
|
-
|
194
153
|
def getOutput(self) -> TaskData:
|
195
154
|
return self.output
|
196
155
|
|
@@ -87,13 +87,6 @@ class TaskGraphBuilder(object):
|
|
87
87
|
rundir=rundir,
|
88
88
|
srcdir=ctor_t.srcdir)
|
89
89
|
|
90
|
-
for i,d in enumerate(task.depend_refs):
|
91
|
-
if d in self._task_m.keys():
|
92
|
-
task.depends.append(self._task_m[d])
|
93
|
-
else:
|
94
|
-
print("mkTaskGraph: %s" % d)
|
95
|
-
task.depends.append(self._mkTaskGraph(d, parent_rundir))
|
96
|
-
|
97
90
|
self._task_m[task.name] = task
|
98
91
|
|
99
92
|
self._pkg_s.pop()
|
{dv_flow_mgr-0.0.1.12922457458a1.dist-info → dv_flow_mgr-0.0.1.12931082290a1.dist-info}/RECORD
RENAMED
@@ -8,10 +8,10 @@ dv_flow/mgr/package_def.py,sha256=fdPzhoCqZ-w336ktDVWZ1HKKFk9Zi6iehCcS-iW_EvU,11
|
|
8
8
|
dv_flow/mgr/package_import_spec.py,sha256=bStPa727wAKMcixydVY1Ht6ylzXsSMy2K31HWPXhc9k,921
|
9
9
|
dv_flow/mgr/parameters.py,sha256=kUjRss5VtMMz5eL3-Z_M6BS-wFs7MhQu3ANXO54UPo0,896
|
10
10
|
dv_flow/mgr/pkg_rgy.py,sha256=y7HOBZAgKHL4ItnFvjT0lWC_ne81qJi4lJGNLt69au0,2581
|
11
|
-
dv_flow/mgr/task.py,sha256=
|
11
|
+
dv_flow/mgr/task.py,sha256=4ktSrDJOR7N477u8HWOBfeer1Wwc4mwqMYode1vkApY,5144
|
12
12
|
dv_flow/mgr/task_data.py,sha256=-6Dqa3oUI7RJc1Js2SRSnhxNTcASkamXFYMN6UiknZQ,10376
|
13
13
|
dv_flow/mgr/task_def.py,sha256=96hSwqJo0MazJ1VcLhovYRmNCplsNLt47AumtyjSddU,1690
|
14
|
-
dv_flow/mgr/task_graph_builder.py,sha256=
|
14
|
+
dv_flow/mgr/task_graph_builder.py,sha256=1b636njhFJ7gu-re2zBzb1g4GMKQkQmmCqk51niYnU0,7097
|
15
15
|
dv_flow/mgr/task_graph_runner.py,sha256=x2e-wpJFhZ4Zkov30PtC8CuKyOK6htA1SKzmrcVBI9M,2154
|
16
16
|
dv_flow/mgr/task_graph_runner_local.py,sha256=QDCUyFj_m4hJTUsZD5nCUCnPu3hysdk65-gVA8eJ894,4546
|
17
17
|
dv_flow/mgr/task_memento.py,sha256=C7VTQpBhDEoYuDmE6YTM-6TLMLnqHp6Y0Vat1aTgtCs,1096
|
@@ -23,9 +23,9 @@ dv_flow/mgr/std/flow.dv,sha256=pSpzrPPEu_L8DHccGfArxsKYgUfyQidShZc0ShgGtsY,500
|
|
23
23
|
dv_flow/mgr/std/message.py,sha256=BPTHnEMD4tBufQ9LvsS9Sa_0xjaJATbBpwqosWslvVA,193
|
24
24
|
dv_flow/mgr/std/task_fileset.py,sha256=UzTYONvK0X9rgy3rP9LiX4giBU8SyCCJav0LSNUJ1Qg,3140
|
25
25
|
dv_flow/mgr/std/task_null.py,sha256=UEJ3fIoIMYWVsagiQC7GHD23UES7WoH4wtq94b4tcs4,265
|
26
|
-
dv_flow_mgr-0.0.1.
|
27
|
-
dv_flow_mgr-0.0.1.
|
28
|
-
dv_flow_mgr-0.0.1.
|
29
|
-
dv_flow_mgr-0.0.1.
|
30
|
-
dv_flow_mgr-0.0.1.
|
31
|
-
dv_flow_mgr-0.0.1.
|
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,,
|
{dv_flow_mgr-0.0.1.12922457458a1.dist-info → dv_flow_mgr-0.0.1.12931082290a1.dist-info}/LICENSE
RENAMED
File without changes
|
{dv_flow_mgr-0.0.1.12922457458a1.dist-info → dv_flow_mgr-0.0.1.12931082290a1.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|
File without changes
|