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 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 import BaseModel, Field
from pydantic.main import IncEx
from typing_extensions import Literal from typing_extensions import Literal
from crewai.tasks.output_format import OutputFormat from crewai.tasks.output_format import OutputFormat
@@ -22,7 +23,7 @@ class CrewOutput(BaseModel):
tasks_output: list[TaskOutput] = Field( tasks_output: list[TaskOutput] = Field(
description="Output of each task", default=[] 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: def model_json(self) -> str:
"""Get the JSON representation of the output.""" """Get the JSON representation of the output."""
@@ -36,8 +37,8 @@ class CrewOutput(BaseModel):
self, self,
*, *,
indent: Optional[int] = None, indent: Optional[int] = None,
include: Optional[Union[AbstractSet[int], AbstractSet[str], Mapping[int, Any], Mapping[str, Any]]] = None, include: Optional[IncEx] = None,
exclude: Optional[Union[AbstractSet[int], AbstractSet[str], Mapping[int, Any], Mapping[str, Any]]] = None, exclude: Optional[IncEx] = None,
context: Optional[Any] = None, context: Optional[Any] = None,
by_alias: bool = False, by_alias: bool = False,
exclude_unset: bool = False, exclude_unset: bool = False,

View File

@@ -1,7 +1,8 @@
import json 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 import BaseModel, Field, model_validator
from pydantic.main import IncEx
from typing_extensions import Literal from typing_extensions import Literal
from crewai.tasks.output_format import OutputFormat from crewai.tasks.output_format import OutputFormat
@@ -51,8 +52,8 @@ class TaskOutput(BaseModel):
self, self,
*, *,
indent: Optional[int] = None, indent: Optional[int] = None,
include: Optional[Union[AbstractSet[int], AbstractSet[str], Mapping[int, Any], Mapping[str, Any]]] = None, include: Optional[IncEx] = None,
exclude: Optional[Union[AbstractSet[int], AbstractSet[str], Mapping[int, Any], Mapping[str, Any]]] = None, exclude: Optional[IncEx] = None,
context: Optional[Any] = None, context: Optional[Any] = None,
by_alias: bool = False, by_alias: bool = False,
exclude_unset: bool = False, exclude_unset: bool = False,