GradCAMPlusPlus_SkinLesion / src /models /metadata_builder.py
wyctorfogos's picture
Deploy Space
961cf0c
Raw
History Blame Contribute Delete
945 Bytes
from .metadata_schema import PAD_SCHEMA
from .metadata_groups import METADATA_GROUPS
def bool_to_str(v):
if v is None:
return ""
return "True" if v else "False"
def build_metadata_csv(values_dict, enabled_groups):
# inicia vazio
data = {k: "" for k in PAD_SCHEMA}
# campos sempre presentes
data["patient_id"] = "PAT_DEMO"
data["lesion_id"] = "000"
data["img_id"] = "demo.png"
# descobrir quais colunas estão habilitadas
enabled_columns = set()
for group in enabled_groups:
enabled_columns.update(METADATA_GROUPS[group])
# preencher apenas se grupo ativo
for key, value in values_dict.items():
if key not in enabled_columns:
continue
if isinstance(value, bool):
data[key] = bool_to_str(value)
else:
data[key] = "" if value is None else str(value)
return ",".join(str(data[col]) for col in PAD_SCHEMA)