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 +2 -2
- dv_flow/mgr/package_loader.py +53 -20
- {dv_flow_mgr-1.8.14950048134rc0.dist-info → dv_flow_mgr-1.9.0.dist-info}/METADATA +1 -1
- {dv_flow_mgr-1.8.14950048134rc0.dist-info → dv_flow_mgr-1.9.0.dist-info}/RECORD +8 -8
- {dv_flow_mgr-1.8.14950048134rc0.dist-info → dv_flow_mgr-1.9.0.dist-info}/WHEEL +0 -0
- {dv_flow_mgr-1.8.14950048134rc0.dist-info → dv_flow_mgr-1.9.0.dist-info}/entry_points.txt +0 -0
- {dv_flow_mgr-1.8.14950048134rc0.dist-info → dv_flow_mgr-1.9.0.dist-info}/licenses/LICENSE +0 -0
- {dv_flow_mgr-1.8.14950048134rc0.dist-info → dv_flow_mgr-1.9.0.dist-info}/top_level.txt +0 -0
dv_flow/mgr/__init__.py
CHANGED
dv_flow/mgr/package_loader.py
CHANGED
@@ -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 =
|
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.
|
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,4 +1,4 @@
|
|
1
|
-
dv_flow/mgr/__init__.py,sha256=
|
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=
|
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.
|
78
|
-
dv_flow_mgr-1.
|
79
|
-
dv_flow_mgr-1.
|
80
|
-
dv_flow_mgr-1.
|
81
|
-
dv_flow_mgr-1.
|
82
|
-
dv_flow_mgr-1.
|
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,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|