refactor(dag): Audit and cleanup dag_engine.py
This commit is contained in:
+10
-18
@@ -61,6 +61,14 @@ class TrackDAG:
|
||||
changed = True
|
||||
break
|
||||
|
||||
def is_ticket_ready(self, ticket: Ticket) -> bool:
|
||||
"""Returns True if all dependencies of the ticket are completed."""
|
||||
for dep_id in ticket.depends_on:
|
||||
dep = self.ticket_map.get(dep_id)
|
||||
if not dep or dep.status != 'completed':
|
||||
return False
|
||||
return True
|
||||
|
||||
def get_ready_tasks(self) -> List[Ticket]:
|
||||
"""
|
||||
Returns a list of tickets that are in 'todo' status and whose dependencies are all 'completed'.
|
||||
@@ -69,15 +77,7 @@ class TrackDAG:
|
||||
"""
|
||||
ready = []
|
||||
for ticket in self.tickets:
|
||||
if ticket.status == 'todo':
|
||||
# Check if all dependencies exist and are completed
|
||||
all_done = True
|
||||
for dep_id in ticket.depends_on:
|
||||
dep = self.ticket_map.get(dep_id)
|
||||
if not dep or dep.status != 'completed':
|
||||
all_done = False
|
||||
break
|
||||
if all_done:
|
||||
if ticket.status == 'todo' and self.is_ticket_ready(ticket):
|
||||
ready.append(ticket)
|
||||
return ready
|
||||
|
||||
@@ -172,15 +172,7 @@ class ExecutionEngine:
|
||||
task_id: The ID of the task to approve.
|
||||
"""
|
||||
ticket = self.dag.ticket_map.get(task_id)
|
||||
if ticket and ticket.status == "todo":
|
||||
# Check if dependencies are met first
|
||||
all_done = True
|
||||
for dep_id in ticket.depends_on:
|
||||
dep = self.dag.ticket_map.get(dep_id)
|
||||
if not dep or dep.status != "completed":
|
||||
all_done = False
|
||||
break
|
||||
if all_done:
|
||||
if ticket and ticket.status == "todo" and self.dag.is_ticket_ready(ticket):
|
||||
ticket.status = "in_progress"
|
||||
|
||||
def update_task_status(self, task_id: str, status: str) -> None:
|
||||
|
||||
Reference in New Issue
Block a user