siliconcompiler 0.32.1__py3-none-any.whl → 0.32.3__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.
- siliconcompiler/_metadata.py +3 -2
- siliconcompiler/apps/sc_install.py +13 -5
- siliconcompiler/apps/sc_remote.py +2 -1
- siliconcompiler/core.py +68 -55
- siliconcompiler/issue.py +3 -1
- siliconcompiler/remote/client.py +55 -16
- siliconcompiler/report/__init__.py +3 -2
- siliconcompiler/report/dashboard/__init__.py +61 -170
- siliconcompiler/report/dashboard/cli/__init__.py +788 -0
- siliconcompiler/report/dashboard/web/__init__.py +196 -0
- siliconcompiler/report/dashboard/{components → web/components}/__init__.py +4 -4
- siliconcompiler/report/dashboard/{components → web/components}/graph.py +1 -1
- siliconcompiler/report/dashboard/{layouts → web/layouts}/__init__.py +3 -3
- siliconcompiler/report/dashboard/{layouts → web/layouts}/_common.py +1 -1
- siliconcompiler/report/dashboard/{layouts → web/layouts}/vertical_flowgraph.py +5 -5
- siliconcompiler/report/dashboard/{layouts → web/layouts}/vertical_flowgraph_node_tab.py +6 -6
- siliconcompiler/report/dashboard/{layouts → web/layouts}/vertical_flowgraph_sac_tabs.py +6 -6
- siliconcompiler/report/dashboard/{viewer.py → web/viewer.py} +4 -4
- siliconcompiler/scheduler/__init__.py +44 -13
- siliconcompiler/scheduler/docker_runner.py +2 -1
- siliconcompiler/sphinx_ext/dynamicgen.py +11 -11
- siliconcompiler/templates/replay/replay.sh.j2 +2 -2
- siliconcompiler/templates/tcl/manifest.tcl.j2 +4 -120
- siliconcompiler/tools/_common/__init__.py +2 -0
- siliconcompiler/tools/_common/tcl/sc_schema_access.tcl +126 -0
- siliconcompiler/tools/openroad/_apr.py +7 -0
- siliconcompiler/tools/openroad/fillmetal_insertion.py +14 -14
- siliconcompiler/tools/openroad/scripts/apr/sc_antenna_repair.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/sc_clock_tree_synthesis.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/sc_detailed_placement.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/sc_detailed_route.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/sc_endcap_tapcell_insertion.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/sc_fillercell_insertion.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/sc_fillmetal_insertion.tcl +2 -2
- siliconcompiler/tools/openroad/scripts/apr/sc_global_placement.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/sc_global_route.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/sc_init_floorplan.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/sc_macro_placement.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/sc_metrics.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/sc_pin_placement.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/sc_power_grid.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/sc_repair_design.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/apr/sc_repair_timing.tcl +54 -8
- siliconcompiler/tools/openroad/scripts/apr/sc_write_data.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/common/procs.tcl +19 -1
- siliconcompiler/tools/openroad/scripts/common/reports.tcl +18 -7
- siliconcompiler/tools/openroad/scripts/sc_rcx.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/sc_rdlroute.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/sc_show.tcl +1 -1
- siliconcompiler/tools/opensta/__init__.py +1 -1
- siliconcompiler/tools/opensta/scripts/sc_check_library.tcl +1 -1
- siliconcompiler/tools/opensta/scripts/sc_procs.tcl +16 -0
- siliconcompiler/tools/opensta/scripts/sc_report_libraries.tcl +1 -1
- siliconcompiler/tools/opensta/scripts/sc_timing.tcl +35 -7
- siliconcompiler/tools/opensta/timing.py +6 -2
- siliconcompiler/tools/slang/__init__.py +7 -8
- siliconcompiler/tools/sv2v/sv2v.py +4 -1
- siliconcompiler/tools/yosys/__init__.py +4 -36
- siliconcompiler/tools/yosys/lec.py +3 -4
- siliconcompiler/tools/yosys/{syn_asic.tcl → sc_synth_asic.tcl} +87 -0
- siliconcompiler/tools/yosys/{syn_fpga.tcl → sc_synth_fpga.tcl} +78 -0
- siliconcompiler/tools/yosys/syn_asic.py +36 -11
- siliconcompiler/tools/yosys/syn_fpga.py +23 -16
- siliconcompiler/toolscripts/_tools.json +23 -9
- siliconcompiler/toolscripts/rhel8/install-chisel.sh +2 -0
- siliconcompiler/toolscripts/rhel8/install-icarus.sh +1 -0
- siliconcompiler/toolscripts/rhel8/install-klayout.sh +2 -0
- siliconcompiler/toolscripts/rhel8/install-magic.sh +1 -2
- siliconcompiler/toolscripts/rhel8/install-netgen.sh +1 -1
- siliconcompiler/toolscripts/rhel8/install-slang.sh +2 -0
- siliconcompiler/toolscripts/rhel8/install-surelog.sh +3 -1
- siliconcompiler/toolscripts/rhel8/install-sv2v.sh +1 -0
- siliconcompiler/toolscripts/rhel8/install-verible.sh +2 -0
- siliconcompiler/toolscripts/rhel8/install-verilator.sh +1 -0
- siliconcompiler/toolscripts/rhel8/install-xyce.sh +2 -0
- siliconcompiler/toolscripts/rhel9/install-chisel.sh +2 -0
- siliconcompiler/toolscripts/rhel9/install-ghdl.sh +1 -0
- siliconcompiler/toolscripts/rhel9/install-gtkwave.sh +2 -1
- siliconcompiler/toolscripts/rhel9/install-icarus.sh +1 -0
- siliconcompiler/toolscripts/rhel9/install-klayout.sh +2 -0
- siliconcompiler/toolscripts/rhel9/install-magic.sh +1 -2
- siliconcompiler/toolscripts/rhel9/install-netgen.sh +1 -1
- siliconcompiler/toolscripts/rhel9/install-openroad.sh +2 -0
- siliconcompiler/toolscripts/rhel9/install-opensta.sh +76 -0
- siliconcompiler/toolscripts/rhel9/install-slang.sh +3 -1
- siliconcompiler/toolscripts/rhel9/install-surelog.sh +2 -1
- siliconcompiler/toolscripts/rhel9/install-sv2v.sh +1 -0
- siliconcompiler/toolscripts/rhel9/install-verible.sh +2 -0
- siliconcompiler/toolscripts/rhel9/install-verilator.sh +1 -0
- siliconcompiler/toolscripts/rhel9/install-vpr.sh +31 -0
- siliconcompiler/toolscripts/rhel9/install-xdm.sh +2 -0
- siliconcompiler/toolscripts/rhel9/install-xyce.sh +2 -0
- siliconcompiler/toolscripts/rhel9/install-yosys-moosic.sh +2 -0
- siliconcompiler/toolscripts/rhel9/install-yosys-parmys.sh +61 -0
- siliconcompiler/toolscripts/rhel9/install-yosys-slang.sh +3 -1
- siliconcompiler/toolscripts/rhel9/install-yosys.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-bluespec.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-chisel.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-gtkwave.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-magic.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-netgen.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +1 -3
- siliconcompiler/toolscripts/ubuntu20/install-openroad.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-opensta.sh +72 -0
- siliconcompiler/toolscripts/ubuntu20/install-slang.sh +3 -1
- siliconcompiler/toolscripts/ubuntu20/install-slurm.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +3 -1
- siliconcompiler/toolscripts/ubuntu20/install-sv2v.sh +1 -1
- siliconcompiler/toolscripts/ubuntu20/install-verible.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-verilator.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-vpr.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-xdm.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-xyce.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-yosys-moosic.sh +2 -0
- siliconcompiler/toolscripts/ubuntu20/install-yosys-parmys.sh +61 -0
- siliconcompiler/toolscripts/ubuntu20/install-yosys.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-bluespec.sh +27 -2
- siliconcompiler/toolscripts/ubuntu22/install-chisel.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh +4 -2
- siliconcompiler/toolscripts/ubuntu22/install-gtkwave.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-magic.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-netgen.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-nextpnr.sh +1 -2
- siliconcompiler/toolscripts/ubuntu22/install-openroad.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-opensta.sh +72 -0
- siliconcompiler/toolscripts/ubuntu22/install-slang.sh +3 -1
- siliconcompiler/toolscripts/ubuntu22/install-slurm.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +3 -1
- siliconcompiler/toolscripts/ubuntu22/install-sv2v.sh +1 -1
- siliconcompiler/toolscripts/ubuntu22/install-verible.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-verilator.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-xdm.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-xyce.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-yosys-moosic.sh +2 -0
- siliconcompiler/toolscripts/ubuntu22/install-yosys-parmys.sh +61 -0
- siliconcompiler/toolscripts/ubuntu22/install-yosys-slang.sh +3 -1
- siliconcompiler/toolscripts/ubuntu22/install-yosys.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-bluespec.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +4 -2
- siliconcompiler/toolscripts/ubuntu24/install-gtkwave.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-magic.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-nextpnr.sh +1 -3
- siliconcompiler/toolscripts/ubuntu24/install-openroad.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-opensta.sh +72 -0
- siliconcompiler/toolscripts/ubuntu24/install-slang.sh +3 -1
- siliconcompiler/toolscripts/ubuntu24/install-slurm.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +3 -1
- siliconcompiler/toolscripts/ubuntu24/install-sv2v.sh +1 -1
- siliconcompiler/toolscripts/ubuntu24/install-verible.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-verilator.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-vpr.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-xdm.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-xyce.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-yosys-moosic.sh +2 -0
- siliconcompiler/toolscripts/ubuntu24/install-yosys-parmys.sh +61 -0
- siliconcompiler/toolscripts/ubuntu24/install-yosys-slang.sh +3 -1
- siliconcompiler/toolscripts/ubuntu24/install-yosys.sh +2 -0
- siliconcompiler/utils/__init__.py +4 -1
- siliconcompiler/utils/logging.py +88 -34
- {siliconcompiler-0.32.1.dist-info → siliconcompiler-0.32.3.dist-info}/METADATA +14 -10
- {siliconcompiler-0.32.1.dist-info → siliconcompiler-0.32.3.dist-info}/RECORD +185 -175
- {siliconcompiler-0.32.1.dist-info → siliconcompiler-0.32.3.dist-info}/WHEEL +1 -1
- siliconcompiler/tools/yosys/sc_syn.tcl +0 -87
- siliconcompiler/toolscripts/ubuntu20/install-yosys-slang.sh +0 -22
- /siliconcompiler/report/dashboard/{components → web/components}/flowgraph.py +0 -0
- /siliconcompiler/report/dashboard/{state.py → web/state.py} +0 -0
- /siliconcompiler/report/dashboard/{utils → web/utils}/__init__.py +0 -0
- /siliconcompiler/report/dashboard/{utils → web/utils}/file_utils.py +0 -0
- {siliconcompiler-0.32.1.dist-info → siliconcompiler-0.32.3.dist-info}/entry_points.txt +0 -0
- {siliconcompiler-0.32.1.dist-info → siliconcompiler-0.32.3.dist-info/licenses}/LICENSE +0 -0
- {siliconcompiler-0.32.1.dist-info → siliconcompiler-0.32.3.dist-info}/top_level.txt +0 -0
|
@@ -1,190 +1,81 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import tempfile
|
|
4
|
-
import json
|
|
1
|
+
from abc import ABC, abstractmethod
|
|
2
|
+
from enum import Enum
|
|
5
3
|
|
|
6
|
-
import multiprocessing
|
|
7
|
-
import subprocess
|
|
8
|
-
import atexit
|
|
9
|
-
import shutil
|
|
10
|
-
import fasteners
|
|
11
|
-
import signal
|
|
12
|
-
import socketserver
|
|
13
4
|
|
|
14
|
-
|
|
5
|
+
class DashboardType(Enum):
|
|
6
|
+
WEB = 'web'
|
|
7
|
+
CLI = 'cli'
|
|
15
8
|
|
|
16
|
-
try:
|
|
17
|
-
from streamlit.web import bootstrap
|
|
18
|
-
from streamlit import config as _config
|
|
19
|
-
except ModuleNotFoundError:
|
|
20
|
-
bootstrap = None
|
|
21
|
-
_config = None
|
|
22
9
|
|
|
10
|
+
class AbstractDashboard(ABC):
|
|
11
|
+
"""
|
|
12
|
+
Abstract base class defining the interface for dashboard implementations.
|
|
13
|
+
Any concrete dashboard implementation should inherit from this class and
|
|
14
|
+
implement all abstract methods.
|
|
15
|
+
"""
|
|
23
16
|
|
|
24
|
-
|
|
25
|
-
|
|
17
|
+
@abstractmethod
|
|
18
|
+
def __init__(self, chip):
|
|
19
|
+
"""
|
|
20
|
+
Initialize the dashboard.
|
|
26
21
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
def __init__(self, chip, port=None, graph_chips=None):
|
|
33
|
-
if not bootstrap:
|
|
34
|
-
raise NotImplementedError('streamlit is not available')
|
|
35
|
-
|
|
36
|
-
if not port:
|
|
37
|
-
port = Dashboard.get_next_port()
|
|
38
|
-
if not port:
|
|
39
|
-
port = Dashboard.__port
|
|
40
|
-
|
|
41
|
-
self.__dashboard = None
|
|
42
|
-
self.__chip = chip
|
|
43
|
-
self.__directory = tempfile.mkdtemp(prefix='sc_dashboard_',
|
|
44
|
-
suffix=f'_{self.__chip.design}')
|
|
45
|
-
self.__manifest = os.path.join(self.__directory, 'manifest.json')
|
|
46
|
-
self.__manifest_lock = os.path.join(self.__directory, 'manifest.lock')
|
|
47
|
-
self.__port = port
|
|
48
|
-
dirname = os.path.dirname(__file__)
|
|
49
|
-
self.__streamlit_file = os.path.join(dirname, 'viewer.py')
|
|
50
|
-
|
|
51
|
-
self.__streamlit_args = [
|
|
52
|
-
("browser.gatherUsageStats", False),
|
|
53
|
-
("browser.serverPort", self.__port),
|
|
54
|
-
("logger.level", 'error'),
|
|
55
|
-
("runner.fastReruns", True),
|
|
56
|
-
("server.port", self.__port),
|
|
57
|
-
("client.toolbarMode", "viewer")
|
|
58
|
-
]
|
|
59
|
-
|
|
60
|
-
# pass in a json object called __graph_chips
|
|
61
|
-
# the key is the chip_name and value is the filepath
|
|
62
|
-
# if another argument is passed
|
|
63
|
-
|
|
64
|
-
# use of list is to preserve order
|
|
65
|
-
self.__graph_chips = []
|
|
66
|
-
graph_chips_config = []
|
|
67
|
-
if graph_chips:
|
|
68
|
-
for chip_object_and_name in graph_chips:
|
|
69
|
-
chip_file_path = \
|
|
70
|
-
os.path.join(self.__directory,
|
|
71
|
-
f"{chip_object_and_name['name']}.json")
|
|
72
|
-
self.__graph_chips.append({
|
|
73
|
-
'chip': chip_object_and_name['chip'],
|
|
74
|
-
'name': chip_file_path
|
|
75
|
-
})
|
|
76
|
-
graph_chips_config.append({
|
|
77
|
-
"path": chip_file_path,
|
|
78
|
-
"cwd": utils.get_chip_cwd(
|
|
79
|
-
chip_object_and_name['chip'],
|
|
80
|
-
chip_object_and_name['cfg_path'])
|
|
81
|
-
})
|
|
82
|
-
|
|
83
|
-
self.__config = {
|
|
84
|
-
"manifest": self.__manifest,
|
|
85
|
-
"lock": self.__manifest_lock,
|
|
86
|
-
"graph_chips": graph_chips_config
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
self.__sleep_time = 0.5
|
|
90
|
-
self.__signal_handler = None
|
|
91
|
-
|
|
92
|
-
self.__lock = fasteners.InterProcessLock(self.__manifest_lock)
|
|
93
|
-
|
|
94
|
-
atexit.register(self.__cleanup)
|
|
22
|
+
Args:
|
|
23
|
+
chip: The chip object to display in the dashboard
|
|
24
|
+
"""
|
|
25
|
+
self._chip = chip
|
|
95
26
|
|
|
27
|
+
@abstractmethod
|
|
96
28
|
def open_dashboard(self):
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
self.update_graph_manifests()
|
|
103
|
-
|
|
104
|
-
self.__dashboard = multiprocessing.Process(
|
|
105
|
-
target=self._run_streamlit_bootstrap)
|
|
106
|
-
|
|
107
|
-
self.__signal_handler = signal.signal(signal.SIGINT, Dashboard.__signal_handler)
|
|
108
|
-
|
|
109
|
-
self.__dashboard.start()
|
|
110
|
-
|
|
111
|
-
def update_manifest(self):
|
|
112
|
-
if not self.__manifest:
|
|
113
|
-
return
|
|
29
|
+
"""
|
|
30
|
+
Open and start the dashboard service.
|
|
31
|
+
"""
|
|
32
|
+
pass
|
|
114
33
|
|
|
115
|
-
|
|
116
|
-
|
|
34
|
+
@abstractmethod
|
|
35
|
+
def update_manifest(self, payload=None):
|
|
36
|
+
"""
|
|
37
|
+
Update the manifest file with the latest chip information.
|
|
117
38
|
|
|
118
|
-
|
|
119
|
-
|
|
39
|
+
Args:
|
|
40
|
+
payload (dict): Dictionary of metadata to pass along to dashboard.
|
|
41
|
+
{"starttimes" {<node>: time, ...}}
|
|
42
|
+
"""
|
|
43
|
+
pass
|
|
120
44
|
|
|
45
|
+
@abstractmethod
|
|
121
46
|
def update_graph_manifests(self):
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
def __get_config_file(self):
|
|
128
|
-
return os.path.join(self.__directory, 'config.json')
|
|
47
|
+
"""
|
|
48
|
+
Update the manifest files for all graph chips.
|
|
49
|
+
"""
|
|
50
|
+
pass
|
|
129
51
|
|
|
52
|
+
@abstractmethod
|
|
130
53
|
def is_running(self):
|
|
131
|
-
|
|
132
|
-
|
|
54
|
+
"""
|
|
55
|
+
Check if the dashboard is currently running.
|
|
133
56
|
|
|
134
|
-
|
|
135
|
-
|
|
57
|
+
Returns:
|
|
58
|
+
bool: True if the dashboard is running, False otherwise
|
|
59
|
+
"""
|
|
60
|
+
pass
|
|
136
61
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
62
|
+
@abstractmethod
|
|
63
|
+
def end_of_run(self):
|
|
64
|
+
"""
|
|
65
|
+
Announce that a run has completed
|
|
66
|
+
"""
|
|
67
|
+
pass
|
|
140
68
|
|
|
69
|
+
@abstractmethod
|
|
141
70
|
def stop(self):
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
self.__dashboard.terminate()
|
|
147
|
-
self._sleep()
|
|
148
|
-
|
|
149
|
-
if self.__signal_handler:
|
|
150
|
-
signal.signal(signal.SIGINT, self.__signal_handler)
|
|
151
|
-
|
|
152
|
-
self.__dashboard = None
|
|
153
|
-
self.__manifest = None
|
|
154
|
-
self.__signal_handler = None
|
|
71
|
+
"""
|
|
72
|
+
Stop the dashboard service if it's running.
|
|
73
|
+
"""
|
|
74
|
+
pass
|
|
155
75
|
|
|
76
|
+
@abstractmethod
|
|
156
77
|
def wait(self):
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
def _run_streamlit_bootstrap(self):
|
|
163
|
-
for config, val in self.__streamlit_args:
|
|
164
|
-
_config.set_option(config, val)
|
|
165
|
-
|
|
166
|
-
bootstrap.run(self.__streamlit_file,
|
|
167
|
-
False,
|
|
168
|
-
[self.__get_config_file()],
|
|
169
|
-
flag_options={})
|
|
170
|
-
|
|
171
|
-
def __run_streamlit_subproc(self):
|
|
172
|
-
cmd = ['streamlit', 'run',
|
|
173
|
-
self.__streamlit_file, self.__get_config_file()]
|
|
174
|
-
for config, val in self.__streamlit_args:
|
|
175
|
-
cmd.append(f'--{config}')
|
|
176
|
-
cmd.append(val)
|
|
177
|
-
|
|
178
|
-
subprocess.Popen(cmd)
|
|
179
|
-
|
|
180
|
-
def __cleanup(self):
|
|
181
|
-
self.stop()
|
|
182
|
-
|
|
183
|
-
if os.path.exists(self.__directory):
|
|
184
|
-
shutil.rmtree(self.__directory)
|
|
185
|
-
|
|
186
|
-
@staticmethod
|
|
187
|
-
def get_next_port():
|
|
188
|
-
with socketserver.TCPServer(("localhost", 0), None) as s:
|
|
189
|
-
return s.server_address[1]
|
|
190
|
-
return None
|
|
78
|
+
"""
|
|
79
|
+
Wait for the dashboard service to terminate.
|
|
80
|
+
"""
|
|
81
|
+
pass
|