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.
- {dv_flow_mgr → dv_flow/mgr}/__init__.py +1 -1
- {dv_flow_mgr → dv_flow/mgr}/__main__.py +1 -1
- dv_flow/mgr/cmds/cmd_run.py +90 -0
- {dv_flow_mgr → dv_flow/mgr}/package_def.py +96 -4
- dv_flow/mgr/pkg_rgy.py +78 -0
- {dv_flow_mgr/tasklib → dv_flow/mgr}/std/fileset.py +3 -3
- {dv_flow_mgr/tasklib → dv_flow/mgr}/std/flow.dv +6 -2
- {dv_flow_mgr/tasklib → dv_flow/mgr}/std/message.py +1 -1
- {dv_flow_mgr/tasklib → dv_flow/mgr}/std/task_fileset.py +5 -5
- dv_flow/mgr/std/task_null.py +10 -0
- {dv_flow_mgr → dv_flow/mgr}/task.py +11 -4
- {dv_flow_mgr → dv_flow/mgr}/task_data.py +18 -2
- {dv_flow_mgr → dv_flow/mgr}/task_def.py +2 -1
- dv_flow/mgr/task_graph_builder.py +190 -0
- dv_flow/mgr/task_graph_runner.py +71 -0
- dv_flow/mgr/task_graph_runner_local.py +79 -0
- dv_flow/mgr/util.py +19 -0
- {dv_flow_mgr-0.0.1.12849118090a1.dist-info → dv_flow_mgr-0.0.1.12911707440a1.dist-info}/METADATA +1 -1
- dv_flow_mgr-0.0.1.12911707440a1.dist-info/RECORD +31 -0
- dv_flow_mgr-0.0.1.12911707440a1.dist-info/entry_points.txt +2 -0
- dv_flow_mgr-0.0.1.12911707440a1.dist-info/top_level.txt +1 -0
- dv_flow_mgr/cmds/cmd_run.py +0 -28
- dv_flow_mgr/session.py +0 -324
- dv_flow_mgr/tasklib/builtin_pkg.py +0 -62
- dv_flow_mgr/tasklib/hdl/sim/mti_pkg.py +0 -11
- dv_flow_mgr/tasklib/hdl/sim/mti_task_sim_image.py +0 -69
- dv_flow_mgr/tasklib/hdl/sim/mti_task_sim_run.py +0 -47
- dv_flow_mgr/tasklib/hdl/sim/pkg_hdl_sim.py +0 -8
- dv_flow_mgr/tasklib/hdl/sim/task_sim_image.py +0 -16
- dv_flow_mgr/tasklib/hdl/sim/vcs_pkg.py +0 -14
- dv_flow_mgr/tasklib/hdl/sim/vcs_task_sim_image.py +0 -49
- dv_flow_mgr/tasklib/hdl/sim/vcs_task_sim_run.py +0 -45
- dv_flow_mgr/tasklib/hdl/sim/vl_task_sim_image.py +0 -96
- dv_flow_mgr/tasklib/hdl/sim/vlt_pkg.py +0 -14
- dv_flow_mgr/tasklib/hdl/sim/vlt_task_sim_image.py +0 -50
- dv_flow_mgr/tasklib/hdl/sim/vlt_task_sim_run.py +0 -45
- dv_flow_mgr/tasklib/std/pkg_std.py +0 -15
- dv_flow_mgr/tasklib/std/std.dfs +0 -7
- dv_flow_mgr/tasklib/std/task_null.py +0 -26
- dv_flow_mgr-0.0.1.12849118090a1.dist-info/RECORD +0 -42
- dv_flow_mgr-0.0.1.12849118090a1.dist-info/entry_points.txt +0 -2
- dv_flow_mgr-0.0.1.12849118090a1.dist-info/top_level.txt +0 -1
- {dv_flow_mgr → dv_flow/mgr}/fileset.py +0 -0
- {dv_flow_mgr → dv_flow/mgr}/flow.py +0 -0
- {dv_flow_mgr → dv_flow/mgr}/fragment_def.py +0 -0
- {dv_flow_mgr → dv_flow/mgr}/package.py +0 -0
- {dv_flow_mgr → dv_flow/mgr}/package_import_spec.py +0 -0
- {dv_flow_mgr → dv_flow/mgr}/parameters.py +0 -0
- {dv_flow_mgr → dv_flow/mgr}/share/flow.json +0 -0
- {dv_flow_mgr → dv_flow/mgr}/task_memento.py +0 -0
- {dv_flow_mgr-0.0.1.12849118090a1.dist-info → dv_flow_mgr-0.0.1.12911707440a1.dist-info}/LICENSE +0 -0
- {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
|
-
|
dv_flow_mgr/tasklib/std/std.dfs
DELETED
@@ -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 +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
|
{dv_flow_mgr-0.0.1.12849118090a1.dist-info → dv_flow_mgr-0.0.1.12911707440a1.dist-info}/LICENSE
RENAMED
File without changes
|
{dv_flow_mgr-0.0.1.12849118090a1.dist-info → dv_flow_mgr-0.0.1.12911707440a1.dist-info}/WHEEL
RENAMED
File without changes
|