dv-flow-mgr 1.0.0.14483154884a1__py3-none-any.whl → 1.0.0.14504336776a1__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/package.py CHANGED
@@ -24,6 +24,7 @@ import logging
24
24
  from typing import Any, ClassVar, Dict, List
25
25
  from .fragment_def import FragmentDef
26
26
  from .package_def import PackageDef
27
+ from .srcinfo import SrcInfo
27
28
  from .task import Task
28
29
 
29
30
  @dc.dataclass
@@ -37,6 +38,7 @@ class Package(object):
37
38
  types : Dict[str,Any] = dc.field(default_factory=dict)
38
39
  fragment_def_l : List[FragmentDef] = dc.field(default_factory=list)
39
40
  pkg_m : Dict[str, 'Package'] = dc.field(default_factory=dict)
41
+ srcinfo : SrcInfo = None
40
42
  _log : ClassVar = logging.getLogger("Package")
41
43
 
42
44
  @property
@@ -11,6 +11,7 @@ from .fragment_def import FragmentDef
11
11
  from .package_def import PackageDef
12
12
  from .package import Package
13
13
  from .ext_rgy import ExtRgy
14
+ from .srcinfo import SrcInfo
14
15
  from .task import Task
15
16
  from .task_def import TaskDef, PassthroughE, ConsumesE, RundirE
16
17
  from .task_data import TaskMarker, TaskMarkerLoc, SeverityE
@@ -50,6 +51,7 @@ class LoaderScope(SymbolScope):
50
51
 
51
52
  def findType(self, name) -> Task:
52
53
  last_dot = name.rfind('.')
54
+ pkg = None
53
55
  if last_dot != -1:
54
56
  pkg_name = name[:last_dot]
55
57
  task_name = name[last_dot+1:]
@@ -59,6 +61,7 @@ class LoaderScope(SymbolScope):
59
61
  else:
60
62
  path = self.loader.pkg_rgy.findPackagePath(pkg_name)
61
63
  if path is not None:
64
+ path = os.path.normpath(path)
62
65
  pkg = self.loader._loadPackage(path)
63
66
  self.loader._pkg_m[pkg_name] = pkg
64
67
  if pkg is not None and name in pkg.task_m.keys():
@@ -168,6 +171,7 @@ class PackageLoader(object):
168
171
 
169
172
  def load(self, root) -> Package:
170
173
  self._log.debug("--> load %s" % root)
174
+ root = os.path.normpath(root)
171
175
  ret = self._loadPackage(root, None)
172
176
  self._log.debug("<-- load %s" % root)
173
177
  return ret
@@ -182,6 +186,7 @@ class PackageLoader(object):
182
186
  pp = self.pkg_rgy.findPackagePath(nn)
183
187
  if pp is None:
184
188
  raise Exception("Package %s not found" % nn)
189
+ root = os.path.normpath(pp)
185
190
  pp_n = self._loadPackage(pp)
186
191
  pkg.pkg_m[pp_n.name] = pp_n
187
192
  self._log.debug("<-- load_rgy %s" % name)
@@ -264,28 +269,34 @@ class PackageLoader(object):
264
269
 
265
270
  def _mkPackage(self, pkg_def : PackageDef, root : str) -> Package:
266
271
  self._log.debug("--> _mkPackage %s" % pkg_def.name)
267
- pkg = Package(pkg_def, os.path.dirname(root))
268
-
269
- pkg_scope = self.package_scope()
270
- if pkg_scope is not None:
271
- self._log.debug("Add self (%s) as a subpkg of %s" % (pkg.name, pkg_scope.pkg.name))
272
- pkg_scope.pkg.pkg_m[pkg.name] = pkg
272
+ pkg = Package(
273
+ pkg_def,
274
+ os.path.dirname(root),
275
+ srcinfo=SrcInfo(file=root))
273
276
 
274
277
  if pkg.name in self._pkg_m.keys():
275
- raise Exception("Duplicate package %s" % pkg.name)
278
+ epkg = self._pkg_m[pkg.name]
279
+ if epkg.srcinfo.file != pkg.srcinfo.file:
280
+ self.error("Package %s already loaded from %s. Duplicate defined in %s" % (
281
+ pkg.name, epkg.srcinfo.file, pkg.srcinfo.file))
282
+ else:
283
+ pkg_scope = self.package_scope()
284
+ if pkg_scope is not None:
285
+ self._log.debug("Add self (%s) as a subpkg of %s" % (pkg.name, pkg_scope.pkg.name))
286
+ pkg_scope.pkg.pkg_m[pkg.name] = pkg
276
287
 
277
- self._pkg_m[pkg.name] = pkg
278
- self._pkg_s.append(PackageScope(name=pkg.name, pkg=pkg, loader=self._loader_scope))
279
- # Imports are loaded first
280
- self._loadPackageImports(pkg, pkg_def.imports, pkg.basedir)
288
+ self._pkg_m[pkg.name] = pkg
289
+ self._pkg_s.append(PackageScope(name=pkg.name, pkg=pkg, loader=self._loader_scope))
290
+ # Imports are loaded first
291
+ self._loadPackageImports(pkg, pkg_def.imports, pkg.basedir)
281
292
 
282
- taskdefs = pkg_def.tasks.copy()
293
+ taskdefs = pkg_def.tasks.copy()
283
294
 
284
- self._loadFragments(pkg, pkg_def.fragments, pkg.basedir, taskdefs)
295
+ self._loadFragments(pkg, pkg_def.fragments, pkg.basedir, taskdefs)
285
296
 
286
- self._loadTasks(pkg, taskdefs, pkg.basedir)
297
+ self._loadTasks(pkg, taskdefs, pkg.basedir)
287
298
 
288
- self._pkg_s.pop()
299
+ self._pkg_s.pop()
289
300
 
290
301
  self._log.debug("<-- _mkPackage %s (%s)" % (pkg_def.name, pkg.name))
291
302
  return pkg
@@ -342,6 +353,7 @@ class PackageLoader(object):
342
353
  sub_pkg = self._pkg_path_m[imp_path]
343
354
  else:
344
355
  self._log.info("Loading imported file %s" % imp_path)
356
+ imp_path = os.path.normpath(imp_path)
345
357
  sub_pkg = self._loadPackage(imp_path)
346
358
  self._log.info("Loaded imported package %s" % sub_pkg.name)
347
359
 
@@ -700,10 +712,10 @@ class PackageLoader(object):
700
712
 
701
713
  def error(self, msg, loc=None):
702
714
  if loc is not None:
703
- marker = TaskMarker(msg=msg, severity=TaskMarker.SeverityE.Error,
715
+ marker = TaskMarker(msg=msg, severity=SeverityE.Error,
704
716
  loc=loc)
705
717
  else:
706
- marker = TaskMarker(msg=msg, severity=TaskMarker.SeverityE.Error)
718
+ marker = TaskMarker(msg=msg, severity=SeverityE.Error)
707
719
  self.marker(marker)
708
720
 
709
721
  def marker(self, marker):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dv-flow-mgr
3
- Version: 1.0.0.14483154884a1
3
+ Version: 1.0.0.14504336776a1
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
@@ -15,10 +15,10 @@ dv_flow/mgr/listener_list.py,sha256=BfqvEO2AyJvyc4ClU-hPgDPqWSlqvSdG-yaFEHvUrMc,
15
15
  dv_flow/mgr/need_def.py,sha256=X52FJnhukwFsGCkIM-W6apZEdxqS5Gmm-rRO-TS83aU,173
16
16
  dv_flow/mgr/null_callable.py,sha256=x6hlJ9EL6xFLSGFgd14eXbxSWxsUGF56jpbLhERjPtg,243
17
17
  dv_flow/mgr/out,sha256=d8GGBi3J43fhdLBlnsUbzBfRe0TD0QTP3nOTz54l2bI,200
18
- dv_flow/mgr/package.py,sha256=PvOuNfuy-SlaiMDzT5SU48OlPJrhS9vpNCgX06KNyTo,2336
18
+ dv_flow/mgr/package.py,sha256=Fq4jCVqEzOhI3lLU9nIi5v9xLzsYbjxDLa7o_Oy9X4w,2394
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=xNdN9aNVRDzSeU2YDMEk6rWPfNphQniehg1UdW91w-k,25361
21
+ dv_flow/mgr/package_loader.py,sha256=MG_lAh-hUqXNIhuse6gksARHvJY0vw_e53peFYN7rZo,25884
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
@@ -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.14483154884a1.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
70
- dv_flow_mgr-1.0.0.14483154884a1.dist-info/METADATA,sha256=iL73Nvm0NtyhMSruwRPOlibetboR2gQ48kNJ07dHP88,13336
71
- dv_flow_mgr-1.0.0.14483154884a1.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
72
- dv_flow_mgr-1.0.0.14483154884a1.dist-info/entry_points.txt,sha256=1roy8wAFM48LabOvr6jiOw0MUs-qE8X3Vf8YykPazxk,50
73
- dv_flow_mgr-1.0.0.14483154884a1.dist-info/top_level.txt,sha256=amfVTkggzYPtWwLqNmRukfz1Buu0pGS2SrYBBLhXm04,8
74
- dv_flow_mgr-1.0.0.14483154884a1.dist-info/RECORD,,
69
+ dv_flow_mgr-1.0.0.14504336776a1.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
70
+ dv_flow_mgr-1.0.0.14504336776a1.dist-info/METADATA,sha256=AOnJoFZGkPuich1lLYwO610kIK_frdXdhEJ25XskPng,13336
71
+ dv_flow_mgr-1.0.0.14504336776a1.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
72
+ dv_flow_mgr-1.0.0.14504336776a1.dist-info/entry_points.txt,sha256=1roy8wAFM48LabOvr6jiOw0MUs-qE8X3Vf8YykPazxk,50
73
+ dv_flow_mgr-1.0.0.14504336776a1.dist-info/top_level.txt,sha256=amfVTkggzYPtWwLqNmRukfz1Buu0pGS2SrYBBLhXm04,8
74
+ dv_flow_mgr-1.0.0.14504336776a1.dist-info/RECORD,,