dv-flow-mgr 0.0.1.13798183675a1__py3-none-any.whl → 0.0.1.13824498694a1__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/package_def.py +21 -2
- dv_flow/mgr/task_data.py +1 -0
- dv_flow/mgr/task_listener_log.py +4 -1
- dv_flow/mgr/task_node.py +44 -16
- dv_flow/mgr/task_runner.py +1 -0
- {dv_flow_mgr-0.0.1.13798183675a1.dist-info → dv_flow_mgr-0.0.1.13824498694a1.dist-info}/METADATA +1 -1
- {dv_flow_mgr-0.0.1.13798183675a1.dist-info → dv_flow_mgr-0.0.1.13824498694a1.dist-info}/RECORD +11 -11
- {dv_flow_mgr-0.0.1.13798183675a1.dist-info → dv_flow_mgr-0.0.1.13824498694a1.dist-info}/LICENSE +0 -0
- {dv_flow_mgr-0.0.1.13798183675a1.dist-info → dv_flow_mgr-0.0.1.13824498694a1.dist-info}/WHEEL +0 -0
- {dv_flow_mgr-0.0.1.13798183675a1.dist-info → dv_flow_mgr-0.0.1.13824498694a1.dist-info}/entry_points.txt +0 -0
- {dv_flow_mgr-0.0.1.13798183675a1.dist-info → dv_flow_mgr-0.0.1.13824498694a1.dist-info}/top_level.txt +0 -0
dv_flow/mgr/package_def.py
CHANGED
@@ -347,8 +347,27 @@ class PackageDef(BaseModel):
|
|
347
347
|
if not os.path.isabs(imp_path):
|
348
348
|
cls._log.debug("basedir: %s ; imp_path: %s" % (pkg.basedir, imp_path))
|
349
349
|
imp_path = os.path.join(pkg.basedir, imp_path)
|
350
|
-
|
351
|
-
|
350
|
+
|
351
|
+
# Search down the tree looking for a flow.dv file
|
352
|
+
if os.path.isdir(imp_path):
|
353
|
+
path = imp_path
|
354
|
+
|
355
|
+
while path is not None and os.path.isdir(path) and not os.path.isfile(os.path.join(path, "flow.dv")):
|
356
|
+
# Look one directory down
|
357
|
+
next_dir = None
|
358
|
+
for dir in os.listdir(path):
|
359
|
+
if os.path.isdir(os.path.join(path, dir)):
|
360
|
+
if next_dir is None:
|
361
|
+
next_dir = dir
|
362
|
+
else:
|
363
|
+
path = None
|
364
|
+
break
|
365
|
+
if path is not None:
|
366
|
+
path = next_dir
|
367
|
+
|
368
|
+
if path is not None and os.path.isfile(os.path.join(path, "flow.dv")):
|
369
|
+
imp_path = os.path.join(path, "flow.dv")
|
370
|
+
|
352
371
|
if not os.path.isfile(imp_path):
|
353
372
|
raise Exception("Import file %s not found" % imp_path)
|
354
373
|
|
dv_flow/mgr/task_data.py
CHANGED
dv_flow/mgr/task_listener_log.py
CHANGED
@@ -4,10 +4,13 @@ from rich.console import Console
|
|
4
4
|
|
5
5
|
@dc.dataclass
|
6
6
|
class TaskListenerLog(object):
|
7
|
-
console : Console = dc.field(
|
7
|
+
console : Console = dc.field(default=None)
|
8
8
|
level : int = 0
|
9
9
|
quiet : bool = False
|
10
10
|
|
11
|
+
def __post_init__(self):
|
12
|
+
self.console = Console(highlight=False)
|
13
|
+
|
11
14
|
def event(self, task : 'Task', reason : 'Reason'):
|
12
15
|
if reason == 'enter':
|
13
16
|
self.level += 1
|
dv_flow/mgr/task_node.py
CHANGED
@@ -86,6 +86,13 @@ class TaskNode(object):
|
|
86
86
|
self._log.debug("in_params[2]: %s" % ",".join(p.src for p in in_params))
|
87
87
|
eval.setVar("in", in_params)
|
88
88
|
|
89
|
+
# Default inputs is the list of parameter sets that match 'consumes'
|
90
|
+
inputs = []
|
91
|
+
if self.consumes is not None and len(self.consumes):
|
92
|
+
for in_p in in_params:
|
93
|
+
if self._matches(in_p, self.consumes):
|
94
|
+
inputs.append(in_p)
|
95
|
+
|
89
96
|
for name,field in self.params.model_fields.items():
|
90
97
|
value = getattr(self.params, name)
|
91
98
|
if type(value) == str:
|
@@ -107,6 +114,7 @@ class TaskNode(object):
|
|
107
114
|
srcdir=self.srcdir,
|
108
115
|
rundir=rundir,
|
109
116
|
params=self.params,
|
117
|
+
inputs=inputs,
|
110
118
|
memento=memento)
|
111
119
|
|
112
120
|
self._log.debug("--> Call task method %s" % str(self.task))
|
@@ -134,26 +142,28 @@ class TaskNode(object):
|
|
134
142
|
self._log.debug("consumes: %s" % str(self.consumes))
|
135
143
|
for need in self.needs:
|
136
144
|
for out in need.output.output:
|
137
|
-
|
138
|
-
for c in self.consumes:
|
139
|
-
match = False
|
140
|
-
for k,v in c.items():
|
141
|
-
self._log.debug("k,v: %s,%s" % (k,v))
|
142
|
-
if hasattr(out, k):
|
143
|
-
self._log.debug("has attribute: %s" % str(getattr(out ,k)))
|
144
|
-
if getattr(out, k) == v:
|
145
|
-
self._log.debug("match")
|
146
|
-
match = True
|
147
|
-
break
|
148
|
-
if match:
|
149
|
-
consumed = True
|
150
|
-
break
|
151
|
-
|
152
|
-
if not consumed:
|
145
|
+
if not self._matches(out, self.consumes):
|
153
146
|
self._log.debug("Propagating type %s from %s" % (
|
154
147
|
getattr(out, "type", "<unknown>"),
|
155
148
|
getattr(out, "src", "<unknown>")))
|
156
149
|
output.append(out)
|
150
|
+
|
151
|
+
# consumed = False
|
152
|
+
# for c in self.consumes:
|
153
|
+
# match = False
|
154
|
+
# for k,v in c.items():
|
155
|
+
# self._log.debug("k,v: %s,%s" % (k,v))
|
156
|
+
# if hasattr(out, k):
|
157
|
+
# self._log.debug("has attribute: %s" % str(getattr(out ,k)))
|
158
|
+
# if getattr(out, k) == v:
|
159
|
+
# self._log.debug("match")
|
160
|
+
# match = True
|
161
|
+
# break
|
162
|
+
# if match:
|
163
|
+
# consumed = True
|
164
|
+
# break
|
165
|
+
|
166
|
+
# if not consumed:
|
157
167
|
else:
|
158
168
|
self._log.debug("non-passthrough: %s (only local outputs propagated)" % self.name)
|
159
169
|
# empty dependency map
|
@@ -342,6 +352,24 @@ class TaskNodeCtorWrapper(TaskNodeCtor):
|
|
342
352
|
else:
|
343
353
|
setattr(obj, key, value)
|
344
354
|
return obj
|
355
|
+
|
356
|
+
def _matches(self, params, consumes):
|
357
|
+
"""Determines if a parameter set matches a set of consumed parameters"""
|
358
|
+
consumed = False
|
359
|
+
for c in consumes:
|
360
|
+
# All matching attribute keys must have same value
|
361
|
+
match = False
|
362
|
+
for k,v in c.items():
|
363
|
+
if hasattr(params, k):
|
364
|
+
if getattr(params, k) != v:
|
365
|
+
match = True
|
366
|
+
else:
|
367
|
+
match = False
|
368
|
+
break
|
369
|
+
if match:
|
370
|
+
consumed = True
|
371
|
+
break
|
372
|
+
return consumed
|
345
373
|
|
346
374
|
def task(paramT,passthrough=False,consumes=None):
|
347
375
|
"""Decorator to wrap a task method as a TaskNodeCtor"""
|
dv_flow/mgr/task_runner.py
CHANGED
{dv_flow_mgr-0.0.1.13798183675a1.dist-info → dv_flow_mgr-0.0.1.13824498694a1.dist-info}/RECORD
RENAMED
@@ -7,7 +7,7 @@ dv_flow/mgr/fileset.py,sha256=_EhtqBVn0prylXJhR3dUV2p7ocGHzNAF_ZtYNgeKJhs,1240
|
|
7
7
|
dv_flow/mgr/fragment_def.py,sha256=cyzp1XeWtNOaagScmeS-BPsoXj9j2LTBbKq5ZUioz8I,1641
|
8
8
|
dv_flow/mgr/out,sha256=d8GGBi3J43fhdLBlnsUbzBfRe0TD0QTP3nOTz54l2bI,200
|
9
9
|
dv_flow/mgr/package.py,sha256=878twhPD-E1pFlDNUtuyeFEgJ_Y89b560og4St-Iwrs,1679
|
10
|
-
dv_flow/mgr/package_def.py,sha256=
|
10
|
+
dv_flow/mgr/package_def.py,sha256=EChN0LwvAcrASBSlzQ3LaWqt_SyFaedfPEujG9FNj6Y,17188
|
11
11
|
dv_flow/mgr/package_import_spec.py,sha256=K5bwbO82A7MB5WeR7kmzWk7wQmQbQVMG1BOtpSPKQRU,1755
|
12
12
|
dv_flow/mgr/param.py,sha256=3BY-ucig6JRw73FhjyJQL-vpd57qhAzixgZ8I5FoUpw,553
|
13
13
|
dv_flow/mgr/param_def.py,sha256=gLua-EQiY8V2CFX-2svLRIlrs8PEeGh4-EPtn4a2Mng,712
|
@@ -16,19 +16,19 @@ dv_flow/mgr/parsetab.py,sha256=I-p3nC60t9jiNtPhKyl_sE92SiP96zJLnNdydcLy33g,3780
|
|
16
16
|
dv_flow/mgr/pkg_rgy.py,sha256=46XMWint3JpP2nx-OYTpzpHZgOkrvTseUU4Y87KusC8,5147
|
17
17
|
dv_flow/mgr/task.py,sha256=kLQSvnVwj9ROIDtxq8lLu-4mJizTxOqvUeogmgN6QAA,5976
|
18
18
|
dv_flow/mgr/task_ctor.py,sha256=hlfl-UVvyjzLFN6D0Oel9eBs0xUQPqCX7gQ0uEHoL7o,1382
|
19
|
-
dv_flow/mgr/task_data.py,sha256=
|
19
|
+
dv_flow/mgr/task_data.py,sha256=m3W7k-xv09ZyhpP2gg33CLOhBLyQDJS2mlG35yOZjZQ,11432
|
20
20
|
dv_flow/mgr/task_def.py,sha256=Wmh78mQLAiHXlpD2KCvFxTWtnjjwgct8fEm8gelCg1c,1987
|
21
21
|
dv_flow/mgr/task_exec_data.py,sha256=aT__kmVmNxqnS_GbTRS1vrYgKiv8cH-HUSmRb6YYKsI,640
|
22
22
|
dv_flow/mgr/task_graph_builder.py,sha256=AOltPyzd2Q9B67m0MyL59RPu3i2d5QrX3K-0gKWLoY8,9097
|
23
23
|
dv_flow/mgr/task_graph_runner.py,sha256=jUGI49QvxUCfQoKQDDk2psbeapIcCg72qNOW1JipHzM,2182
|
24
24
|
dv_flow/mgr/task_graph_runner_local.py,sha256=OrydPwtQ8E7hYWvSXx0h7lI3nfUNFyklULhsyMwz9dA,4687
|
25
25
|
dv_flow/mgr/task_impl_data.py,sha256=bFPijoKrh9x7fZN2DsvRJp0UHo-gGM0VjtDQISyfhFk,321
|
26
|
-
dv_flow/mgr/task_listener_log.py,sha256=
|
26
|
+
dv_flow/mgr/task_listener_log.py,sha256=d4GQcT3n_0Dq-XWQP-WNJIhuxvw948RbFPSiJ6X1_eI,2683
|
27
27
|
dv_flow/mgr/task_memento.py,sha256=C7VTQpBhDEoYuDmE6YTM-6TLMLnqHp6Y0Vat1aTgtCs,1096
|
28
|
-
dv_flow/mgr/task_node.py,sha256=
|
28
|
+
dv_flow/mgr/task_node.py,sha256=oj9vZ9XxuqavBXY8uXKY_jE6y8jPoIhN1qC9b188SbY,13799
|
29
29
|
dv_flow/mgr/task_output.py,sha256=dkJhhNRFGFQSkVsw_bGirK0_0ghTxBYq1LjRMZCVWnA,245
|
30
30
|
dv_flow/mgr/task_params_ctor.py,sha256=aXgB8o9xFPjaEjGW_xYkEC0N0apzGzGUPDj7g2ZLvus,1112
|
31
|
-
dv_flow/mgr/task_runner.py,sha256=
|
31
|
+
dv_flow/mgr/task_runner.py,sha256=Z081AjdUQ6kK8bPgKU8m8rFRHbX8ce4lOI9kLQ5WF_w,7822
|
32
32
|
dv_flow/mgr/type.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
33
33
|
dv_flow/mgr/type_def.py,sha256=KdhuNlfw-NKU-4VZFCnMPyj775yEB7cpr5tz73a9yuQ,259
|
34
34
|
dv_flow/mgr/util.py,sha256=06eVyURF4ga-s8C9Sd3ZSDebwO4QS0XXaB8xADVbWRc,1437
|
@@ -39,9 +39,9 @@ dv_flow/mgr/std/fileset.py,sha256=nW5Cg4IyCs-ccKKsIxA5W5aZvaluFk6LXDyFh9Jixcs,30
|
|
39
39
|
dv_flow/mgr/std/flow.dv,sha256=DpDTrRBfbIt4cJKLHqk_l6_nPkeFDKLVa5Ic4FZodNM,1587
|
40
40
|
dv_flow/mgr/std/message.py,sha256=T8Ye44784rD6CT2qIAP5SD7sKPdAlGMFimc4IaPCxxE,200
|
41
41
|
dv_flow/mgr/std/task_null.py,sha256=UKwUnqwFPBY8BO44ZAPcgehQB59kHZFa1qyZc1TwUqE,196
|
42
|
-
dv_flow_mgr-0.0.1.
|
43
|
-
dv_flow_mgr-0.0.1.
|
44
|
-
dv_flow_mgr-0.0.1.
|
45
|
-
dv_flow_mgr-0.0.1.
|
46
|
-
dv_flow_mgr-0.0.1.
|
47
|
-
dv_flow_mgr-0.0.1.
|
42
|
+
dv_flow_mgr-0.0.1.13824498694a1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
43
|
+
dv_flow_mgr-0.0.1.13824498694a1.dist-info/METADATA,sha256=Q8cuFrb6MAt6RBEYlMrMk1VyTmJvFifOB4YaDmhxwEQ,13314
|
44
|
+
dv_flow_mgr-0.0.1.13824498694a1.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
|
45
|
+
dv_flow_mgr-0.0.1.13824498694a1.dist-info/entry_points.txt,sha256=1roy8wAFM48LabOvr6jiOw0MUs-qE8X3Vf8YykPazxk,50
|
46
|
+
dv_flow_mgr-0.0.1.13824498694a1.dist-info/top_level.txt,sha256=amfVTkggzYPtWwLqNmRukfz1Buu0pGS2SrYBBLhXm04,8
|
47
|
+
dv_flow_mgr-0.0.1.13824498694a1.dist-info/RECORD,,
|
{dv_flow_mgr-0.0.1.13798183675a1.dist-info → dv_flow_mgr-0.0.1.13824498694a1.dist-info}/LICENSE
RENAMED
File without changes
|
{dv_flow_mgr-0.0.1.13798183675a1.dist-info → dv_flow_mgr-0.0.1.13824498694a1.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|
File without changes
|