fix: use json_schema_extra instead of deprecated Field extra args (#417)

This commit is contained in:
Gabe Milani
2025-08-14 18:52:56 -03:00
committed by GitHub
parent 99e174e575
commit 16d613488b
2 changed files with 20 additions and 5 deletions

View File

@@ -1,7 +1,8 @@
from typing import Any, Optional, Type, List
from pydantic import BaseModel, Field
from crewai.tools import BaseTool, EnvVar
import os
from typing import Any, List, Optional, Type
from crewai.tools import BaseTool, EnvVar
from pydantic import BaseModel, Field
try:
from exa_py import Exa
@@ -38,10 +39,14 @@ class EXASearchTool(BaseTool):
type: Optional[str] = "auto"
package_dependencies: List[str] = ["exa_py"]
api_key: Optional[str] = Field(
default_factory=lambda: os.getenv("EXA_API_KEY"), description="API key for Exa services", required=False
default_factory=lambda: os.getenv("EXA_API_KEY"),
description="API key for Exa services",
json_schema_extra={"required": False},
)
env_vars: List[EnvVar] = [
EnvVar(name="EXA_API_KEY", description="API key for Exa services", required=False),
EnvVar(
name="EXA_API_KEY", description="API key for Exa services", required=False
),
]
def __init__(

View File

@@ -0,0 +1,10 @@
import pytest
from pydantic.warnings import PydanticDeprecatedSince20
@pytest.mark.filterwarnings("error", category=PydanticDeprecatedSince20)
def test_import_tools_without_pydantic_deprecation_warnings():
# This test is to ensure that the import of crewai_tools does not raise any Pydantic deprecation warnings.
import crewai_tools
assert crewai_tools