pse2_ff/project/backend/validate-service/validate_logic.py

47 lines
1.5 KiB
Python

from typing import Dict, List
def validate_entities(entities):
result = []
reduced_kpi: Dict[str, List[Dict[str, str | int]]] = {}
for item in entities:
label = item["label"]
if label not in reduced_kpi:
reduced_kpi[label] = []
reduced_kpi[label].append(item)
for item in reduced_kpi.items():
if item[0] == "FONDSNAME":
result.extend(item[1])
continue
elif item[0] == "DATUM":
result.extend(item[1])
continue
elif item[0] == "FONDSMANAGER":
result.extend(item[1])
continue
validated = False
for entity in item[1]:
if entity["status"] == "validated":
validated = True
if validated:
item_list = [x for x in item[1] if x["status"] == "validated"]
result.extend(item_list)
else:
result.extend(item[1])
return result
if __name__ == "__main__":
entities = [
{"label": "PERSON", "entity": "John Doe", "status": "validated"},
{"label": "PERSON", "entity": "Exxeta", "status": "invalid"},
{"label": "ORG", "entity": "Google", "status": "invalid"},
{"label": "FONDSNAME", "entity": "Microsoft", "status": "validated"},
{"label": "FONDSNAME", "entity": "Amazon", "status": "invalid"},
{"label": "FONDSNAME", "entity": "Apple", "status": "invalid"}
]
print(validate_entities(entities))