62 lines
2.2 KiB
Python
62 lines
2.2 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.get(filtervalue["outputs"])
|
|
if filtervalue is None:
|
|
continue
|
|
|
|
resolvedvalue = dictionary.get(filter["filterkey"])
|
|
|
|
if filter["operator"] == ">=":
|
|
if int(resolvedvalue or 0) >= int(filtervalue):
|
|
print(filter["print"])
|
|
return True, filter
|
|
|
|
if filter["operator"] == "<=":
|
|
if int(resolvedvalue or 0) <= int(filtervalue):
|
|
print(filter["print"])
|
|
return True, filter
|
|
|
|
if filter["operator"] == "==":
|
|
if resolvedvalue == filtervalue:
|
|
print(filter["print"])
|
|
return True, filter
|
|
|
|
if filter["operator"] == "!=":
|
|
if resolvedvalue != filtervalue:
|
|
print(filter["print"])
|
|
return True, filter
|
|
|
|
if filter["operator"] == ">":
|
|
if int(resolvedvalue or 0) > int(filtervalue):
|
|
print(filter["print"])
|
|
return True, filter
|
|
|
|
if filter["operator"] == "<":
|
|
if int(resolvedvalue or 0) < 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(f"Value not present in runtime for filtering during {definition.name}")
|
|
#print(filter)
|
|
return True, filter
|
|
#continue
|
|
|
|
#except TypeError:
|
|
# print("TypeError")
|
|
# return False, None
|
|
|
|
return False, None
|
|
|