Working select filters with include and exclude logic

This commit is contained in:
Lyncoln
2026-10-12 22:20:02 -04:00
parent 609c8f1384
commit 587954cd75
13 changed files with 155 additions and 32 deletions
+7
View File
@@ -19,9 +19,16 @@ def buildOperation(definition):
if skipStep(definition, action, outputs):
continue
if hasattr(action, "recursive"):
for item in outputs[action.recursive["source"]]:
#target = outputs[action.recursive["source"]["target"]
outputs, response = buildAction(action, outputs)
#print(outputs["message"])
return outputs
outputs, response = buildAction(action, outputs)
responses.append(response)
#except Exception as error:
#outputs = manageFailure(error, action, outputs)
#print(outputs["message"])
return outputs
Binary file not shown.
+2 -2
View File
@@ -1,5 +1,5 @@
from core.runtime import buildSelect, buildSelect2, buildOutput, buildSave, buildLog
from core.runtime.select import buildSelect3
#select_data = {}
def buildRuntimeAttr(action, outputs, response):
@@ -15,7 +15,7 @@ def buildRuntimeAttr(action, outputs, response):
outputs = buildOutput(response, action, outputs)#, select_data)
if hasattr(action, "select"):
select_data, action, outputs = buildSelect2(action, outputs)
select_data, action, outputs = buildSelect3(action, outputs)
#print("AFTER buildOutput:", type(outputs))
#print("DEBUG buildSave")
#print("outputs type:", type(outputs))
+88 -1
View File
@@ -18,6 +18,7 @@ def buildSelect(response, action, outputs):
return selection, action, outputs
def buildSelect2(action, outputs):
#print(outputs)
select_data = []
@@ -25,10 +26,29 @@ def buildSelect2(action, outputs):
selectmethod = action.select["selectmethod"]
targetkey = action.select["key"]
targetvalue = action.select["value"]
if isinstance(targetvalue, dict):
for resolvekey, resolveval in targetvalue.items():
print(resolvekey)
print(resolveval)
#outputtarget = outputs[resolvekey]
#for thing in resolveval:
outputtarget = outputs[resolvekey][resolveval[0]][resolveval[1]]
print (outputtarget)
targetvalue = outputtarget
#for item in target:
for item in target:
#print (item)
for key, value in item.items():
#if isinstance(targetvalue, dict):
#for resolvekey, resolveval in targetvalue.items():
#print(resolvekey)
#print(resolveval)
#outputtarget = outputs[resolvekey]
#for thing in resolveval:
#outputtarget = outputs[resolvekey][resolveval[0]][resolveval[1]]
#print (outputtarget)
#outputtarget = targetvalue
if selectmethod == "exclude":
if targetkey == key and item[key] != targetvalue:
select_data.append(item)
@@ -37,9 +57,76 @@ def buildSelect2(action, outputs):
if targetkey == key and item[key] == targetvalue:
select_data.append(item)
#print(item)
print(select_data)
outputs[action.select["source"]] = select_data
#print(outputs)
return select_data, action, outputs
#for item in outputs[output_name]:
#for key, value in action.select.include.items():
#if key in item and item[key] == value:
#select_data.append(item)
def buildSelect3(action, outputs):
#print(outputs)
select_data = []
target = outputs[action.select["source"]]
#selectmethod = action.select["selectmethod"]
includekey = action.select["include"]["key"]
includevalue = action.select["include"]["value"]
excludekey = action.select["exclude"]["key"]
excludevalue = action.select["exclude"]["value"]
#if isinstance(targetvalue, dict):
#for resolvekey, resolveval in targetvalue.items():
#print(resolvekey)
#print(resolveval)
#outputtarget = outputs[resolvekey]
#for thing in resolveval:
#outputtarget = outputs[resolvekey][resolveval[0]][resolveval[1]]
#print (outputtarget)
#targetvalue = outputtarget
#for item in target:
#include_match = True
#exclude_match = True
for item in target:
include_match = True
exclude_match = True
if includekey:
include_match = item[includekey] == includevalue
if excludekey:
exclude_match = item[excludekey] != excludevalue
if include_match and exclude_match:
select_data.append(item)
#print (item)
#for key, value in item.items():
#if isinstance(targetvalue, dict):
#for resolvekey, resolveval in targetvalue.items():
#print(resolvekey)
#print(resolveval)
#outputtarget = outputs[resolvekey]
#for thing in resolveval:
#outputtarget = outputs[resolvekey][resolveval[0]][resolveval[1]]
#print (outputtarget)
#outputtarget = targetvalue
#if selectmethod == "exclude":
#if item[excludekey] != excludevalue:# and item[includekey] == includevalue:
#if includekey == key and item[key] == includevalue:
#if item[excludekey] == excludevalue:
#continue
#select_data.append(item)
#if item[includekey] == includevalue:
#if includekey == key and item[key] == includevalue:
#continue
#select_data.append(item)
#if excludekey == key and item[key] != excludevalue:
#select_data.append(item)
#print(item)
#if selectmethod == "include":
#if excludekey == key and item[key] == excludevalue:
#select_data.append(item)
#print(item)
outputs[action.select["source"]] = select_data
print(select_data)
return select_data, action, outputs