from arcaflow_plugin_sdk import schema
[docs]
def step_outputs(t: schema.StepSchema):
"""
This function takes a schema step and creates a JSON schema object from the output parameters.
:return: the JSON schema represented as a dict.
"""
result = {
"$id": t.id,
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": t.display.name + " outputs",
"description": t.display.description,
"oneof": [],
"$defs": {},
}
for output_id in list(t.outputs.keys()):
output_data = t.outputs[output_id].to_jsonschema()
for k, v in output_data["$defs"].items():
result["$defs"][k] = v
del output_data["$defs"]
result["oneof"].append(
{
"output_id": {"type": "string", "const": output_id},
"output_data": output_data,
}
)
return result