Files
rmmanager/core/runtime/applyconditions.py
T

58 lines
2.1 KiB
Python

def applyConditions(definition, dictionary, outputs):
if hasattr(definition, "filters"):
for filter in definition.filters:
try:
filtervalue = filter["filtervalue"]
if isinstance(filter["filtervalue"], dict):
filtervalue = outputs[filtervalue["outputs"]]
if filter["operator"] == ">=":
if dictionary.get(filter["filterkey"]) >= int(filtervalue):
print(filter["print"])
return True, filter
if filter["operator"] == "<=":
if dictionary.get(filter["filterkey"]) <= int(filtervalue):
print(filter["print"])
return True, filter
if filter["operator"] == "==":
if dictionary.get(filter["filterkey"]) == filtervalue:
print(filter["print"])
return True, filter
if filter["operator"] == "!=":
if dictionary.get(filter["filterkey"]) != filtervalue:
print(filter["print"])
return True, filter
if filter["operator"] == ">":
if dictionary.get(filter["filterkey"]) > int(filtervalue):
print(filter["print"])
return True, filter
if filter["operator"] == "<":
if dictionary.get(filter["filterkey"]) < int(filtervalue):
print(filter["print"])
return True, filter
if filter["operator"] == "in":
if filtervalue in dictionary:
print(filter["print"])
return True, filter
except KeyError:
print("Value not present")
print(filter)
return True, filter
#continue
#except TypeError:
# print("TypeError")
# return False, None
return False, None