mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-28 09:38:17 +00:00
refactor: update the get_crew_instance return type
This commit is contained in:
@@ -309,35 +309,35 @@ def get_crews(crew_path: str = "crew.py", require: bool = False) -> list[Crew]:
|
|||||||
return crew_instances
|
return crew_instances
|
||||||
|
|
||||||
|
|
||||||
def get_crew_instance(module_attr) -> tuple[bool, Crew | None]:
|
def get_crew_instance(module_attr) -> Crew | None:
|
||||||
if (
|
if (
|
||||||
callable(module_attr)
|
callable(module_attr)
|
||||||
and hasattr(module_attr, "is_crew_class")
|
and hasattr(module_attr, "is_crew_class")
|
||||||
and module_attr.is_crew_class
|
and module_attr.is_crew_class
|
||||||
):
|
):
|
||||||
return True, module_attr().crew()
|
return module_attr().crew()
|
||||||
if (ismethod(module_attr) or isfunction(module_attr)) and get_type_hints(
|
if (ismethod(module_attr) or isfunction(module_attr)) and get_type_hints(
|
||||||
module_attr
|
module_attr
|
||||||
).get("return") is Crew:
|
).get("return") is Crew:
|
||||||
return True, module_attr()
|
return module_attr()
|
||||||
elif isinstance(module_attr, Crew):
|
elif isinstance(module_attr, Crew):
|
||||||
return True, module_attr
|
return module_attr
|
||||||
else:
|
else:
|
||||||
return False, None
|
return None
|
||||||
|
|
||||||
|
|
||||||
def fetch_crews(module_attr) -> list[Crew]:
|
def fetch_crews(module_attr) -> list[Crew]:
|
||||||
crew_instances: list[Crew] = []
|
crew_instances: list[Crew] = []
|
||||||
is_crew, crew_instance = get_crew_instance(module_attr)
|
crew_instance = get_crew_instance(module_attr)
|
||||||
|
|
||||||
if is_crew and crew_instance:
|
if crew_instance:
|
||||||
crew_instances.append(crew_instance)
|
crew_instances.append(crew_instance)
|
||||||
|
|
||||||
if isinstance(module_attr, type) and issubclass(module_attr, Flow):
|
if isinstance(module_attr, type) and issubclass(module_attr, Flow):
|
||||||
instance = module_attr()
|
instance = module_attr()
|
||||||
for attr_name in dir(instance):
|
for attr_name in dir(instance):
|
||||||
attr = getattr(instance, attr_name)
|
attr = getattr(instance, attr_name)
|
||||||
is_crew, crew_instance = get_crew_instance(attr)
|
crew_instance = get_crew_instance(attr)
|
||||||
if is_crew and crew_instance:
|
if crew_instance:
|
||||||
crew_instances.append(crew_instance)
|
crew_instances.append(crew_instance)
|
||||||
return crew_instances
|
return crew_instances
|
||||||
|
|||||||
Reference in New Issue
Block a user