File size: 4,225 Bytes
fc85e7c 3806abd f19bc2d fc85e7c ec819d9 fc85e7c 3806abd fc85e7c ec819d9 fc85e7c 3806abd fc85e7c 3806abd fc85e7c 3806abd fc85e7c 3806abd fc85e7c 3806abd fc85e7c 3806abd fc85e7c 3806abd fc85e7c 3806abd fc85e7c 3806abd fc85e7c 3806abd fc85e7c 3806abd fc85e7c 3806abd fc85e7c 3806abd fc85e7c 3806abd fc85e7c f19bc2d cf0242a |
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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
import gradio as gr
from utils_config import get_custom_config_dropdowns
from utils_checkbox import create_checkbox
from utils_json import add_data_to_individual
#---------------------------------------------------------
def get_body_parts():
dropdown_config = get_custom_config_dropdowns("config_checkbox_physical.json")
return list(dropdown_config.keys())
def retrieve_config_options(label, dropdown_config):
options = list(dropdown_config[label].keys())
options = [option.title() for option in options]
return options
def get_options_description(value):
dropdown_config = get_custom_config_dropdowns("config_checkbox_physical.json")
# get options
options_common = retrieve_config_options("Common", dropdown_config)
options_for_value = retrieve_config_options(value, dropdown_config)
options_common.extend(options_for_value)
options = options_common
# 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 create_checkbox_beak(section, label_checkbox, visible):
body_part="Beak"
options, descriptions = get_options_description(body_part)
return create_checkbox(body_part, section, label_checkbox, visible, options, descriptions)
def create_checkbox_body(section, label_checkbox, visible):
body_part="Body"
options, descriptions = get_options_description(body_part)
return create_checkbox(body_part, section, label_checkbox, visible, options, descriptions)
def create_checkbox_feathers(section, label_checkbox, visible):
body_part="Feathers/Wings/Tail"
options, descriptions = get_options_description(body_part)
return create_checkbox(body_part, section, label_checkbox, visible, options, descriptions)
def create_checkbox_head(section, label_checkbox, visible):
body_part="Head incl. eyes"
options, descriptions = get_options_description(body_part)
return create_checkbox(body_part, section, label_checkbox, visible, options, descriptions)
def create_checkbox_legs(section, label_checkbox, visible):
body_part="Legs"
options, descriptions = get_options_description(body_part)
return create_checkbox(body_part, section, label_checkbox, visible, options, descriptions)
#---------------------------------------------------------
def process_body_parts(section, matched_box):
#take all except "Common"
body_parts = get_body_parts()
body_parts = body_parts[1:]
label_checkbox = "Physical changes to "
visibles = [True if matched_box==body_part else False for body_part in body_parts ]
checkbox_beak, text_beak = create_checkbox_beak(section, label_checkbox, visibles[0])
checkbox_body, text_body = create_checkbox_body(section, label_checkbox, visibles[1])
checkbox_feathers, text_feathers = create_checkbox_feathers(section, label_checkbox, visibles[2])
checkbox_head, text_head = create_checkbox_head(section, label_checkbox, visibles[3])
checkbox_legs, text_legs = create_checkbox_legs(section, label_checkbox, visibles[4])
return checkbox_beak, text_beak, checkbox_body, text_body, checkbox_feathers, text_feathers, checkbox_head, text_head, checkbox_legs, text_legs
#---------------------------------------------------------
def on_select_body_part(body_part_checkbox, body_part):
add_data_to_individual("physical_changes_" + body_part, body_part_checkbox)
#---------------------------------------------------------
def hide_physical():
checkbox_beak, text_beak, checkbox_body, text_body, checkbox_feathers, text_feathers, checkbox_head, text_head, checkbox_legs, text_legs = process_body_parts("wounded", "None")
return checkbox_beak, text_beak, checkbox_body, text_body, checkbox_feathers, text_feathers, checkbox_head, text_head, checkbox_legs, text_legs
|