Udated runtime contract to stop doing unnecessary imports and introduced dedicated process registry. Confirmed working.

This commit is contained in:
Lyncoln
2026-10-29 15:44:45 -04:00
parent c66d139cca
commit 1a3caa1022
5 changed files with 60 additions and 61 deletions
+17 -16
View File
@@ -5,7 +5,7 @@ from rich.console import Console
from core.runtime.managefailure import manageFailure
from core.runtime.stopsignals import checkDependency
from core.execution.processregistry import registerProcess
from core.execution import processregistry
from core.console import console
outputs = {}
@@ -16,7 +16,8 @@ def buildOperation(definition, outputs):
from core.execution.executioncontract import executeContract
actions = definition.actions
registerProcess(definition, outputs)
currentOp = processregistry.registerProcess(definition)
responses = []
if getattr(definition, "track", False):
@@ -27,44 +28,44 @@ def buildOperation(definition, outputs):
)
for action in actions:
processregistry.registeredOp = currentOp
stop = checkDependency(action, outputs, definition)
stop = checkDependency(action)
if stop:
continue
if action.kind == "action":
outputs["processes"][definition.name][action.name] = {}
currentOp[action.name] = {}
response = executeContract(action, outputs, definition)
response = executeContract(action, outputs)
responses.append(response)
if action.kind == "action":
outputs["processes"][definition.name][action.name]["response"] = response
currentOp[action.name]["response"] = response
##Append completed process to process registry
outputs["processes"][definition.name]["completed"].append(action.alias)
if action.alias in currentOp["stopsignals"]:
continue
currentOp["completed"].append(action.alias)
#Temporarily disabled manageFailure functions
#except Exception as error:
#outputs = manageFailure(error, action, outputs)
#Print completion status after runtime processes
if process_log:
stopsignal_count = len(outputs["processes"][definition.name]["stopsignals"])
completed_count = len(outputs["processes"][definition.name]["completed"])
completed_count = len(currentOp["completed"])
if completed_count == 1 and stopsignal_count == 1:
if completed_count == 0:
logging.info(f"{definition.name} bypassed")
else:
logging.info(f"{definition.name} completed")
#For debugging purposes only
process_registry_logs = False
if process_registry_logs:
pprint.pprint(outputs["processes"])
import pprint
pprint.pprint(processregistry.processes)
return responses
+11 -9
View File
@@ -1,12 +1,14 @@
def registerProcess(module, outputs):
if not "processes" in outputs:
outputs["processes"] = {}
processes = {}
registeredOp = {}
if not module.name in outputs["processes"]:
outputs["processes"][module.name] = {}
def registerProcess(module):
global registeredOp
#outputs["processes"][module.name] = {}
outputs["processes"][module.name]["stopsignals"] = []
outputs["processes"][module.name]["completed"] = []
processes[module.name] = {}
return
registeredOp = processes[module.name]
processes[module.name]["stopsignals"] = []
processes[module.name]["completed"] = []
return registeredOp
+18 -24
View File
@@ -2,7 +2,7 @@ import logging
import os
from core.runtime.stopsignals import checkDependency
from core.execution.processregistry import registerProcess
from core.execution import processregistry
from rich.progress import track
from core.console import console
@@ -10,8 +10,6 @@ def buildRecursive(definition, outputs):
process_log = True
recursive_log = os.environ.get("LOGS_RECURSIVE", "false").lower() == "true"
#print(outputs[definition.recursiveset["source"]])
source = outputs.get(definition.recursiveset["source"])
if source is None or source == []:
@@ -19,7 +17,7 @@ def buildRecursive(definition, outputs):
logging.debug(f"No items available in {source} for {definition.name}")
return outputs, []
registerProcess(definition, outputs)
currentOp = processregistry.registerProcess(definition)
responses = []
from core.execution.executioncontract import executeContract
@@ -32,7 +30,6 @@ def buildRecursive(definition, outputs):
reverse = definition.recursiveset.get("reverse", False)
if reverse:
#print("reversing")
items = reversed(items)
for item in track(
@@ -46,37 +43,28 @@ def buildRecursive(definition, outputs):
outputs["stopsignals"] = []
for job in recursiveset:
processregistry.registeredOp = currentOp
stop = checkDependency(job, outputs, definition)
#print(f"STOP SIGNAL DEBUGGING during {job.name}")
#print(outputs["stopsignals"])
#print(stop)
stop = checkDependency(job)
if stop:
#outputs["processes"][definition.name]["stopsignals"].append(job.alias)
#print("STOP SIGNAL DETECTED")
#print(f"Stopping {job.name} due to stop signal")
continue
#print(f"RECURSIVE DEBUG DURING {job.name}")
#print(item)
#outputs, response = buildAction(job, outputs)
if job.kind == "action":
outputs["processes"][definition.name][job.name] = {}
currentOp[job.name] = {}
response = executeContract(job, outputs, definition)
response = executeContract(job, outputs)
responses.append(response)
if job.kind == "action":
outputs["processes"][definition.name][job.name]["response"] = response
outputs["processes"][definition.name]["completed"].append(job.alias)
if job.kind == "action":
currentOp[job.name]["response"] = response
currentOp["completed"].append(job.alias)
if process_log:
stopsignal_count = len(outputs["processes"][definition.name]["stopsignals"])
completed_count = len(outputs["processes"][definition.name]["completed"])
completed_count = len(currentOp["completed"])
if completed_count == 1 and stopsignal_count == 1:
if completed_count == 0:
logging.info(f"{definition.name} bypassed")
else:
logging.info(f"{definition.name} completed")
@@ -88,4 +76,10 @@ def buildRecursive(definition, outputs):
outputs.pop("stopsignals", None)
process_registry_logs = False
if process_registry_logs:
import pprint
pprint.pprint(processregistry.processes)
return responses