in src/hpcadvisor/main_gui.py [0:0]
def view_plot():
st.write("### Plots ")
st.text("")
st.text("")
st.text("")
st.text("")
uploaded_file = st.file_uploader(
"Choose data filter file (optional)",
key="fileupload_view_plot",
accept_multiple_files=False,
type=["json"],
)
datafilter_file = None
if uploaded_file:
bytes_data = uploaded_file.read()
datafilter_file = json.loads(bytes_data)
# st.write("loaded data filter file:", uploaded_file.name)
appname = None
deployment = None
# TODO support multiple deployments via GUI
if datafilter_file:
if "appname" in datafilter_file:
appname = datafilter_file["appname"]
if "deployment" in datafilter_file:
deployment = datafilter_file["deployment"]
appname = st.text_input(
"Application name", appname, key="textinput_viewplot_appname"
)
deployment = st.text_input(
"Deployment (optional)", deployment, key="textinput=viewplot_deployment"
)
datafilter = {}
if appname:
datafilter["appname"] = appname
if deployment:
datafilter["deployment"] = deployment
dataset_file = utils.get_dataset_filename()
appinputs = []
if not os.path.exists(dataset_file):
log.error("Dataset file not found: " + dataset_file)
return
datapoints = dataset_handler.get_datapoints(dataset_file, datafilter)
if not datapoints:
log.error("No datapoints found. Check dataset and datafilter files")
return
appinputs = dataset_handler.get_appinput_combinations(datapoints)
datafilter_appinputs = []
for appinput in appinputs:
filter = {}
filter["appinputs"] = appinput
datafilter_appinputs.append(filter)
if st.button(
"Get plots",
key="run_createplot_button",
):
st.write("## Plots ")
st.write("Generating plots. Please wait...")
show_plot_files(st, datapoints, datafilter_appinputs)
st.text("")
st.text("")
st.text("")
st.text("")
st.text("")
st.text("")