dv-flow-mgr 0.0.1.13755459426a1__py3-none-any.whl → 0.0.1.13777907248a1__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
@@ -56,7 +56,7 @@ def main():
56
56
  }
57
57
  logging.basicConfig(level=opt_m[args.log_level])
58
58
 
59
- args.func(args)
59
+ return args.func(args)
60
60
 
61
61
  if __name__ == "__main__":
62
62
  main()
@@ -76,4 +76,6 @@ class CmdRun(object):
76
76
 
77
77
  asyncio.run(runner.run(tasks))
78
78
 
79
+ return runner.status
80
+
79
81
 
dv_flow/mgr/pkg_rgy.py CHANGED
@@ -89,6 +89,7 @@ class PkgRgy(object):
89
89
  self._log.debug("<-- registerPackage %s" % pkg_def.name)
90
90
 
91
91
  def _discover_plugins(self):
92
+ self._log.debug("--> discover_plugins")
92
93
  # Register built-in package
93
94
  self._pkg_m["std"] = (os.path.join(os.path.dirname(__file__), "std/flow.dv"), None)
94
95
 
@@ -102,6 +103,7 @@ class PkgRgy(object):
102
103
  from importlib.metadata import entry_points
103
104
 
104
105
  discovered_plugins = entry_points(group='dv_flow.mgr')
106
+ self._log.debug("discovered_plugins: %s" % str(discovered_plugins))
105
107
  for p in discovered_plugins:
106
108
  try:
107
109
  mod = p.load()
@@ -110,6 +112,7 @@ class PkgRgy(object):
110
112
  pkg_m = mod.dvfm_packages()
111
113
 
112
114
  for name,path in pkg_m.items():
115
+ self._log.debug("Registering package %s: %s" % (name, path))
113
116
  if name in self._pkg_m.keys():
114
117
  raise Exception("Package %s already registered using path %s. Conflicting path: %s" % (
115
118
  name, self._pkg_m[name][0], path))
@@ -121,6 +124,7 @@ class PkgRgy(object):
121
124
  # self._pkgs = {}
122
125
  # for pkg in self._load_pkg_list():
123
126
  # self._pkgs[pkg.name] = pkg
127
+ self._log.debug("<-- discover_plugins")
124
128
 
125
129
  def copy(self):
126
130
  ret = PkgRgy()
@@ -43,6 +43,8 @@ async def FileSet(runner, input) -> TaskDataResult:
43
43
 
44
44
  _log.debug("glob_root: %s" % glob_root)
45
45
 
46
+ # TODO: throw error if 'type' is not set
47
+
46
48
  fs = _FileSet(
47
49
  filetype=input.params.type,
48
50
  src=input.name,
@@ -38,6 +38,7 @@ class TaskRunner(object):
38
38
  @dc.dataclass
39
39
  class TaskSetRunner(TaskRunner):
40
40
  nproc : int = 8
41
+ status : int = 0
41
42
 
42
43
  _anon_tid : int = 1
43
44
 
@@ -87,6 +88,7 @@ class TaskSetRunner(TaskRunner):
87
88
 
88
89
  active_task_l = []
89
90
  done_task_s = set()
91
+ self.status = 0
90
92
  for active_s in order:
91
93
  done = True
92
94
  for t in active_s:
@@ -101,11 +103,13 @@ class TaskSetRunner(TaskRunner):
101
103
  dst_memento[tt.name] = tt.result.memento.model_dump()
102
104
  else:
103
105
  dst_memento[tt.name] = None
106
+ self.status |= tt.result.status
104
107
  self._notify(tt, "leave")
105
108
  done_task_s.add(tt)
106
109
  active_task_l.pop(i)
107
110
  break
108
- if t not in done_task_s:
111
+
112
+ if self.status == 0 and t not in done_task_s:
109
113
  memento = src_memento.get(t.name, None)
110
114
  dirname = t.name
111
115
  invalid_chars_pattern = r'[\/:*?"<>|#%&{}\$\\!\'`;=@+]'
@@ -123,8 +127,13 @@ class TaskSetRunner(TaskRunner):
123
127
  rundir,
124
128
  memento))
125
129
  active_task_l.append((t, coro))
130
+
131
+ if self.status != 0:
132
+ self._log.debug("Exiting due to status: %d", self.status)
133
+ break
126
134
 
127
- # Now, wait for tasks to complete
135
+ # All pending tasks in the task-group have been launched
136
+ # Wait for them to all complete
128
137
  if len(active_task_l):
129
138
  # TODO: Shouldn't gather here -- reach to each completion
130
139
  coros = list(at[1] for at in active_task_l)
@@ -134,8 +143,13 @@ class TaskSetRunner(TaskRunner):
134
143
  dst_memento[tt[0].name] = tt[0].result.memento.model_dump()
135
144
  else:
136
145
  dst_memento[tt[0].name] = None
146
+ self.status |= tt[0].result.status
137
147
  self._notify(tt[0], "leave")
138
148
  active_task_l.clear()
149
+
150
+ if self.status != 0:
151
+ self._log.debug("Exiting due to status: %d", self.status)
152
+ break
139
153
 
140
154
  with open(os.path.join(self.rundir, "cache", "mementos.json"), "w") as f:
141
155
  json.dump(dst_memento, f)
@@ -145,10 +159,6 @@ class TaskSetRunner(TaskRunner):
145
159
  else:
146
160
  return task.output
147
161
 
148
-
149
-
150
- pass
151
-
152
162
  def _buildDepMap(self, dep_m, task : TaskNode):
153
163
  if task.name is None:
154
164
  task.name = "anon_%d" % self._anon_tid
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: dv-flow-mgr
3
- Version: 0.0.1.13755459426a1
3
+ Version: 0.0.1.13777907248a1
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
@@ -1,5 +1,5 @@
1
1
  dv_flow/mgr/__init__.py,sha256=2iTpSe1M8g_u2UlAQFa3XFfqcw8gBOWdBvrstce1c5E,403
2
- dv_flow/mgr/__main__.py,sha256=PAuvUsmTjxx62e2H8kCuZWD1GDcfBL5k78IGLeRHz_o,2201
2
+ dv_flow/mgr/__main__.py,sha256=shnmbpIsD98HA1a12boQtpzunhi2atAD1T1hNJwS1Lw,2208
3
3
  dv_flow/mgr/eval_jq.py,sha256=Ue-qkyNW6uOu2Wy8u6nrTbPPY7ujaHd0-4iki0eV3Ec,294
4
4
  dv_flow/mgr/expr_eval.py,sha256=Mp0TvrV6gZWcj1uYwLfPNI-ARwwdAfwntE5byLBfBuY,2276
5
5
  dv_flow/mgr/expr_parser.py,sha256=FhBTkKKkJXubGHUzmcMWubPfPklYLGzVz1jK4-dYb44,5702
@@ -13,7 +13,7 @@ dv_flow/mgr/param.py,sha256=3BY-ucig6JRw73FhjyJQL-vpd57qhAzixgZ8I5FoUpw,553
13
13
  dv_flow/mgr/param_def.py,sha256=gLua-EQiY8V2CFX-2svLRIlrs8PEeGh4-EPtn4a2Mng,712
14
14
  dv_flow/mgr/param_ref_eval.py,sha256=U8QhDf1n_9bLnExdc1oQamq5-pOUXrFalOX4oyR9UoM,1138
15
15
  dv_flow/mgr/parsetab.py,sha256=I-p3nC60t9jiNtPhKyl_sE92SiP96zJLnNdydcLy33g,3780
16
- dv_flow/mgr/pkg_rgy.py,sha256=sCMNBTEWAAz1a0AnyeFm097RiVdjmo1yFRqdgC3TA-U,4890
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
19
  dv_flow/mgr/task_data.py,sha256=F0X-e0IHTh06Z0F67TWIUPKuJYf6JPzZyMPrDzOJvK0,11409
@@ -28,20 +28,20 @@ dv_flow/mgr/task_memento.py,sha256=C7VTQpBhDEoYuDmE6YTM-6TLMLnqHp6Y0Vat1aTgtCs,1
28
28
  dv_flow/mgr/task_node.py,sha256=K65jWd2GYZH1oYlfkc5sx0eGzDbWdElA5EQXCremH-Y,12651
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=oIBUs9UWLVb2E1UqKvmWV3ZSeegM8-FTR5EukIO27xk,7099
31
+ dv_flow/mgr/task_runner.py,sha256=tWderVo2MqCgPC0A-HcrVQuAZ9Xx77EmJ0i3e-bmPfo,7621
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
35
- dv_flow/mgr/cmds/cmd_run.py,sha256=yMldH1ANcNcrLk9FIOo5z58FvwFfWA-Ys74NHWTAQvg,2437
35
+ dv_flow/mgr/cmds/cmd_run.py,sha256=w1KdnS5Skg4RH1xTB1RZP7gAElZMNcRuOhz3G98n9uk,2467
36
36
  dv_flow/mgr/share/flow.json,sha256=lNmZex9NXkYbyb2aZseQfUOkV9CMyfH0iLODEI7EPBw,5096
37
37
  dv_flow/mgr/std/exec.py,sha256=ETx9xSxhdCD_iw6pcmhrafDCJ-41AneyEAPwQf3q-3w,452
38
- dv_flow/mgr/std/fileset.py,sha256=69cgah6jmRNGmFaLZKpMUaxVSaQ5DxtrqshhQwXhO54,2956
38
+ dv_flow/mgr/std/fileset.py,sha256=AOLARYXjJEmKAextB_4P4eRu2PHNPex961eq16QtgCc,3006
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.13755459426a1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
43
- dv_flow_mgr-0.0.1.13755459426a1.dist-info/METADATA,sha256=Sxstanb7C8gv1vu73TCfvMV7fHxb7JMMWP_KtDWL3XQ,13314
44
- dv_flow_mgr-0.0.1.13755459426a1.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
45
- dv_flow_mgr-0.0.1.13755459426a1.dist-info/entry_points.txt,sha256=1roy8wAFM48LabOvr6jiOw0MUs-qE8X3Vf8YykPazxk,50
46
- dv_flow_mgr-0.0.1.13755459426a1.dist-info/top_level.txt,sha256=amfVTkggzYPtWwLqNmRukfz1Buu0pGS2SrYBBLhXm04,8
47
- dv_flow_mgr-0.0.1.13755459426a1.dist-info/RECORD,,
42
+ dv_flow_mgr-0.0.1.13777907248a1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
43
+ dv_flow_mgr-0.0.1.13777907248a1.dist-info/METADATA,sha256=-CgaG1f2HCBWKcYpeuoibcdw69kD5iSmZdwY3ZQZXk4,13314
44
+ dv_flow_mgr-0.0.1.13777907248a1.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
45
+ dv_flow_mgr-0.0.1.13777907248a1.dist-info/entry_points.txt,sha256=1roy8wAFM48LabOvr6jiOw0MUs-qE8X3Vf8YykPazxk,50
46
+ dv_flow_mgr-0.0.1.13777907248a1.dist-info/top_level.txt,sha256=amfVTkggzYPtWwLqNmRukfz1Buu0pGS2SrYBBLhXm04,8
47
+ dv_flow_mgr-0.0.1.13777907248a1.dist-info/RECORD,,