def view_plot()

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("")