in microservices/validation_service/src/utils/validation.py [0:0]
def get_scoring(data, merge_query, documentlabel, entity):
'''
Fire the Rules on BQ table and calculate the Validation Scores
input:
data : Rules dict
merge_query : the addtional query part with case id and uid appended
documentlabel: Document type
output:
validation score
'''
l2 = []
validation_score = 0
validation_rule = data.get(documentlabel)
assert validation_rule, f"Unable to find validation rule for document type: {documentlabel}"
for i in data[documentlabel]:
query = data[documentlabel][i] + merge_query
query = query.replace("project_table", VALIDATION_TABLE)
dict1 = get_individual_dict(query)
try:
query_results = bigquery_client.query((query))
df = query_results.to_dataframe()
except Exception as e: # pylint: disable=broad-except
Logger.error(e)
df = pd.DataFrame()
df = df.drop_duplicates()
validation_score = validation_score + len(df)
for key in dict1.copy():
dict1[key] = len(df)
l2.append(dict1)
validation_score = validation_score / len(data[documentlabel])
final_dict = get_final_scores(l2, entity)
return validation_score, final_dict