diff --git a/.github/workflows/type-checker.yml b/.github/workflows/type-checker.yml index e2171c53a..e5af4ba9e 100644 --- a/.github/workflows/type-checker.yml +++ b/.github/workflows/type-checker.yml @@ -12,13 +12,13 @@ jobs: strategy: fail-fast: false matrix: - python-version: ['3.10', '3.11', '3.12', '3.13'] + python-version: ["3.10", "3.11", "3.12", "3.13"] steps: - name: Checkout code uses: actions/checkout@v4 with: - fetch-depth: 0 # Fetch all history for proper diff + fetch-depth: 0 # Fetch all history for proper diff - name: Install uv uses: astral-sh/setup-uv@v6 @@ -40,10 +40,10 @@ jobs: # Get the list of changed Python files compared to the base branch echo "Fetching changed files..." git diff --name-only --diff-filter=ACMRT origin/${{ github.base_ref }}...HEAD -- '*.py' > changed_files.txt - + # Filter for files in src/ and tests/ directories grep -E "^(src/|tests/)" changed_files.txt > filtered_changed_files.txt || true - + # Check if there are any changed files if [ -s filtered_changed_files.txt ]; then echo "Changed Python files in src/ and tests/:" diff --git a/pyproject.toml b/pyproject.toml index 20935e77e..8bfd7d678 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -48,7 +48,7 @@ Documentation = "https://docs.crewai.com" Repository = "https://github.com/crewAIInc/crewAI" [project.optional-dependencies] -tools = ["crewai-tools~=0.65.0"] +tools = ["crewai-tools~=0.69.0"] embeddings = [ "tiktoken~=0.8.0" ] diff --git a/src/crewai/__init__.py b/src/crewai/__init__.py index 1a0505889..de819647e 100644 --- a/src/crewai/__init__.py +++ b/src/crewai/__init__.py @@ -1,4 +1,30 @@ import warnings +from typing import Any + + +def _suppress_pydantic_deprecation_warnings() -> None: + """Suppress Pydantic deprecation warnings using targeted monkey patch.""" + original_warn = warnings.warn + + def filtered_warn( + message: Any, + category: type | None = None, + stacklevel: int = 1, + source: Any = None, + ) -> Any: + if ( + category + and hasattr(category, "__module__") + and category.__module__ == "pydantic.warnings" + ): + return None + return original_warn(message, category, stacklevel + 1, source) + + setattr(warnings, "warn", filtered_warn) + + +_suppress_pydantic_deprecation_warnings() + import threading import urllib.request @@ -15,17 +41,10 @@ from crewai.tasks.llm_guardrail import LLMGuardrail from crewai.tasks.task_output import TaskOutput from crewai.telemetry.telemetry import Telemetry -warnings.filterwarnings( - "ignore", - message="Pydantic serializer warnings:", - category=UserWarning, - module="pydantic.main", -) - _telemetry_submitted = False -def _track_install(): +def _track_install() -> None: """Track package installation/first-use via Scarf analytics.""" global _telemetry_submitted @@ -36,7 +55,7 @@ def _track_install(): pixel_url = "https://api.scarf.sh/v2/packages/CrewAI/crewai/docs/00f2dad1-8334-4a39-934e-003b2e1146db" req = urllib.request.Request(pixel_url) - req.add_header('User-Agent', f'CrewAI-Python/{__version__}') + req.add_header("User-Agent", f"CrewAI-Python/{__version__}") with urllib.request.urlopen(req, timeout=2): # nosec B310 _telemetry_submitted = True @@ -45,7 +64,7 @@ def _track_install(): pass -def _track_install_async(): +def _track_install_async() -> None: """Track installation in background thread to avoid blocking imports.""" if not Telemetry._is_telemetry_disabled(): thread = threading.Thread(target=_track_install, daemon=True) @@ -54,7 +73,7 @@ def _track_install_async(): _track_install_async() -__version__ = "0.175.0" +__version__ = "0.177.0" __all__ = [ "Agent", "Crew", diff --git a/src/crewai/cli/templates/crew/pyproject.toml b/src/crewai/cli/templates/crew/pyproject.toml index eff2318f2..d2f8eb5f3 100644 --- a/src/crewai/cli/templates/crew/pyproject.toml +++ b/src/crewai/cli/templates/crew/pyproject.toml @@ -5,7 +5,7 @@ description = "{{name}} using crewAI" authors = [{ name = "Your Name", email = "you@example.com" }] requires-python = ">=3.10,<3.14" dependencies = [ - "crewai[tools]>=0.175.0,<1.0.0" + "crewai[tools]>=0.177.0,<1.0.0" ] [project.scripts] diff --git a/src/crewai/cli/templates/flow/pyproject.toml b/src/crewai/cli/templates/flow/pyproject.toml index be8346df4..44cb11555 100644 --- a/src/crewai/cli/templates/flow/pyproject.toml +++ b/src/crewai/cli/templates/flow/pyproject.toml @@ -5,7 +5,7 @@ description = "{{name}} using crewAI" authors = [{ name = "Your Name", email = "you@example.com" }] requires-python = ">=3.10,<3.14" dependencies = [ - "crewai[tools]>=0.175.0,<1.0.0", + "crewai[tools]>=0.177.0,<1.0.0", ] [project.scripts] diff --git a/src/crewai/cli/templates/tool/pyproject.toml b/src/crewai/cli/templates/tool/pyproject.toml index 9ef7ca24b..216e8c655 100644 --- a/src/crewai/cli/templates/tool/pyproject.toml +++ b/src/crewai/cli/templates/tool/pyproject.toml @@ -5,7 +5,7 @@ description = "Power up your crews with {{folder_name}}" readme = "README.md" requires-python = ">=3.10,<3.14" dependencies = [ - "crewai[tools]>=0.175.0" + "crewai[tools]>=0.177.0" ] [tool.crewai] diff --git a/uv.lock b/uv.lock index dbce02ea5..20a4f0be3 100644 --- a/uv.lock +++ b/uv.lock @@ -800,7 +800,7 @@ requires-dist = [ { name = "blinker", specifier = ">=1.9.0" }, { name = "chromadb", specifier = ">=0.5.23" }, { name = "click", specifier = ">=8.1.7" }, - { name = "crewai-tools", marker = "extra == 'tools'", specifier = "~=0.65.0" }, + { name = "crewai-tools", marker = "extra == 'tools'", specifier = "~=0.69.0" }, { name = "docling", marker = "extra == 'docling'", specifier = ">=2.12.0" }, { name = "instructor", specifier = ">=1.3.3" }, { name = "json-repair", specifier = "==0.25.2" }, @@ -858,7 +858,7 @@ dev = [ [[package]] name = "crewai-tools" -version = "0.65.0" +version = "0.69.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "chromadb" }, @@ -876,9 +876,9 @@ dependencies = [ { name = "stagehand" }, { name = "tiktoken" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/67/ee/43b79458fd84847d091d15b06c3a0e6c4d1dfff9e0ca9dcfbd8ed11a57bd/crewai_tools-0.65.0.tar.gz", hash = "sha256:a3fdb1f8bc819602718beb9aaf8b0c8b8e2dfde5eefe717b2fc0fedb6b9cd35a", size = 1082962, upload-time = "2025-08-27T23:11:37.465Z" } +sdist = { url = "https://files.pythonhosted.org/packages/87/dc/44b83b389c14fee250e822987145dcbad7a4429677a9db450154da7ac99f/crewai_tools-0.69.0.tar.gz", hash = "sha256:cb0baefde691735ce7e142ef7894d21a44b333f21fc4f01b65c27f6ed75fad44", size = 1097437, upload-time = "2025-09-03T22:50:02.302Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d0/c3/973d960a20bfd190236f7fa8e73172555125256326783ce64e8fda8e2966/crewai_tools-0.65.0-py3-none-any.whl", hash = "sha256:5ace69a94654fde408a30fc439ca46747efce52ef201f26f1ba44394a3d58ddf", size = 701309, upload-time = "2025-08-27T23:11:35.641Z" }, + { url = "https://files.pythonhosted.org/packages/5e/56/704d2850a1609b8776f706931d89207544531429d617ab14c5147fe3e388/crewai_tools-0.69.0-py3-none-any.whl", hash = "sha256:6e42c4b549ce1fd7075f3df108517880e3e31eb03b91336031c5a9f1d55410ca", size = 714547, upload-time = "2025-09-03T22:50:00.581Z" }, ] [[package]]