File size: 3,252 Bytes
21dae66 a725af0 21dae66 a63231d 21dae66 7b05d65 a725af0 21dae66 a725af0 21dae66 a63231d 21dae66 a63231d a725af0 21dae66 a725af0 21dae66 a63231d 21dae66 a63231d 21dae66 a725af0 a63231d 21dae66 a63231d 21dae66 a725af0 21dae66 a63231d 21dae66 a725af0 21dae66 a63231d a725af0 21dae66 a63231d 21dae66 a725af0 21dae66 a725af0 21dae66 a63231d a725af0 21dae66 a725af0 21dae66 a725af0 21dae66 a725af0 21dae66 a725af0 21dae66 |
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 83 84 85 86 87 88 89 90 |
#### PROCESS FUNCTIONS
def process_circumstance(data):
fields_to_check = ["option_dropdown", "open_field", "extra"]
reformatted = {}
if (
("circumstance_radio" in data.keys())
and ("circumstance" in data.keys())
and ("circumstance_type" in data.keys())
and (data["circumstance_radio"] == "Yes")
):
reformatted["circumstance_radio"] = data["circumstance_radio"]
reformatted["circumstance"] = data["circumstance"]
reformatted["circumstance_type"] = {}
if "type" in data["circumstance_type"]:
reformatted["circumstance_type"]["type"] = data["circumstance_type"]["type"]
for field in fields_to_check:
if not data["circumstance_type"][field + "_label"] == "NA":
val = data[f"circumstance_{field}"]
key = data["circumstance_type"][field + "_label"]
reformatted["circumstance_type"][key] = val
else:
reformatted["circumstance_radio"] = None
reformatted["circumstance"] = None
reformatted["circumstance_type"] = {}
return reformatted
def process_behaviors(data):
behaviors = []
reformatted = {}
if (
("behaviors_radio" in data.keys())
and ("behaviors_type" in data.keys())
and (data["behaviors_radio"] == "Yes")
):
reformatted["behaviors_radio"] = data["behaviors_radio"]
for type in data["behaviors_type"]:
new_behavior = {}
new_behavior["type"] = type
behaviors.append(new_behavior)
reformatted["behaviors_type"] = behaviors
else:
reformatted["behaviors_radio"] = None
reformatted["behaviors_type"] = []
return reformatted
def process_physical(data):
body_parts = ["beak", "body", "legs", "feathers/wings/tail", "head incl. eyes"]
body_parts_search = ["beak", "body", "legs", "feathers", "head"]
anomalies = []
reformatted = {}
if (
("physical_radio" in data.keys())
and (data["physical_radio"] == "Yes")
and any("type_" in key for key in data.keys())
and any("anomaly_" in key for key in data.keys())
):
reformatted["physical_radio"] = data["physical_radio"]
for b, body_part in enumerate(body_parts_search):
anomaly = {}
for key, val in data.items():
if "type_" + body_part in key:
anomaly["type"] = body_parts[b]
elif "anomaly_" + body_part in key:
anomaly["anomaly_type"] = val
if anomaly:
anomalies.append(anomaly)
reformatted["physical_anomalies_type"] = anomalies
else:
reformatted["physical_radio"] = None
reformatted["physical_anomalies_type"] = []
return reformatted
def process_followup(data):
followup_events = []
for key, val in data.items():
followup_event = {}
type = key.split("followup")[-1]
option = type.split(" ")[-1]
followup_event["type"] = type.strip()
followup_event[option.strip()] = val
followup_events.append(followup_event)
reformatted = {}
reformatted["follow_up_events"] = followup_events
return reformatted
|