rm forward_message

This commit is contained in:
yzlin 2024-04-25 12:00:32 +08:00
parent f621186c2e
commit e39f7ff0b1
8 changed files with 26 additions and 65 deletions

View file

@ -348,6 +348,7 @@ class Task(BaseModel):
result: str = ""
is_success: bool = False
is_finished: bool = False
assignee: str = ""
def reset(self):
self.code = ""
@ -489,7 +490,11 @@ class Plan(BaseModel):
Returns:
None
"""
assert not self.has_task_id(new_task.task_id), "Task already in current plan, use replace_task instead"
# assert not self.has_task_id(new_task.task_id), "Task already in current plan, use replace_task instead"
if self.has_task_id(new_task.task_id):
logger.warning(
"Task already in current plan, should use replace_task instead. Overwriting the existing task."
)
assert all(
[self.has_task_id(dep_id) for dep_id in new_task.dependent_task_ids]
@ -504,6 +509,10 @@ class Plan(BaseModel):
return task_id in self.task_map
def _update_current_task(self):
self.tasks = self._topological_sort(self.tasks)
# Update the task map for quick access to tasks by ID
self.task_map = {task.task_id: task for task in self.tasks}
current_task_id = ""
for task in self.tasks:
if not task.is_finished:
@ -534,6 +543,10 @@ class Plan(BaseModel):
self.current_task.is_finished = True
self._update_current_task() # set to next task
def is_plan_finished(self) -> bool:
"""Check if all tasks are finished"""
return all(task.is_finished for task in self.tasks)
def get_finished_tasks(self) -> list[Task]:
"""return all finished tasks in correct linearized order