dv-flow-mgr 1.0.0.14392445998a1__py3-none-any.whl → 1.0.0.14457729129a1__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.
@@ -394,6 +394,10 @@ class PackageLoader(object):
394
394
  else:
395
395
  print("Warning: file %s is not a fragment" % file)
396
396
 
397
+ def getTask(self, name) -> Task:
398
+ task = self._findTask(name)
399
+ return task
400
+
397
401
  def _loadTasks(self, pkg, taskdefs : List[TaskDef], basedir : str):
398
402
  self._log.debug("--> _loadTasks %s" % pkg.name)
399
403
  # Declare first
@@ -538,10 +542,16 @@ class PackageLoader(object):
538
542
  self._pkg_s[-1].pop_scope()
539
543
 
540
544
  def _findTaskType(self, name):
541
- return self._pkg_s[-1].find(name)
545
+ if len(self._pkg_s):
546
+ return self._pkg_s[-1].find(name)
547
+ else:
548
+ return self._loader_scope.find(name)
542
549
 
543
550
  def _findTask(self, name):
544
- return self._pkg_s[-1].find(name)
551
+ if len(self._pkg_s):
552
+ return self._pkg_s[-1].find(name)
553
+ else:
554
+ return self._loader_scope.find(name)
545
555
 
546
556
 
547
557
  def _getScopeFullname(self, leaf=None):
@@ -25,6 +25,7 @@ import logging
25
25
  from typing import Callable, Any, Dict, List, Union
26
26
  from .package import Package
27
27
  from .package_def import PackageDef, PackageSpec
28
+ from .package_loader import PackageLoader
28
29
  from .ext_rgy import ExtRgy
29
30
  from .task import Task
30
31
  from .task_def import RundirE
@@ -60,6 +61,7 @@ class TaskGraphBuilder(object):
60
61
  """The Task-Graph Builder knows how to discover packages and construct task graphs"""
61
62
  root_pkg : Package
62
63
  rundir : str
64
+ loader : PackageLoader = None
63
65
  marker_l : Callable = lambda *args, **kwargs: None
64
66
  _pkg_m : Dict[PackageSpec,Package] = dc.field(default_factory=dict)
65
67
  _pkg_spec_s : List[PackageDef] = dc.field(default_factory=list)
@@ -79,7 +81,7 @@ class TaskGraphBuilder(object):
79
81
  def __post_init__(self):
80
82
  # Initialize the overrides from the global registry
81
83
  self._log = logging.getLogger(type(self).__name__)
82
- self._shell_m.update(ExtRgy._inst._shell_m)
84
+ self._shell_m.update(ExtRgy.inst()._shell_m)
83
85
  self._task_rundir_s.append([])
84
86
 
85
87
  if self.root_pkg is not None:
@@ -210,10 +212,18 @@ class TaskGraphBuilder(object):
210
212
 
211
213
  if task_t in self._task_m.keys():
212
214
  task = self._task_m[task_t]
215
+ elif self.loader is not None:
216
+ task = self.loader.getTask(task_t)
217
+
218
+ if task is None:
219
+ raise Exception("task_t (%s) not present" % str(task_t))
213
220
  else:
214
221
  raise Exception("task_t (%s) not present" % str(task_t))
215
222
 
216
- ret = self._mkTaskNode(task)
223
+ ret = self._mkTaskNode(
224
+ task,
225
+ name=name,
226
+ srcdir=srcdir)
217
227
 
218
228
  if needs is not None:
219
229
  for need in needs:
@@ -225,7 +235,7 @@ class TaskGraphBuilder(object):
225
235
  else:
226
236
  raise Exception("Task %s parameters do not include %s" % (task.name, k))
227
237
 
228
- self._log.debug("<-- mkTaskNode: %s" % task_t)
238
+ self._log.debug("<-- mkTaskNode: %s (%d needs)" % (task_t, len(ret.needs)))
229
239
  return ret
230
240
 
231
241
  def _findTask(self, pkg, name):
@@ -290,7 +300,7 @@ class TaskGraphBuilder(object):
290
300
  params = task.paramT()
291
301
 
292
302
  if task.rundir == RundirE.Unique:
293
- self.enter_rundir(task.name)
303
+ self.enter_rundir(name)
294
304
 
295
305
 
296
306
  callable = None
@@ -341,7 +351,7 @@ class TaskGraphBuilder(object):
341
351
  params = task.paramT()
342
352
 
343
353
  if task.rundir == RundirE.Unique:
344
- self.enter_rundir(task.name)
354
+ self.enter_rundir(name)
345
355
 
346
356
  if task.uses is not None:
347
357
  # This is a compound task that is based on
@@ -376,13 +386,14 @@ class TaskGraphBuilder(object):
376
386
  node.input.rundir = self.get_rundir()
377
387
  self.leave_rundir()
378
388
 
379
- self._log.debug("--> processing needs (%s)" % task.name)
389
+ self._log.debug("--> processing needs (%s) (%d)" % (task.name, len(task.needs)))
380
390
  for need in task.needs:
381
391
  need_n = self._getTaskNode(need.name)
382
392
  self._log.debug("Add need %s" % need_n.name)
383
393
  if need_n is None:
384
394
  raise Exception("Failed to find need %s" % need.name)
385
395
  node.input.needs.append((need_n, False))
396
+ # node.needs.append((need_n, False))
386
397
  self._log.debug("<-- processing needs")
387
398
 
388
399
  # TODO: handle strategy
@@ -429,12 +440,12 @@ class TaskGraphBuilder(object):
429
440
  self._log.debug("Node %s references internal node %s" % (t.name, refs_internal.name))
430
441
 
431
442
  if referenced is not None:
443
+ self._log.debug("Node %s has internal needs" % tn.name)
444
+ else:
432
445
  # Add this task as a dependency of the output
433
446
  # node (the root one)
434
447
  self._log.debug("Add node %s as a top-level dependency" % tn.name)
435
448
  node.needs.append((tn, False))
436
- else:
437
- self._log.debug("Node %s has internal needs" % tn.name)
438
449
 
439
450
  if task.rundir == RundirE.Unique:
440
451
  self.leave_rundir()
@@ -442,7 +453,7 @@ class TaskGraphBuilder(object):
442
453
  return node
443
454
 
444
455
  def _gatherNeeds(self, task_t, node):
445
- self._log.debug("--> _gatherNeeds %s" % task_t.name)
456
+ self._log.debug("--> _gatherNeeds %s (%d)" % (task_t.name, len(task_t.needs)))
446
457
  if task_t.uses is not None:
447
458
  self._gatherNeeds(task_t.uses, node)
448
459
 
@@ -451,7 +462,7 @@ class TaskGraphBuilder(object):
451
462
  if need_n is None:
452
463
  raise Exception("Failed to find need %s" % need.name)
453
464
  node.needs.append((need_n, False))
454
- self._log.debug("<-- _gatherNeeds %s" % task_t.name)
465
+ self._log.debug("<-- _gatherNeeds %s (%d)" % (task_t.name, len(node.needs)))
455
466
 
456
467
  def error(self, msg, loc=None):
457
468
  if loc is not None:
@@ -21,7 +21,7 @@
21
21
  #****************************************************************************
22
22
  import dataclasses as dc
23
23
  from pydantic import BaseModel
24
- from .task_def import ConsumesE
24
+ from .task_def import ConsumesE, PassthroughE, PassthroughE, PassthroughE, PassthroughE
25
25
  from .task_node import TaskNode
26
26
  from .task_node_leaf import TaskNodeLeaf
27
27
  from .task_data import TaskDataResult, TaskDataInput, TaskDataOutput
@@ -44,7 +44,9 @@ class TaskNodeCompound(TaskNode):
44
44
  self.input = TaskNodeLeaf(
45
45
  name=self.name + ".in",
46
46
  srcdir=self.srcdir,
47
- params=NullParams())
47
+ params=NullParams(),
48
+ consumes=ConsumesE.No,
49
+ passthrough=PassthroughE.All)
48
50
  self.input.task = null_run
49
51
  self.tasks.append(self.input)
50
52
 
@@ -55,7 +57,7 @@ class TaskNodeCompound(TaskNode):
55
57
  return self.input
56
58
 
57
59
  async def do_run(self,
58
- runner : TaskRunner,
60
+ ctxt : TaskRunner,
59
61
  rundir,
60
62
  memento : Any=None) -> TaskDataResult:
61
63
  self._log.debug("Compound task %s (%d)" % (self.name, len(self.needs)))
@@ -90,6 +92,9 @@ class TaskNodeCompound(TaskNode):
90
92
  changed=changed,
91
93
  output=output,
92
94
  dep_m={})
95
+
96
+ # if self.save_exec_data:
97
+ # self._save_exec_data(rundir, ctxt, self.input.input)
93
98
 
94
99
  return 0
95
100
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dv-flow-mgr
3
- Version: 1.0.0.14392445998a1
3
+ Version: 1.0.0.14457729129a1
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
@@ -18,7 +18,7 @@ dv_flow/mgr/out,sha256=d8GGBi3J43fhdLBlnsUbzBfRe0TD0QTP3nOTz54l2bI,200
18
18
  dv_flow/mgr/package.py,sha256=PvOuNfuy-SlaiMDzT5SU48OlPJrhS9vpNCgX06KNyTo,2336
19
19
  dv_flow/mgr/package_def.py,sha256=-UyeFb_0Sj16RtS2vxtIxTfl-oW7adJjM1I3ZSjcRpc,5729
20
20
  dv_flow/mgr/package_import_spec.py,sha256=aZMpnS9a5NFY76_pYXEuO3-Mkc_xFzy73fdrUe_54Dc,1760
21
- dv_flow/mgr/package_loader.py,sha256=Z80md4ZhJk6TPVlvYAWlnH1aJvATlB9skIyb1pZ1P8U,25075
21
+ dv_flow/mgr/package_loader.py,sha256=xNdN9aNVRDzSeU2YDMEk6rWPfNphQniehg1UdW91w-k,25361
22
22
  dv_flow/mgr/param.py,sha256=kkxMRGf6mPjSZJsjgLKH2vJL62Sn0ZESvjBLkEYOp20,1386
23
23
  dv_flow/mgr/param_def.py,sha256=hOBBRLiXJ5DakXkhrLCBAQ9GPlgq-QS52r0aflmIgbg,1832
24
24
  dv_flow/mgr/param_ref_eval.py,sha256=5yH37oIX6f2qmk7GfRgNT5qZx0jm3CJFgB9lLDZZ1yQ,1981
@@ -31,11 +31,11 @@ dv_flow/mgr/srcinfo.py,sha256=xrfp-relVr7hYNbxOjY5jqX4H0nNMm9HK5AAM6_Piyk,366
31
31
  dv_flow/mgr/task.py,sha256=Xe1sCCTN4yJwhB2Aw_rywdlmVPY2CDnuwZisULuOXhw,2036
32
32
  dv_flow/mgr/task_data.py,sha256=lN7Iq8YTitEMGG4rZqYQi6Ri2HuPgBQ5oGQbW-63T8c,12436
33
33
  dv_flow/mgr/task_def.py,sha256=VAjkFay7KxXfZoloZfbiPr6WhURztV2Dxm6-REMQweo,4912
34
- dv_flow/mgr/task_graph_builder.py,sha256=h0jiGY4VQI-wLJevawHl40wTILiMulA2eZpi0jFJ82A,16739
34
+ dv_flow/mgr/task_graph_builder.py,sha256=AMvvQjRLkjPYw5JfKw3ZaF1f02E9FJHBAUtulj4mJBM,17210
35
35
  dv_flow/mgr/task_graph_dot_writer.py,sha256=fZlNR-ZUFsI5FpH1KFCWJcSpyLSKUh8IhHO9Eavc60c,4925
36
36
  dv_flow/mgr/task_listener_log.py,sha256=QH7hAVO1agYJoOx16XqjWv1c-jk5zb6p6A-hic7OMU0,4150
37
37
  dv_flow/mgr/task_node.py,sha256=hPlCcped3nCNgOYj4oysVcxu4cHOIUCBUqAevOr20Lc,5086
38
- dv_flow/mgr/task_node_compound.py,sha256=kmhfcHeqNwYE-XIRh8dsdU_zvLpAzHwVTdr4S3eAtN8,3080
38
+ dv_flow/mgr/task_node_compound.py,sha256=6BGcEiFQ69XL2cW9bwvp42Gd2Z3MRRriopo4BtwGccw,3319
39
39
  dv_flow/mgr/task_node_ctor.py,sha256=YsoVMX5WbpbzcHvEK7ps_ZRV-J7MZ3F8NNozQw7vbog,4418
40
40
  dv_flow/mgr/task_node_ctor_compound.py,sha256=290JdcTnL3b3Gv7s_wRLjdM02ezKhc9QnxZE0mv72i8,4379
41
41
  dv_flow/mgr/task_node_ctor_compound_proxy.py,sha256=D8x54nD8Pd-2-_mr1syhqVeSFfIVf100ldi3bdzmSfI,2073
@@ -66,9 +66,9 @@ dv_flow/mgr/util/__main__.py,sha256=F0LXpCDpYTPalSo0dc1h_qZkip5v1AZYYh-vcYbh5s0,
66
66
  dv_flow/mgr/util/util.py,sha256=cBNt3JJ0PGLlUQFTtBLi12i2j_9gNgSBtKdwS3VfF5Y,1566
67
67
  dv_flow/mgr/util/cmds/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
68
  dv_flow/mgr/util/cmds/cmd_schema.py,sha256=IJzZdxCSEgIQ79LpYiM7UqJ9RJ-7yraqmBN2XVgAgXA,1752
69
- dv_flow_mgr-1.0.0.14392445998a1.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
70
- dv_flow_mgr-1.0.0.14392445998a1.dist-info/METADATA,sha256=B60agWgNKhS9gxExLemROgmyWl_S8SpiF2OqDjCyAKg,13336
71
- dv_flow_mgr-1.0.0.14392445998a1.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
72
- dv_flow_mgr-1.0.0.14392445998a1.dist-info/entry_points.txt,sha256=1roy8wAFM48LabOvr6jiOw0MUs-qE8X3Vf8YykPazxk,50
73
- dv_flow_mgr-1.0.0.14392445998a1.dist-info/top_level.txt,sha256=amfVTkggzYPtWwLqNmRukfz1Buu0pGS2SrYBBLhXm04,8
74
- dv_flow_mgr-1.0.0.14392445998a1.dist-info/RECORD,,
69
+ dv_flow_mgr-1.0.0.14457729129a1.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
70
+ dv_flow_mgr-1.0.0.14457729129a1.dist-info/METADATA,sha256=zEZXmvd8jfMK3AM4X8znfRsXyztd19PkyZqiU_P_LKk,13336
71
+ dv_flow_mgr-1.0.0.14457729129a1.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
72
+ dv_flow_mgr-1.0.0.14457729129a1.dist-info/entry_points.txt,sha256=1roy8wAFM48LabOvr6jiOw0MUs-qE8X3Vf8YykPazxk,50
73
+ dv_flow_mgr-1.0.0.14457729129a1.dist-info/top_level.txt,sha256=amfVTkggzYPtWwLqNmRukfz1Buu0pGS2SrYBBLhXm04,8
74
+ dv_flow_mgr-1.0.0.14457729129a1.dist-info/RECORD,,