code: def get_experiment_table(
      q, df_viz, predictions, height="calc(100vh - 245px)", actions=None
  ):
      col_remove = [
          "id",
          "path",
          "mode",
          "seed",
          "process_id",
          "gpu_list",
          "loss",
          "eta",
          "epoch",
          "config_file",
      ]
      if predictions:
          col_remove += ["epoch", "val metric"]
  
      for col in col_remove:
          if col in df_viz:
              del df_viz[col]
      # df_viz = df_viz.rename(
      #     columns={"process_id": "pid", "config_file": "problem type"},
      # )
      # df_viz["problem type"] = df_viz["problem type"].str.replace("Text ", "")
  
      if (
          actions == "experiment"
          and q.client["experiment/list/mode"] == "train"
      ):
          actions_dict = {
              "experiment/list/new": "New experiment",
              "experiment/list/rename": "Rename experiment",
              "experiment/list/stop/table": "Stop experiment",
              "experiment/list/delete/table/dialog": "Delete experiment",
          }
      else:
          actions_dict = {}
  
      min_widths = {
          "name": "350",
          "dataset": "150",
          # "problem type": "190",
          "metric": "75",
          "val metric": "102",
          "progress": "85",
          "status": "90",
          "info": "115",
          "actions": "5" if predictions else "5",
      }
  
      if predictions:
          for k, v in min_widths.items():
              min_widths[k] = str(int(np.ceil(int(v) * 1.05)))
  
      return ui_table_from_df(
          q=q,
          df=df_viz,
          name="experiment/list/table",
          sortables=["val metric"],
          filterables=[
              "name",
              "dataset",
              "problem type",
              "metric",
              "status",
          ],
          searchables=["name", "dataset"],
          numerics=["val metric"],
          tags=["status"],
          progresses=["progress"],
          min_widths=min_widths,
          link_col="name",
          height=height,
          actions=actions_dict,
      )
  
imports: import glob
  import logging
  import os
  import shutil
  import time
  import zipfile
  from pathlib import Path
  from typing import Callable, List, Optional, Set
  import accelerate
  import einops
  import huggingface_hub
  import numpy
  import pandas
  import torch
  import transformers
  import yaml
  from h2o_wave import Q, data, ui
  from sqlitedict import SqliteDict
  from llm_studio.app_utils.config import default_cfg
  from llm_studio.app_utils.hugging_face_utils import get_model_card, publish_model_to_hugging_face
  from llm_studio.app_utils.sections.chat import chat_tab, load_cfg_model_tokenizer
  from llm_studio.app_utils.sections.common import clean_dashboard
  from llm_studio.app_utils.utils import add_model_type, flatten_dict, get_cfg_list_items, get_data_dir, get_download_link, get_experiment_status, get_experiments, get_model_types, get_problem_categories, get_problem_types, get_ui_elements, get_unique_name, hf_repo_friendly_name, parse_ui_elements, remove_model_type, set_env, start_experiment
  from llm_studio.app_utils.wave_utils import busy_dialog, ui_table_from_df, wave_theme
  from llm_studio.python_configs.cfg_checks import check_config_for_errors
  from llm_studio.src.datasets.text_utils import get_tokenizer
  from llm_studio.src.tooltips import tooltips
  from llm_studio.src.utils.config_utils import NON_GENERATION_PROBLEM_TYPES, load_config_py, load_config_yaml, save_config_yaml
  from llm_studio.src.utils.exceptions import LLMResourceException
  from llm_studio.src.utils.export_utils import check_available_space, get_artifact_path_path, get_logs_path, get_model_path, get_predictions_path, save_logs, save_prediction_outputs
  from llm_studio.src.utils.logging_utils import write_flag
  from llm_studio.src.utils.modeling_utils import unwrap_model
  from llm_studio.src.utils.plot_utils import PLOT_ENCODINGS
  from llm_studio.src.utils.utils import add_file_to_zip, kill_child_processes
label_desc: Use image node_id 1 for calling a global function with example usage: get_experiment_table(q, df_viz, predictions, height, actions) and returns: ui_table_from_df