INNER CODE UNIT · Python
_validate_execution_policy
WMAL/kodachios · Kodachi-OS-10-stable/open/dock/lib/kodachi_direct.py:277
def _validate_execution_policy(operation, bindings, identity):
policy = operation.get("executionPolicy")
if not isinstance(policy, dict):
raise DirectContractError(f"{identity}: executionPolicy is missing")
step_policy = policy.get("stepPolicy")
expected_policy = (
"profile" if len(bindings) == 1 and bindings[0].get("profile")
else "single" if len(bindings) == 1
else "direct-sequence"
)
if step_policy != expected_policy:
raise DirectContractError(
f"{identity}: execution policy differs from its binding shape")
steps = policy.get("orderedSteps")
if (not isinstance(steps, list)
or (not steps and step_policy != "profile")):
raise DirectContractError(f"{identity}: ordered execution steps are missing")
for step in steps: