fix: Use pydantic.main.IncEx and fix default_factory types

Co-Authored-By: Joe Moura <joao@crewai.com>
This commit is contained in:
Devin AI
2025-02-09 19:34:53 +00:00
parent 3bf531189f
commit 29106068b7
2 changed files with 9 additions and 7 deletions

View File

@@ -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,

View File

@@ -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,