Spaces:
Running
Running
Update app.py
Browse files
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
|
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 |
-
|
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
|
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:
|
|
|
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)
|