Files
rmmanager/core/runtime/applyconditions.py
T

59 lines
2.4 KiB
Python

def applyConditions(definition, dictionary, outputs):
if hasattr(definition, "filters"):
#print("DEBUG DICTIONARY PASS")
#print(dictionary)
for filter in definition.filters:
#print(filter)
try:
if isinstance(filter["filtervalue"], dict):
#print("DEBUGGING INT ERROR")
#print(filter["filtervalue"])
resolvedoutput = outputs[filter["filtervalue"]["outputs"]]
#print(resolvedoutput)
#filter["filtervalue"] = outputs[filter["filtervalue"]["outputs"]]
#print(outputs[filter["filtervalue"]["outputs"]])
filter["filtervalue"] = resolvedoutput
if filter["operator"] == ">=":
if dictionary.get(filter["filterkey"]) >= filter["filtervalue"]:
print(filter["print"])
return True, filter
if filter["operator"] == "<=":
if dictionary.get(filter["filterkey"]) <= filter["filtervalue"]:
print(filter["print"])
return True, filter
if filter["operator"] == "==":
if dictionary.get(filter["filterkey"]) == filter["filtervalue"]:
print(filter["print"])
return True, filter
if filter["operator"] == "!=":
if dictionary.get(filter["filterkey"]) != filter["filtervalue"]:
print(filter["print"])
return True, filter
if filter["operator"] == ">":
if dictionary.get(filter["filterkey"]) > filter["filtervalue"]:
print(filter["print"])
return True, filter
if filter["operator"] == "<":
if dictionary.get(filter["filterkey"]) < filter["filtervalue"]:
print(filter["print"])
return True, filter
if filter["operator"] == "in":
if filter["filtervalue"] in dictionary:
print(filter["print"])
return True, filter
except KeyError:
print("Recording last unread for future checks")
continue
return False, None