dv-flow-mgr 0.0.1.12849118090a1__py3-none-any.whl → 0.0.1.12911707440a1__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.
Files changed (52) hide show
  1. {dv_flow_mgr → dv_flow/mgr}/__init__.py +1 -1
  2. {dv_flow_mgr → dv_flow/mgr}/__main__.py +1 -1
  3. dv_flow/mgr/cmds/cmd_run.py +90 -0
  4. {dv_flow_mgr → dv_flow/mgr}/package_def.py +96 -4
  5. dv_flow/mgr/pkg_rgy.py +78 -0
  6. {dv_flow_mgr/tasklib → dv_flow/mgr}/std/fileset.py +3 -3
  7. {dv_flow_mgr/tasklib → dv_flow/mgr}/std/flow.dv +6 -2
  8. {dv_flow_mgr/tasklib → dv_flow/mgr}/std/message.py +1 -1
  9. {dv_flow_mgr/tasklib → dv_flow/mgr}/std/task_fileset.py +5 -5
  10. dv_flow/mgr/std/task_null.py +10 -0
  11. {dv_flow_mgr → dv_flow/mgr}/task.py +11 -4
  12. {dv_flow_mgr → dv_flow/mgr}/task_data.py +18 -2
  13. {dv_flow_mgr → dv_flow/mgr}/task_def.py +2 -1
  14. dv_flow/mgr/task_graph_builder.py +190 -0
  15. dv_flow/mgr/task_graph_runner.py +71 -0
  16. dv_flow/mgr/task_graph_runner_local.py +79 -0
  17. dv_flow/mgr/util.py +19 -0
  18. {dv_flow_mgr-0.0.1.12849118090a1.dist-info → dv_flow_mgr-0.0.1.12911707440a1.dist-info}/METADATA +1 -1
  19. dv_flow_mgr-0.0.1.12911707440a1.dist-info/RECORD +31 -0
  20. dv_flow_mgr-0.0.1.12911707440a1.dist-info/entry_points.txt +2 -0
  21. dv_flow_mgr-0.0.1.12911707440a1.dist-info/top_level.txt +1 -0
  22. dv_flow_mgr/cmds/cmd_run.py +0 -28
  23. dv_flow_mgr/session.py +0 -324
  24. dv_flow_mgr/tasklib/builtin_pkg.py +0 -62
  25. dv_flow_mgr/tasklib/hdl/sim/mti_pkg.py +0 -11
  26. dv_flow_mgr/tasklib/hdl/sim/mti_task_sim_image.py +0 -69
  27. dv_flow_mgr/tasklib/hdl/sim/mti_task_sim_run.py +0 -47
  28. dv_flow_mgr/tasklib/hdl/sim/pkg_hdl_sim.py +0 -8
  29. dv_flow_mgr/tasklib/hdl/sim/task_sim_image.py +0 -16
  30. dv_flow_mgr/tasklib/hdl/sim/vcs_pkg.py +0 -14
  31. dv_flow_mgr/tasklib/hdl/sim/vcs_task_sim_image.py +0 -49
  32. dv_flow_mgr/tasklib/hdl/sim/vcs_task_sim_run.py +0 -45
  33. dv_flow_mgr/tasklib/hdl/sim/vl_task_sim_image.py +0 -96
  34. dv_flow_mgr/tasklib/hdl/sim/vlt_pkg.py +0 -14
  35. dv_flow_mgr/tasklib/hdl/sim/vlt_task_sim_image.py +0 -50
  36. dv_flow_mgr/tasklib/hdl/sim/vlt_task_sim_run.py +0 -45
  37. dv_flow_mgr/tasklib/std/pkg_std.py +0 -15
  38. dv_flow_mgr/tasklib/std/std.dfs +0 -7
  39. dv_flow_mgr/tasklib/std/task_null.py +0 -26
  40. dv_flow_mgr-0.0.1.12849118090a1.dist-info/RECORD +0 -42
  41. dv_flow_mgr-0.0.1.12849118090a1.dist-info/entry_points.txt +0 -2
  42. dv_flow_mgr-0.0.1.12849118090a1.dist-info/top_level.txt +0 -1
  43. {dv_flow_mgr → dv_flow/mgr}/fileset.py +0 -0
  44. {dv_flow_mgr → dv_flow/mgr}/flow.py +0 -0
  45. {dv_flow_mgr → dv_flow/mgr}/fragment_def.py +0 -0
  46. {dv_flow_mgr → dv_flow/mgr}/package.py +0 -0
  47. {dv_flow_mgr → dv_flow/mgr}/package_import_spec.py +0 -0
  48. {dv_flow_mgr → dv_flow/mgr}/parameters.py +0 -0
  49. {dv_flow_mgr → dv_flow/mgr}/share/flow.json +0 -0
  50. {dv_flow_mgr → dv_flow/mgr}/task_memento.py +0 -0
  51. {dv_flow_mgr-0.0.1.12849118090a1.dist-info → dv_flow_mgr-0.0.1.12911707440a1.dist-info}/LICENSE +0 -0
  52. {dv_flow_mgr-0.0.1.12849118090a1.dist-info → dv_flow_mgr-0.0.1.12911707440a1.dist-info}/WHEEL +0 -0
@@ -1,96 +0,0 @@
1
- import os
2
- import fnmatch
3
- import dataclasses
4
- import shutil
5
- import pydantic.dataclasses as dc
6
- from toposort import toposort
7
- from ....fileset import FileSet
8
- from ....package import TaskCtor
9
- from ....task import Task, TaskParams, TaskCtorT
10
- from ....task_data import TaskData
11
- from ....task_memento import TaskMemento
12
- from typing import List, Tuple
13
-
14
- from svdep import FileCollection, TaskCheckUpToDate, TaskBuildFileCollection
15
-
16
- class VlTaskSimImage(Task):
17
-
18
- def getRefTime(self):
19
- raise NotImplementedError()
20
-
21
- async def build(self, files : List[str], incdirs : List[str]):
22
- raise NotImplementedError()
23
-
24
- async def run(self, input : TaskData) -> TaskData:
25
- ex_memento = self.getMemento(VlTaskSimImageMemento)
26
- in_changed = (ex_memento is None)
27
-
28
- for dep in input.deps:
29
- in_changed |= dep.changed
30
-
31
- files = []
32
- incdirs = []
33
- memento = ex_memento
34
-
35
-
36
- self._gatherSvSources(files, incdirs, input)
37
-
38
- if not in_changed:
39
- try:
40
- ref_mtime = self.getRefTime()
41
- info = FileCollection.from_dict(ex_memento.svdeps)
42
- in_changed = not TaskCheckUpToDate(files, incdirs).check(info, ref_mtime)
43
- except Exception as e:
44
- print("Unexpected output-directory format (%s). Rebuilding" % str(e))
45
- shutil.rmtree(self.rundir)
46
- os.makedirs(self.rundir)
47
- in_changed = True
48
-
49
- if in_changed:
50
- memento = VlTaskSimImageMemento()
51
-
52
- # First, create dependency information
53
- info = TaskBuildFileCollection(files, incdirs).build()
54
- memento.svdeps = info.to_dict()
55
-
56
- await self.build(files, incdirs)
57
-
58
- output = TaskData()
59
- output.addFileSet(FileSet(src=self.name, type="simDir", basedir=self.rundir))
60
- output.changed = in_changed
61
-
62
- self.setMemento(memento)
63
- return output
64
-
65
- def _gatherSvSources(self, files, incdirs, input):
66
- # input must represent dependencies for all tasks related to filesets
67
- # references must support transitivity
68
-
69
- vl_filesets = input.getFileSets(("verilogSource", "systemVerilogSource"))
70
- fs_tasks = [fs.src for fs in vl_filesets]
71
-
72
- # Want dependencies just for the filesets
73
- # - key is the task associated with a filelist
74
- # - deps is the dep-set of the on the incoming
75
- #
76
- # -> Send output set of dependencies
77
- # - Task -> deps map
78
- # "task" : ["dep1", "dep2", ...],
79
- # "task2" :
80
- # - All tasks are represented in the map
81
- # -> Assume projects will often flatten before exporting
82
-
83
- # Sort the deps
84
- order = list(toposort(input.deps))
85
-
86
- print("order: %s" % str(order))
87
-
88
-
89
-
90
- class VlTaskSimImageParams(TaskParams):
91
- debug : bool = False
92
- top : List[str] = dc.Field(default_factory=list)
93
-
94
- class VlTaskSimImageMemento(TaskMemento):
95
- svdeps : dict = dc.Field(default_factory=dict)
96
-
@@ -1,14 +0,0 @@
1
- import dataclasses as dc
2
- from .pkg_hdl_sim import PackageHdlSim
3
- from .vlt_task_sim_image import TaskVltSimImageCtor
4
- from .vlt_task_sim_run import TaskVltSimRunCtor
5
-
6
- @dc.dataclass
7
- class VltPackage(PackageHdlSim):
8
-
9
- def __post_init__(self):
10
- print("PackageVlt::__post_init__", flush=True)
11
- self.tasks["SimImage"] = TaskVltSimImageCtor()
12
- self.tasks["SimRun"] = TaskVltSimRunCtor()
13
- pass
14
-
@@ -1,50 +0,0 @@
1
- import os
2
- import fnmatch
3
- import dataclasses as dc
4
- from ....fileset import FileSet
5
- from ....package import TaskCtor
6
- from ....task import Task, TaskParams, TaskCtorT
7
- from ....task_data import TaskData
8
- from ....task_memento import TaskMemento
9
- from .vl_task_sim_image import VlTaskSimImage, VlTaskSimImageParams, VlTaskSimImageMemento
10
- from typing import List, Tuple
11
-
12
- from svdep import FileCollection, TaskCheckUpToDate, TaskBuildFileCollection
13
-
14
- @dc.dataclass
15
- class TaskVltSimImage(VlTaskSimImage):
16
-
17
- def getRefTime(self):
18
- if os.path.isdir(os.path.join(self.rundir, 'obj_dir/simv')):
19
- return os.path.getmtime(os.path.join(self.rundir, 'obj_dir/simv'))
20
- else:
21
- raise Exception
22
-
23
- async def build(self, files : List[str], incdirs : List[str]):
24
- cmd = ['verilator', '--binary', '-o', 'simv']
25
-
26
- for incdir in incdirs:
27
- cmd.append('+incdir+%s' % incdir)
28
-
29
- cmd.extend(files)
30
-
31
- for top in self.params.top:
32
- cmd.extend(['--top-module', top])
33
-
34
- print("self.basedir=%s" % self.rundir)
35
- proc = await self.session.create_subprocess(*cmd,
36
- cwd=self.rundir)
37
- await proc.wait()
38
-
39
- if proc.returncode != 0:
40
- raise Exception("Verilator failed")
41
-
42
- class TaskVltSimImageParams(VlTaskSimImageParams):
43
- pass
44
-
45
- class TaskVltSimImageMemento(VlTaskSimImageMemento):
46
- pass
47
-
48
- class TaskVltSimImageCtor(TaskCtorT):
49
- def __init__(self):
50
- super().__init__(TaskVltSimImageParams, TaskVltSimImage)
@@ -1,45 +0,0 @@
1
- import os
2
- import fnmatch
3
- import pydantic.dataclasses as dc
4
- from ....fileset import FileSet
5
- from ....package import TaskCtor
6
- from ....task import Task, TaskParams, TaskCtorT
7
- from ....task_data import TaskData
8
- from ....task_memento import TaskMemento
9
- from typing import List, Tuple
10
-
11
- class TaskVltSimRun(Task):
12
-
13
- async def run(self, input : TaskData) -> TaskData:
14
- vl_fileset = input.getFileSets("simDir")
15
-
16
- build_dir = vl_fileset[0].basedir
17
-
18
- cmd = [
19
- os.path.join(build_dir, 'obj_dir/simv'),
20
- ]
21
-
22
- fp = open(os.path.join(self.rundir, 'sim.log'), "w")
23
- proc = await self.session.create_subprocess(*cmd,
24
- cwd=self.rundir,
25
- stdout=fp)
26
-
27
- await proc.wait()
28
-
29
- fp.close()
30
-
31
- output = TaskData()
32
- output.addFileSet(FileSet(src=self.name, type="simRunDir", basedir=self.rundir))
33
-
34
- return output
35
-
36
- class TaskVltSimRunParams(TaskParams):
37
- pass
38
-
39
- class TaskVltSimRunMemento(TaskMemento):
40
- pass
41
-
42
- class TaskVltSimRunCtor(TaskCtorT):
43
- def __init__(self):
44
- super().__init__(TaskVltSimRunParams, TaskVltSimRun)
45
-
@@ -1,15 +0,0 @@
1
- import dataclasses as dc
2
- from ...package_def import Package
3
- from .task_fileset import TaskFileSetCtor
4
- from .task_null import TaskNullCtor
5
-
6
- @dc.dataclass
7
- class PackageStd(Package):
8
-
9
- def __post_init__(self):
10
- print("PackageStd::__post_init__", flush=True)
11
- self.tasks["FileSet"] = TaskFileSetCtor()
12
- self.tasks["Null"] = TaskNullCtor()
13
-
14
- pass
15
-
@@ -1,7 +0,0 @@
1
-
2
- package:
3
- name: std
4
-
5
- tasks:
6
- - name: FileSet
7
- impl:
@@ -1,26 +0,0 @@
1
- import os
2
- import glob
3
- import fnmatch
4
- import pydantic.dataclasses as dc
5
- from ...package import TaskCtor
6
- from ...task import Task, TaskParams, TaskCtorT
7
- from ...task_data import TaskData
8
- from ...task_memento import TaskMemento
9
- from typing import List, Tuple
10
-
11
- class TaskNull(Task):
12
-
13
- async def run(self, input : TaskData) -> TaskData:
14
- # No memento ; data pass-through
15
- return input
16
-
17
- class TaskNullParams(TaskParams):
18
- pass
19
-
20
- class TaskNullMemento(TaskMemento):
21
- pass
22
-
23
- class TaskNullCtor(TaskCtorT):
24
- def __init__(self):
25
- super().__init__(TaskNullParams, TaskNull)
26
-
@@ -1,42 +0,0 @@
1
- dv_flow_mgr/__init__.py,sha256=GLfYxZONxJNNUplfmlsXrcycJ2VhTc8gvXN6qdlH7kg,97
2
- dv_flow_mgr/__main__.py,sha256=4xXA4XCqLELlIak6bs-H6rRHp2URucipHPvCiVdR01c,513
3
- dv_flow_mgr/fileset.py,sha256=FNvC5sU2ArxJ0OO3v8dXTv8zX-bZ5t0a0ljne0fQQ1o,1150
4
- dv_flow_mgr/flow.py,sha256=UdgJOIqBS2wTRpO-sNWCCqO9oQFxDfGPGVD0r42aTrA,1562
5
- dv_flow_mgr/fragment_def.py,sha256=p5i6ONtBWlDHTBFsduu3Z36_76Bn8PCIylp_xoZ7jfQ,1552
6
- dv_flow_mgr/package.py,sha256=k6gaDun9mJeGwGsFP5YOYOaFLmKb3KyPZy5wGRgJd_E,1965
7
- dv_flow_mgr/package_def.py,sha256=YZkXk6alkP6hjGT61EAglAHPEE-Rax8VCybIYbQ9NJs,8040
8
- dv_flow_mgr/package_import_spec.py,sha256=bStPa727wAKMcixydVY1Ht6ylzXsSMy2K31HWPXhc9k,921
9
- dv_flow_mgr/parameters.py,sha256=kUjRss5VtMMz5eL3-Z_M6BS-wFs7MhQu3ANXO54UPo0,896
10
- dv_flow_mgr/session.py,sha256=oj75khugWLdBe7ouAmQX9sVAMRZi6O4CdLquokIkXDY,12163
11
- dv_flow_mgr/task.py,sha256=AIz9YI-K3riv1EQ-hArL6eYsfbWjHMoN07Ao4mRdiW8,6146
12
- dv_flow_mgr/task_data.py,sha256=8AcFCxVmv9agzUDXnwUNJImpfp0N4jB1IHodIECf-0k,9735
13
- dv_flow_mgr/task_def.py,sha256=w0V5FSHi8D6PFyq_3j_smO3fmJp-cAMpigWT0yU4-GY,1654
14
- dv_flow_mgr/task_memento.py,sha256=C7VTQpBhDEoYuDmE6YTM-6TLMLnqHp6Y0Vat1aTgtCs,1096
15
- dv_flow_mgr/cmds/cmd_run.py,sha256=ii48_jdxCxh4MOJCeKKX66Cui4IvQQy_RrJEIixsph8,733
16
- dv_flow_mgr/share/flow.json,sha256=lNmZex9NXkYbyb2aZseQfUOkV9CMyfH0iLODEI7EPBw,5096
17
- dv_flow_mgr/tasklib/builtin_pkg.py,sha256=ps5SkO7s29xVzyeEw96qbMAg9Dk6UPErH2Lc87foIcs,1883
18
- dv_flow_mgr/tasklib/hdl/sim/mti_pkg.py,sha256=l_jerOEQrVSmxT6qJx0PlsorZsK037Y-arQvWzdm9No,348
19
- dv_flow_mgr/tasklib/hdl/sim/mti_task_sim_image.py,sha256=U1XADvEGaH412n_JujS1Maz08GJ07UL6mRT4B4qihZQ,2229
20
- dv_flow_mgr/tasklib/hdl/sim/mti_task_sim_run.py,sha256=QkKYOs0OhQ42F5bUbfCsezE4L50TfiIm7lVflVY4On8,1290
21
- dv_flow_mgr/tasklib/hdl/sim/pkg_hdl_sim.py,sha256=hPk5w7dN3Uq3mLRBNCEtE7jkLavi2MAczJlle_xGoQ8,166
22
- dv_flow_mgr/tasklib/hdl/sim/task_sim_image.py,sha256=DOSxzH-0EZQZlm-EwSq1q7_nz_yru6al36Ji1Q6z5F4,375
23
- dv_flow_mgr/tasklib/hdl/sim/vcs_pkg.py,sha256=65W8NP54_EdtHo6lsmCejT8diPvizT9e3AjjTXJC_u0,413
24
- dv_flow_mgr/tasklib/hdl/sim/vcs_task_sim_image.py,sha256=SAZYYCZ_ZO80Vfxx7sGcGeKBz00XsoaAjsUwRnCd7eo,1493
25
- dv_flow_mgr/tasklib/hdl/sim/vcs_task_sim_run.py,sha256=LYjf--RZH2Jh4-c_4hZOo2uLO3Tu_waGQRXmlDggmZs,1191
26
- dv_flow_mgr/tasklib/hdl/sim/vl_task_sim_image.py,sha256=QJP1gjclUSYfq-B9NIA46C1E1zTfOiqsmGjXtsu4BY8,3017
27
- dv_flow_mgr/tasklib/hdl/sim/vlt_pkg.py,sha256=Pu9mWAR93kiTNT8GZJrX-VDjMOfr9P5ddcSPt1BElQQ,413
28
- dv_flow_mgr/tasklib/hdl/sim/vlt_task_sim_image.py,sha256=9RDJ3r37C4tA4PIa7tDUYYgRpIh19up-Y9HTOwKxr0I,1564
29
- dv_flow_mgr/tasklib/hdl/sim/vlt_task_sim_run.py,sha256=RxPaE1RSRi2QdadrZp2J3lZqTt6EnLjCnk__uPAV6_o,1199
30
- dv_flow_mgr/tasklib/std/fileset.py,sha256=m7b85A81pNkkq_HM7XdDO5zdkoGvbbOCaTckEH666jg,2350
31
- dv_flow_mgr/tasklib/std/flow.dv,sha256=d3jFrZnTqdI2IZB-lSOs5tjA_beLtuLHgjusytf2_nA,391
32
- dv_flow_mgr/tasklib/std/message.py,sha256=O61dY00bQPCd7Ak5o-KGXh3C7a9wfZcbU_D2fiBudd8,193
33
- dv_flow_mgr/tasklib/std/pkg_std.py,sha256=ERDd515qtetQaldk9opUH19MyNwo8nP4-GLz-ke-5gE,370
34
- dv_flow_mgr/tasklib/std/std.dfs,sha256=An2NUvvWaR9xI4U-kRQ4NN6U-GhX6GQmd3mNyRkW4NQ,68
35
- dv_flow_mgr/tasklib/std/task_fileset.py,sha256=ZBG4e2gsTsRMsr_FhhzIoE3J7YwYQZ9HigpxpGePd74,3145
36
- dv_flow_mgr/tasklib/std/task_null.py,sha256=bQH1HN4r-TtdUaJxfnmvoqKZSY4MWO48eK7z_yngdNU,599
37
- dv_flow_mgr-0.0.1.12849118090a1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
38
- dv_flow_mgr-0.0.1.12849118090a1.dist-info/METADATA,sha256=Si9x7uqsXSWlCl6c6eQUJ8CpIi3duJ_4rBM2QkPTJ_Q,13252
39
- dv_flow_mgr-0.0.1.12849118090a1.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
40
- dv_flow_mgr-0.0.1.12849118090a1.dist-info/entry_points.txt,sha256=VHxIon5AeHCtK73fYb1veDImAGwv76hrtBiuZePmzhI,51
41
- dv_flow_mgr-0.0.1.12849118090a1.dist-info/top_level.txt,sha256=FGuhGIxN1FgD_YBkPcDq05fTxZcwaX9G_O8FFBvrTk4,12
42
- dv_flow_mgr-0.0.1.12849118090a1.dist-info/RECORD,,
@@ -1,2 +0,0 @@
1
- [console_scripts]
2
- dvfm = dv_flow_mgr.__main__:main
@@ -1 +0,0 @@
1
- dv_flow_mgr
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes