devjas1 commited on
Commit
614423c
·
1 Parent(s): 2c41fa3

(FEAT)(UI): Enhance results display with improved styling and session state management

Browse files

- Standardize theme to dynamically adjust to system setting (light/dark)

- BUG FIXED: 'Clear Results' button now clears all results

Files changed (1) hide show
  1. app.py +22 -9
app.py CHANGED
@@ -146,6 +146,13 @@ div.stExpander > details > summary:hover::after {
146
  content: "RESULTS";
147
  background-color: #16A34A; /* Green is universal for success */
148
 
 
 
 
 
 
 
 
149
  }
150
  .expander-advanced div[data-testid="stExpander"] summary::after {
151
  content: "ADVANCED";
@@ -227,7 +234,7 @@ def init_session_state():
227
  "status_type": "info",
228
  "input_text": None,
229
  "filename": None,
230
- "input_source": None, # "upload" or "sample"
231
  "sample_select": "-- Select Sample --",
232
  "input_mode": "Upload File", # controls which pane is visible
233
  "inference_run_once": False,
@@ -236,8 +243,12 @@ def init_session_state():
236
  "uploader_version": 0,
237
  "current_upload_key": "upload_txt_0",
238
  "active_tab": "Details",
239
- "batch_mode": False # Track if in batch mode
240
  }
 
 
 
 
241
  for k, v in defaults.items():
242
  st.session_state.setdefault(k, v)
243
 
@@ -597,7 +608,6 @@ def reset_ephemeral_state():
597
  st.session_state["uploader_version"] += 1
598
  st.session_state["current_upload_key"] = f"upload_txt_{st.session_state['uploader_version']}"
599
 
600
- st.rerun()
601
 
602
  # --- START: BUG 2 FIX (Callback Function) ---
603
 
@@ -611,11 +621,13 @@ def clear_batch_results():
611
  st.rerun()
612
  # --- END: BUG 2 FIX (Callback Function) ---
613
 
614
- st.rerun()
615
 
616
- # Main app
 
 
617
 
618
 
 
619
  def main():
620
  init_session_state()
621
 
@@ -718,7 +730,8 @@ def main():
718
  if uploaded_files:
719
  # --- START: Bug 1 Fix ---
720
  # Use a dictionary to keep only unique files based on name and size
721
- unique_files = {(file.name, file.size): file for file in uploaded_files}
 
722
  unique_file_list = list(unique_files.values())
723
 
724
  num_uploaded = len(uploaded_files)
@@ -999,11 +1012,11 @@ def main():
999
  # This custom bullet bar logic remains as it is highly specific and valuable
1000
  def create_bullet_bar(probability, width=20, predicted=False):
1001
  filled_count = int(probability * width)
1002
- bar = "" * filled_count + \
1003
- "" * (width - filled_count)
1004
  percentage = f"{probability:.1%}"
1005
  pred_marker = "↩ Predicted" if predicted else ""
1006
- return f"{bar} {percentage} {pred_marker}"
1007
 
1008
  stable_prob, weathered_prob = probs[0], probs[1]
1009
  is_stable_predicted, is_weathered_predicted = (
 
146
  content: "RESULTS";
147
  background-color: #16A34A; /* Green is universal for success */
148
 
149
+ }
150
+ div[data-testid="stExpander"] details {
151
+ content: "RESULTS";
152
+ background-color: var(--primary);
153
+ border-radius: 10px;
154
+ padding: 10px
155
+
156
  }
157
  .expander-advanced div[data-testid="stExpander"] summary::after {
158
  content: "ADVANCED";
 
234
  "status_type": "info",
235
  "input_text": None,
236
  "filename": None,
237
+ "input_source": None, # "upload", "batch" or "sample"
238
  "sample_select": "-- Select Sample --",
239
  "input_mode": "Upload File", # controls which pane is visible
240
  "inference_run_once": False,
 
243
  "uploader_version": 0,
244
  "current_upload_key": "upload_txt_0",
245
  "active_tab": "Details",
246
+ "batch_mode": False,
247
  }
248
+
249
+ if 'uploader_key' not in st.session_state:
250
+ st.session_state.uploader_key = 0
251
+
252
  for k, v in defaults.items():
253
  st.session_state.setdefault(k, v)
254
 
 
608
  st.session_state["uploader_version"] += 1
609
  st.session_state["current_upload_key"] = f"upload_txt_{st.session_state['uploader_version']}"
610
 
 
611
 
612
  # --- START: BUG 2 FIX (Callback Function) ---
613
 
 
621
  st.rerun()
622
  # --- END: BUG 2 FIX (Callback Function) ---
623
 
 
624
 
625
+ def reset_all():
626
+ # Increment the key to force the file uploader to re-render
627
+ st.session_state.uploader_key += 1
628
 
629
 
630
+ # Main app
631
  def main():
632
  init_session_state()
633
 
 
730
  if uploaded_files:
731
  # --- START: Bug 1 Fix ---
732
  # Use a dictionary to keep only unique files based on name and size
733
+ unique_files = {(file.name, file.size)
734
+ : file for file in uploaded_files}
735
  unique_file_list = list(unique_files.values())
736
 
737
  num_uploaded = len(uploaded_files)
 
1012
  # This custom bullet bar logic remains as it is highly specific and valuable
1013
  def create_bullet_bar(probability, width=20, predicted=False):
1014
  filled_count = int(probability * width)
1015
+ bar = "" * filled_count + \
1016
+ "" * (width - filled_count)
1017
  percentage = f"{probability:.1%}"
1018
  pred_marker = "↩ Predicted" if predicted else ""
1019
+ return f"{bar} {percentage} {pred_marker}"
1020
 
1021
  stable_prob, weathered_prob = probs[0], probs[1]
1022
  is_stable_predicted, is_weathered_predicted = (