dv-flow-mgr 1.8.14949090112rc0__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="14949090112rc0"
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
+
dv_flow/mgr/std/flow.dv CHANGED
@@ -120,22 +120,12 @@ package:
120
120
  Optional timestamp file to determine if running
121
121
  the command changed the output
122
122
 
123
- - name: DataItem
124
- shell: pytask
125
- run: dv_flow.mgr.std.data_item.DataItem
126
- doc: |
127
- Creates and outputs a data item
128
- with:
129
- type:
130
- type: str
131
- value: ""
132
- with:
133
- type: map
134
123
  types:
135
124
  - name: DataItem
136
125
  with:
137
126
  type:
138
127
  type: str
128
+
139
129
  - name: FileSet
140
130
  uses: std.DataItem
141
131
  with:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dv-flow-mgr
3
- Version: 1.8.14949090112rc0
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=wpHDLCJIeNyjUPYqoGmaOjhaEp5UYB-kT_J7SnNTcIY,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
@@ -64,7 +64,7 @@ dv_flow/mgr/std/create_file.py,sha256=SEpKTQdiY32002C7b4kYfAiK9v_xajixOJU5WftW75
64
64
  dv_flow/mgr/std/data_item.py,sha256=olKtspEVFOvr92reUl4QaQV27UVyjSGIfIWpsy0Myvo,434
65
65
  dv_flow/mgr/std/exec.py,sha256=UChqa_tAjvdB1NjqTsvlPgFomP8hMsX2rAOPyUonNpk,3896
66
66
  dv_flow/mgr/std/fileset.py,sha256=_9IUjZ2_doygc29Qg1hJPaFPzlaIaTdvHnYTai8mE3A,4183
67
- dv_flow/mgr/std/flow.dv,sha256=vizP3u3yU5iyCmsAeVFeIKy2Ikvhol-_NjCYWOcJCOE,4003
67
+ dv_flow/mgr/std/flow.dv,sha256=qT3qlDjo6DMMcPXHLbW6Z0OJOouXupQK3cm_15JxSKI,3786
68
68
  dv_flow/mgr/std/incdirs.py,sha256=F0wraOxkRJRkrhsyk9v2YvpquFtcK4ZsMO1G9sgmhmA,588
69
69
  dv_flow/mgr/std/message.py,sha256=0JHLErg8whqMLAasG1fumZ2O7R7WNWeNQ9ibJaLDpVY,1029
70
70
  dv_flow/mgr/std/task_null.py,sha256=dw6LXBXVwth6gLPeduDvlz5znAhcVpDH8r1DticD-0w,1041
@@ -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.14949090112rc0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
78
- dv_flow_mgr-1.8.14949090112rc0.dist-info/METADATA,sha256=Lew5QJrG21eRMB0PcivgjtNMIDptjHAUnDlU_lBOPhU,13335
79
- dv_flow_mgr-1.8.14949090112rc0.dist-info/WHEEL,sha256=DnLRTWE75wApRYVsjgc6wsVswC54sMSJhAEd4xhDpBk,91
80
- dv_flow_mgr-1.8.14949090112rc0.dist-info/entry_points.txt,sha256=1roy8wAFM48LabOvr6jiOw0MUs-qE8X3Vf8YykPazxk,50
81
- dv_flow_mgr-1.8.14949090112rc0.dist-info/top_level.txt,sha256=amfVTkggzYPtWwLqNmRukfz1Buu0pGS2SrYBBLhXm04,8
82
- dv_flow_mgr-1.8.14949090112rc0.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,,