dv-flow-mgr 1.8.14950048134rc0__py3-none-any.whl → 1.9.0__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/__init__.py CHANGED
@@ -31,7 +31,7 @@ from .task_node_ctor_wrapper import task
31
31
  from .task_runner import TaskSetRunner
32
32
  from .task_listener_log import TaskListenerLog
33
33
 
34
- VERSION="1.8.0"
35
- SUFFIX="14950048134rc0"
34
+ VERSION="1.9.0"
35
+ SUFFIX=""
36
36
  __version__="%s%s" % (VERSION, SUFFIX)
37
37
 
@@ -71,29 +71,11 @@ class LoaderScope(SymbolScope):
71
71
  # Split the name into elements
72
72
  name_elems = name.split('.')
73
73
 
74
- def find_pkg(pkg_name):
75
- pkg = None
76
-
77
- if pkg_name in self.loader._pkg_m.keys():
78
- pkg = self.loader._pkg_m[pkg_name]
79
- else:
80
- path = self.loader.pkg_rgy.findPackagePath(pkg_name)
81
- if path is not None:
82
- path = os.path.normpath(path)
83
- pkg = self.loader._loadPackage(path)
84
- self.loader._pkg_m[pkg_name] = pkg
85
- if pkg is not None:
86
- self._log.debug("Found pkg %s (%s)" % (pkg_name, str(pkg.task_m.keys())))
87
- else:
88
- self._log.debug("Failed to find pkg %s" % pkg_name)
89
-
90
- return pkg
91
-
92
74
  if len(name_elems) > 1:
93
75
  for i in range(len(name_elems)-1, -1, -1):
94
76
  pkg_name = ".".join(name_elems[:i+1])
95
77
 
96
- pkg = find_pkg(pkg_name)
78
+ pkg = self.findPackage(pkg_name)
97
79
  if pkg is not None:
98
80
  break;
99
81
 
@@ -125,6 +107,25 @@ class LoaderScope(SymbolScope):
125
107
  self._log.debug("<-- findType: %s (%s)" % (name, str(ret)))
126
108
 
127
109
  return ret
110
+
111
+ def findPackage(self, name) -> Package:
112
+ pkg = None
113
+
114
+ if name in self.loader._pkg_m.keys():
115
+ pkg = self.loader._pkg_m[name]
116
+ else:
117
+ path = self.loader.pkg_rgy.findPackagePath(name)
118
+ if path is not None:
119
+ path = os.path.normpath(path)
120
+ pkg = self.loader._loadPackage(path)
121
+ self.loader._pkg_m[name] = pkg
122
+ if pkg is not None:
123
+ self._log.debug("Found pkg %s (%s)" % (name, str(pkg.task_m.keys())))
124
+ else:
125
+ self._log.debug("Failed to find pkg %s" % name)
126
+
127
+ return pkg
128
+
128
129
 
129
130
  @dc.dataclass
130
131
  class PackageScope(SymbolScope):
@@ -592,7 +593,13 @@ class PackageLoader(object):
592
593
  task.uses = self._findTaskOrType(taskdef.uses)
593
594
 
594
595
  if task.uses is None:
595
- self.error("failed to resolve task-uses %s" % taskdef.uses, taskdef.srcinfo)
596
+ closest = self.find_closest_name(taskdef.uses)
597
+ if closest:
598
+ self.error("failed to resolve task-uses %s. Did you mean %s?" % (
599
+ taskdef.uses,
600
+ closest), taskdef.srcinfo)
601
+ else:
602
+ self.error("failed to resolve task-uses %s" % taskdef.uses, taskdef.srcinfo)
596
603
  continue
597
604
 
598
605
  passthrough, consumes, rundir = self._getPTConsumesRundir(taskdef, task.uses)
@@ -915,3 +922,29 @@ class PackageLoader(object):
915
922
  def marker(self, marker):
916
923
  for l in self.marker_listeners:
917
924
  l(marker)
925
+
926
+ def find_closest_name(self, name):
927
+ import difflib
928
+
929
+ # First see if we can find the package
930
+
931
+ name_s = set()
932
+ pkg_s = set()
933
+ for p in self._pkg_m.values():
934
+ self._gatherTaskNames(name_s, pkg_s, p)
935
+
936
+ closest_matches = difflib.get_close_matches(name, name_s)
937
+
938
+ if closest_matches and len(closest_matches) > 0:
939
+ closest_match = closest_matches[0]
940
+ self._log.debug("Closest match: %s" % closest_match)
941
+ return closest_match
942
+
943
+ def _gatherTaskNames(self, name_s, pkg_s, pkg):
944
+ if pkg.name not in pkg_s:
945
+ pkg_s.add(pkg.name)
946
+ for t in pkg.task_m.keys():
947
+ name_s.add(t)
948
+ for p in pkg.pkg_m.values():
949
+ self._gatherTaskNames(name_s, pkg_s, p)
950
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dv-flow-mgr
3
- Version: 1.8.14950048134rc0
3
+ Version: 1.9.0
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,4 +1,4 @@
1
- dv_flow/mgr/__init__.py,sha256=RAohHzmrdRRIKaqwH7AMnO2sTmlt1FtW-4kx-j9KvOw,1315
1
+ dv_flow/mgr/__init__.py,sha256=XEEeRw_ZtMVNVh1mpM2XZQWxTclTlRrlh9BLZp09RhE,1301
2
2
  dv_flow/mgr/__main__.py,sha256=BogNdBkXhgg05E8_IumNkVoag6WwvfbpiI8346oOtPo,3844
3
3
  dv_flow/mgr/cond_def.py,sha256=2ZkzPusqVkN1fFMTvkDl9O_OJLPdD_cK3xzX9J75RMw,343
4
4
  dv_flow/mgr/config.py,sha256=b2MVlVVNB0psk8x4bQRAYshkpNJrtyMtV1Ymhmx9AfM,137
@@ -20,7 +20,7 @@ dv_flow/mgr/out,sha256=d8GGBi3J43fhdLBlnsUbzBfRe0TD0QTP3nOTz54l2bI,200
20
20
  dv_flow/mgr/package.py,sha256=L1ba5xguOZWuyg9s4MfafKgSoIka3SgAQzYAmcV7XgQ,4430
21
21
  dv_flow/mgr/package_def.py,sha256=1O1SBJATnw-zeYKRNENgw-RWxZK0hxNQhnncfE_NR-U,5674
22
22
  dv_flow/mgr/package_import_spec.py,sha256=aZMpnS9a5NFY76_pYXEuO3-Mkc_xFzy73fdrUe_54Dc,1760
23
- dv_flow/mgr/package_loader.py,sha256=7kI7UFALnnOhz128iiH_Fid9vfNSYAIzhMeQPuA4DJg,33704
23
+ dv_flow/mgr/package_loader.py,sha256=DUNSolfB-9E0KgmCCEjz6ezWm4xlwgPRpWgxcugFEmM,34771
24
24
  dv_flow/mgr/package_node.py,sha256=CccD2ECiIXy9JBkRR3c7qDxeBiLiPbRT9CqR-Al_niI,214
25
25
  dv_flow/mgr/param.py,sha256=kkxMRGf6mPjSZJsjgLKH2vJL62Sn0ZESvjBLkEYOp20,1386
26
26
  dv_flow/mgr/param_def.py,sha256=9uO-7UI4OotYixQBo8Nwb2o8FQRFxxJylYCZm9rjt48,1917
@@ -74,9 +74,9 @@ dv_flow/mgr/util/util.py,sha256=BO7iqP_c9ttmXkojq7nKDN-g8wl1_Pco9k-KnrXxjwE,1889
74
74
  dv_flow/mgr/util/cmds/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
75
  dv_flow/mgr/util/cmds/cmd_schema.py,sha256=IJzZdxCSEgIQ79LpYiM7UqJ9RJ-7yraqmBN2XVgAgXA,1752
76
76
  dv_flow/mgr/util/cmds/cmd_workspace.py,sha256=egmaIXpe5L-TePwmcfisfrG6tdiTUWSjqa9Za5WChVs,890
77
- dv_flow_mgr-1.8.14950048134rc0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
78
- dv_flow_mgr-1.8.14950048134rc0.dist-info/METADATA,sha256=zkhMnyZn6nXcEc_vPWK_jlt-k8gQzG4g3BaDYm6Oca8,13335
79
- dv_flow_mgr-1.8.14950048134rc0.dist-info/WHEEL,sha256=DnLRTWE75wApRYVsjgc6wsVswC54sMSJhAEd4xhDpBk,91
80
- dv_flow_mgr-1.8.14950048134rc0.dist-info/entry_points.txt,sha256=1roy8wAFM48LabOvr6jiOw0MUs-qE8X3Vf8YykPazxk,50
81
- dv_flow_mgr-1.8.14950048134rc0.dist-info/top_level.txt,sha256=amfVTkggzYPtWwLqNmRukfz1Buu0pGS2SrYBBLhXm04,8
82
- dv_flow_mgr-1.8.14950048134rc0.dist-info/RECORD,,
77
+ dv_flow_mgr-1.9.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
78
+ dv_flow_mgr-1.9.0.dist-info/METADATA,sha256=1BuEuGg1VHbODzmAwS0AxdWZMJva1UWSsaqHiRSrjFk,13322
79
+ dv_flow_mgr-1.9.0.dist-info/WHEEL,sha256=DnLRTWE75wApRYVsjgc6wsVswC54sMSJhAEd4xhDpBk,91
80
+ dv_flow_mgr-1.9.0.dist-info/entry_points.txt,sha256=1roy8wAFM48LabOvr6jiOw0MUs-qE8X3Vf8YykPazxk,50
81
+ dv_flow_mgr-1.9.0.dist-info/top_level.txt,sha256=amfVTkggzYPtWwLqNmRukfz1Buu0pGS2SrYBBLhXm04,8
82
+ dv_flow_mgr-1.9.0.dist-info/RECORD,,