File size: 1,677 Bytes
3011029
 
 
 
 
 
 
 
 
59d7f29
 
 
3011029
 
 
 
 
 
 
 
 
 
59d7f29
 
 
3011029
 
59d7f29
 
 
 
3011029
 
59d7f29
 
3011029
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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")
        # get options
        options = retrieve_config_options("Common", dropdown_config)
        options_for_value = retrieve_config_options(value, dropdown_config)
        options.extend(options_for_value)
        # get descriptions
        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