|
import gradio as gr |
|
from config_utils import get_custom_config_dropdowns |
|
from dropdowns_conditions import retrieve_config_options |
|
|
|
|
|
|
|
def get_options_description(value): |
|
dropdown_config = get_custom_config_dropdowns("/assets/config/config_checkbox_physical.json") |
|
|
|
options = retrieve_config_options("Common", dropdown_config) |
|
options_for_value = retrieve_config_options(value, dropdown_config) |
|
options.extend(options_for_value) |
|
|
|
descriptions = [] |
|
for key, sub_dict in dropdown_config.items(): |
|
if key==value or key=="Common": |
|
for _, option_dict in sub_dict.items(): |
|
for description_tag, description in option_dict.items(): |
|
if "Description"==description_tag: |
|
descriptions.append(description) |
|
return options, descriptions |
|
|
|
def checkbox(body_part, section): |
|
options, descriptions = get_options_description(body_part) |
|
descriptions_info = "".join([f"\t{option}: {description}\n" for option, description in zip(options, descriptions)]) |
|
checkbox = gr.CheckboxGroup(options, |
|
label=f"Physical changes observed on {body_part}:", |
|
visible=True, |
|
interactive=True, |
|
elem_id=section) |
|
text = gr.Textbox(descriptions_info, |
|
label = "Info", |
|
interactive=False, |
|
visible=True, |
|
elem_id=section) |
|
return checkbox, text |