fix: resolve CI failures - remove unused imports and fix event bus registration

- Remove unused typing imports from execution_trace.py and execution_trace_collector.py
- Fix event bus registration by removing unregister_handler calls (method doesn't exist)
- Remove storing handler references since register_handler returns None
- Addresses lint and type-checker CI failures

Co-Authored-By: João <joao@crewai.com>
This commit is contained in:
Devin AI
2025-08-03 17:20:37 +00:00
parent 58fb717ab2
commit e4ba3f4c4c
2 changed files with 8 additions and 16 deletions

View File

@@ -1,5 +1,5 @@
from datetime import datetime from datetime import datetime
from typing import Any, Dict, List, Optional, Union from typing import Any, Dict, List, Optional
from pydantic import BaseModel, Field from pydantic import BaseModel, Field
class ExecutionStep(BaseModel): class ExecutionStep(BaseModel):

View File

@@ -1,5 +1,4 @@
from datetime import datetime from datetime import datetime
from typing import Any, Dict, List, Optional
from crewai.crews.execution_trace import ExecutionStep, ExecutionTrace from crewai.crews.execution_trace import ExecutionStep, ExecutionTrace
from crewai.utilities.events.crewai_event_bus import crewai_event_bus from crewai.utilities.events.crewai_event_bus import crewai_event_bus
from crewai.utilities.events.agent_events import ( from crewai.utilities.events.agent_events import (
@@ -22,32 +21,25 @@ class ExecutionTraceCollector:
def __init__(self): def __init__(self):
self.trace = ExecutionTrace() self.trace = ExecutionTrace()
self.is_collecting = False self.is_collecting = False
self._event_handlers = []
def start_collecting(self) -> None: def start_collecting(self) -> None:
"""Start collecting execution events.""" """Start collecting execution events."""
self.is_collecting = True self.is_collecting = True
self.trace = ExecutionTrace(start_time=datetime.now()) self.trace = ExecutionTrace(start_time=datetime.now())
self._event_handlers = [ crewai_event_bus.register_handler(TaskStartedEvent, self._handle_task_started)
crewai_event_bus.register_handler(TaskStartedEvent, self._handle_task_started), crewai_event_bus.register_handler(TaskCompletedEvent, self._handle_task_completed)
crewai_event_bus.register_handler(TaskCompletedEvent, self._handle_task_completed), crewai_event_bus.register_handler(AgentExecutionStartedEvent, self._handle_agent_started)
crewai_event_bus.register_handler(AgentExecutionStartedEvent, self._handle_agent_started), crewai_event_bus.register_handler(AgentExecutionCompletedEvent, self._handle_agent_completed)
crewai_event_bus.register_handler(AgentExecutionCompletedEvent, self._handle_agent_completed), crewai_event_bus.register_handler(AgentLogsExecutionEvent, self._handle_agent_logs)
crewai_event_bus.register_handler(AgentLogsExecutionEvent, self._handle_agent_logs), crewai_event_bus.register_handler(ToolUsageStartedEvent, self._handle_tool_started)
crewai_event_bus.register_handler(ToolUsageStartedEvent, self._handle_tool_started), crewai_event_bus.register_handler(ToolUsageFinishedEvent, self._handle_tool_finished)
crewai_event_bus.register_handler(ToolUsageFinishedEvent, self._handle_tool_finished),
]
def stop_collecting(self) -> ExecutionTrace: def stop_collecting(self) -> ExecutionTrace:
"""Stop collecting and return the execution trace.""" """Stop collecting and return the execution trace."""
self.is_collecting = False self.is_collecting = False
self.trace.end_time = datetime.now() self.trace.end_time = datetime.now()
for handler in self._event_handlers:
crewai_event_bus.unregister_handler(handler)
self._event_handlers.clear()
return self.trace return self.trace