Fix run recipe: optional fields in RunStatus, list->dict nodes
- Made recipe and inputs optional in RunStatus model - Convert DAG nodes from list format to dict format when running recipes Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -220,6 +220,16 @@ async def run_recipe(
|
|||||||
dag_copy = json.loads(json.dumps(recipe_dag)) # Deep copy
|
dag_copy = json.loads(json.dumps(recipe_dag)) # Deep copy
|
||||||
nodes = dag_copy.get("nodes", {})
|
nodes = dag_copy.get("nodes", {})
|
||||||
|
|
||||||
|
# Convert nodes from list to dict if needed
|
||||||
|
if isinstance(nodes, list):
|
||||||
|
nodes_dict = {}
|
||||||
|
for node in nodes:
|
||||||
|
node_id = node.get("id")
|
||||||
|
if node_id:
|
||||||
|
nodes_dict[node_id] = node
|
||||||
|
nodes = nodes_dict
|
||||||
|
dag_copy["nodes"] = nodes
|
||||||
|
|
||||||
# Map input names to content hashes
|
# Map input names to content hashes
|
||||||
for input_name, content_hash in req.inputs.items():
|
for input_name, content_hash in req.inputs.items():
|
||||||
if input_name in nodes:
|
if input_name in nodes:
|
||||||
|
|||||||
@@ -41,8 +41,8 @@ class RunRequest(BaseModel):
|
|||||||
class RunStatus(BaseModel):
|
class RunStatus(BaseModel):
|
||||||
run_id: str
|
run_id: str
|
||||||
status: str
|
status: str
|
||||||
recipe: str
|
recipe: Optional[str] = None
|
||||||
inputs: List[str]
|
inputs: Optional[List[str]] = None
|
||||||
output_name: Optional[str] = None
|
output_name: Optional[str] = None
|
||||||
created_at: Optional[str] = None
|
created_at: Optional[str] = None
|
||||||
completed_at: Optional[str] = None
|
completed_at: Optional[str] = None
|
||||||
|
|||||||
Reference in New Issue
Block a user