Severian commited on
Commit
4a87a57
·
verified ·
1 Parent(s): fc7572a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -7
app.py CHANGED
@@ -629,7 +629,7 @@ with gr.Blocks(theme=gr.themes.Soft(primary_hue="teal", secondary_hue="cyan")) a
629
  def update_file_choices(species):
630
  """Update the primary file dropdown based on selected species."""
631
  species_files = df_combined[df_combined["source"] == species]["filepath"].astype(str).tolist()
632
- return gr.Dropdown.update(choices=species_files, value=species_files[0] if species_files else "")
633
 
634
  def update_cross_species_view(species, primary_file, neighbor_file, lens, resolution, wavelength):
635
  if not primary_file:
@@ -720,21 +720,34 @@ with gr.Blocks(theme=gr.themes.Soft(primary_hue="teal", secondary_hue="cyan")) a
720
  neighbor_audio = neighbor_fp if neighbor_row and neighbor_fp and os.path.exists(neighbor_fp) else None
721
 
722
  return (dual_holo_fig, dual_diag_fig, primary_info, neighbor_info,
723
- primary_audio, neighbor_audio,
724
- gr.Dropdown.update(choices=neighbor_choices, value=neighbor_file if neighbor_row else ""))
725
 
726
  # Event handlers
 
 
 
 
 
 
 
 
 
 
 
 
 
 
727
  species_dropdown.change(
728
- update_file_choices,
729
  inputs=[species_dropdown],
730
- outputs=[primary_dropdown]
731
  )
732
 
733
  cross_species_inputs = [species_dropdown, primary_dropdown, neighbor_dropdown,
734
  holo_lens_dropdown, holo_resolution_slider, holo_wavelength_slider]
735
  cross_species_outputs = [dual_holography_plot, dual_diagnostic_plot,
736
  primary_info_html, neighbor_info_html,
737
- primary_audio_out, neighbor_audio_out, neighbor_dropdown]
738
 
739
  for component in cross_species_inputs:
740
  component.change(update_cross_species_view,
@@ -742,7 +755,8 @@ with gr.Blocks(theme=gr.themes.Soft(primary_hue="teal", secondary_hue="cyan")) a
742
  outputs=cross_species_outputs)
743
 
744
  # Initialize on load
745
- demo.load(lambda: update_file_choices("Dog"), outputs=[primary_dropdown])
 
746
  demo.load(update_cross_species_view,
747
  inputs=cross_species_inputs,
748
  outputs=cross_species_outputs)
 
629
  def update_file_choices(species):
630
  """Update the primary file dropdown based on selected species."""
631
  species_files = df_combined[df_combined["source"] == species]["filepath"].astype(str).tolist()
632
+ return species_files
633
 
634
  def update_cross_species_view(species, primary_file, neighbor_file, lens, resolution, wavelength):
635
  if not primary_file:
 
720
  neighbor_audio = neighbor_fp if neighbor_row and neighbor_fp and os.path.exists(neighbor_fp) else None
721
 
722
  return (dual_holo_fig, dual_diag_fig, primary_info, neighbor_info,
723
+ primary_audio, neighbor_audio)
 
724
 
725
  # Event handlers
726
+ def update_dropdowns_on_species_change(species):
727
+ """Update both primary and neighbor dropdowns when species changes."""
728
+ species_files = df_combined[df_combined["source"] == species]["filepath"].astype(str).tolist()
729
+ opposite_species = 'Human' if species == 'Dog' else 'Dog'
730
+ neighbor_files = df_combined[df_combined["source"] == opposite_species]["filepath"].astype(str).tolist()
731
+
732
+ primary_value = species_files[0] if species_files else ""
733
+ neighbor_value = neighbor_files[0] if neighbor_files else ""
734
+
735
+ return (
736
+ gr.Dropdown(choices=species_files, value=primary_value),
737
+ gr.Dropdown(choices=neighbor_files, value=neighbor_value)
738
+ )
739
+
740
  species_dropdown.change(
741
+ update_dropdowns_on_species_change,
742
  inputs=[species_dropdown],
743
+ outputs=[primary_dropdown, neighbor_dropdown]
744
  )
745
 
746
  cross_species_inputs = [species_dropdown, primary_dropdown, neighbor_dropdown,
747
  holo_lens_dropdown, holo_resolution_slider, holo_wavelength_slider]
748
  cross_species_outputs = [dual_holography_plot, dual_diagnostic_plot,
749
  primary_info_html, neighbor_info_html,
750
+ primary_audio_out, neighbor_audio_out]
751
 
752
  for component in cross_species_inputs:
753
  component.change(update_cross_species_view,
 
755
  outputs=cross_species_outputs)
756
 
757
  # Initialize on load
758
+ demo.load(lambda: update_dropdowns_on_species_change("Dog"),
759
+ outputs=[primary_dropdown, neighbor_dropdown])
760
  demo.load(update_cross_species_view,
761
  inputs=cross_species_inputs,
762
  outputs=cross_species_outputs)