diff --git a/src/crewai/crews/crew_output.py b/src/crewai/crews/crew_output.py index f14badf53..f5c7b2fc7 100644 --- a/src/crewai/crews/crew_output.py +++ b/src/crewai/crews/crew_output.py @@ -1,7 +1,8 @@ import json -from typing import Any, Callable, Dict, Optional, Union, AbstractSet, Mapping +from typing import Any, Callable, Dict, Optional from pydantic import BaseModel, Field +from pydantic.main import IncEx from typing_extensions import Literal from crewai.tasks.output_format import OutputFormat @@ -22,7 +23,7 @@ class CrewOutput(BaseModel): tasks_output: list[TaskOutput] = Field( description="Output of each task", default=[] ) - token_usage: UsageMetrics = Field(description="Processed token summary", default_factory=dict) + token_usage: UsageMetrics = Field(description="Processed token summary", default_factory=lambda: {}) def model_json(self) -> str: """Get the JSON representation of the output.""" @@ -36,8 +37,8 @@ class CrewOutput(BaseModel): self, *, indent: Optional[int] = None, - include: Optional[Union[AbstractSet[int], AbstractSet[str], Mapping[int, Any], Mapping[str, Any]]] = None, - exclude: Optional[Union[AbstractSet[int], AbstractSet[str], Mapping[int, Any], Mapping[str, Any]]] = None, + include: Optional[IncEx] = None, + exclude: Optional[IncEx] = None, context: Optional[Any] = None, by_alias: bool = False, exclude_unset: bool = False, diff --git a/src/crewai/tasks/task_output.py b/src/crewai/tasks/task_output.py index b0fb84c55..fbb458b6c 100644 --- a/src/crewai/tasks/task_output.py +++ b/src/crewai/tasks/task_output.py @@ -1,7 +1,8 @@ import json -from typing import Any, Callable, Dict, Optional, Union, AbstractSet, Mapping +from typing import Any, Callable, Dict, Optional from pydantic import BaseModel, Field, model_validator +from pydantic.main import IncEx from typing_extensions import Literal from crewai.tasks.output_format import OutputFormat @@ -51,8 +52,8 @@ class TaskOutput(BaseModel): self, *, indent: Optional[int] = None, - include: Optional[Union[AbstractSet[int], AbstractSet[str], Mapping[int, Any], Mapping[str, Any]]] = None, - exclude: Optional[Union[AbstractSet[int], AbstractSet[str], Mapping[int, Any], Mapping[str, Any]]] = None, + include: Optional[IncEx] = None, + exclude: Optional[IncEx] = None, context: Optional[Any] = None, by_alias: bool = False, exclude_unset: bool = False,