dv-flow-mgr 1.0.0.14502079593a1__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
@@ -60,6 +61,7 @@ class LoaderScope(SymbolScope):
60
61
  else:
61
62
  path = self.loader.pkg_rgy.findPackagePath(pkg_name)
62
63
  if path is not None:
64
+ path = os.path.normpath(path)
63
65
  pkg = self.loader._loadPackage(path)
64
66
  self.loader._pkg_m[pkg_name] = pkg
65
67
  if pkg is not None and name in pkg.task_m.keys():
@@ -169,6 +171,7 @@ class PackageLoader(object):
169
171
 
170
172
  def load(self, root) -> Package:
171
173
  self._log.debug("--> load %s" % root)
174
+ root = os.path.normpath(root)
172
175
  ret = self._loadPackage(root, None)
173
176
  self._log.debug("<-- load %s" % root)
174
177
  return ret
@@ -183,6 +186,7 @@ class PackageLoader(object):
183
186
  pp = self.pkg_rgy.findPackagePath(nn)
184
187
  if pp is None:
185
188
  raise Exception("Package %s not found" % nn)
189
+ root = os.path.normpath(pp)
186
190
  pp_n = self._loadPackage(pp)
187
191
  pkg.pkg_m[pp_n.name] = pp_n
188
192
  self._log.debug("<-- load_rgy %s" % name)
@@ -265,28 +269,34 @@ class PackageLoader(object):
265
269
 
266
270
  def _mkPackage(self, pkg_def : PackageDef, root : str) -> Package:
267
271
  self._log.debug("--> _mkPackage %s" % pkg_def.name)
268
- pkg = Package(pkg_def, os.path.dirname(root))
269
-
270
- pkg_scope = self.package_scope()
271
- if pkg_scope is not None:
272
- self._log.debug("Add self (%s) as a subpkg of %s" % (pkg.name, pkg_scope.pkg.name))
273
- pkg_scope.pkg.pkg_m[pkg.name] = pkg
272
+ pkg = Package(
273
+ pkg_def,
274
+ os.path.dirname(root),
275
+ srcinfo=SrcInfo(file=root))
274
276
 
275
277
  if pkg.name in self._pkg_m.keys():
276
- 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
277
287
 
278
- self._pkg_m[pkg.name] = pkg
279
- self._pkg_s.append(PackageScope(name=pkg.name, pkg=pkg, loader=self._loader_scope))
280
- # Imports are loaded first
281
- 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)
282
292
 
283
- taskdefs = pkg_def.tasks.copy()
293
+ taskdefs = pkg_def.tasks.copy()
284
294
 
285
- self._loadFragments(pkg, pkg_def.fragments, pkg.basedir, taskdefs)
295
+ self._loadFragments(pkg, pkg_def.fragments, pkg.basedir, taskdefs)
286
296
 
287
- self._loadTasks(pkg, taskdefs, pkg.basedir)
297
+ self._loadTasks(pkg, taskdefs, pkg.basedir)
288
298
 
289
- self._pkg_s.pop()
299
+ self._pkg_s.pop()
290
300
 
291
301
  self._log.debug("<-- _mkPackage %s (%s)" % (pkg_def.name, pkg.name))
292
302
  return pkg
@@ -343,6 +353,7 @@ class PackageLoader(object):
343
353
  sub_pkg = self._pkg_path_m[imp_path]
344
354
  else:
345
355
  self._log.info("Loading imported file %s" % imp_path)
356
+ imp_path = os.path.normpath(imp_path)
346
357
  sub_pkg = self._loadPackage(imp_path)
347
358
  self._log.info("Loaded imported package %s" % sub_pkg.name)
348
359
 
@@ -701,10 +712,10 @@ class PackageLoader(object):
701
712
 
702
713
  def error(self, msg, loc=None):
703
714
  if loc is not None:
704
- marker = TaskMarker(msg=msg, severity=TaskMarker.SeverityE.Error,
715
+ marker = TaskMarker(msg=msg, severity=SeverityE.Error,
705
716
  loc=loc)
706
717
  else:
707
- marker = TaskMarker(msg=msg, severity=TaskMarker.SeverityE.Error)
718
+ marker = TaskMarker(msg=msg, severity=SeverityE.Error)
708
719
  self.marker(marker)
709
720
 
710
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.14502079593a1
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=2qZ9jrqJJ_ChNb8bIwpuFpxW1qHrmZ3LoKoRc3MYsy0,25380
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.14502079593a1.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
70
- dv_flow_mgr-1.0.0.14502079593a1.dist-info/METADATA,sha256=TgIMi-Dm8e9VfinDzIARWuEZiN7vIijuWbAYAjdeL-E,13336
71
- dv_flow_mgr-1.0.0.14502079593a1.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
72
- dv_flow_mgr-1.0.0.14502079593a1.dist-info/entry_points.txt,sha256=1roy8wAFM48LabOvr6jiOw0MUs-qE8X3Vf8YykPazxk,50
73
- dv_flow_mgr-1.0.0.14502079593a1.dist-info/top_level.txt,sha256=amfVTkggzYPtWwLqNmRukfz1Buu0pGS2SrYBBLhXm04,8
74
- dv_flow_mgr-1.0.0.14502079593a1.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,,