Move kickoff callbacks to crew's domain

This commit is contained in:
Gui Vieira
2024-11-20 10:06:49 -03:00
parent 0b9092702b
commit 3e003f5e32
6 changed files with 82 additions and 565 deletions

View File

@@ -5,13 +5,13 @@ from crewai import Crew
from crewai.project.utils import memoize
def before_crew(func):
func.is_before_crew = True
def before_kickoff(func):
func.is_before_kickoff = True
return func
def after_crew(func):
func.is_after_crew = True
def after_kickoff(func):
func.is_after_kickoff = True
return func
@@ -109,6 +109,19 @@ def crew(func) -> Callable[..., Crew]:
self.agents = instantiated_agents
self.tasks = instantiated_tasks
return func(self, *args, **kwargs)
crew = func(self, *args, **kwargs)
return wrapper
def callback_wrapper(callback, instance):
def wrapper(*args, **kwargs):
return callback(instance, *args, **kwargs)
return wrapper
for _, callback in self._before_kickoff.items():
crew.before_kickoff_callbacks.append(callback_wrapper(callback, self))
for _, callback in self._after_kickoff.items():
crew.after_kickoff_callbacks.append(callback_wrapper(callback, self))
return crew
return memoize(wrapper)