diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml
index 33a24b1c7..3e0ae7f73 100644
--- a/.github/workflows/linter.yml
+++ b/.github/workflows/linter.yml
@@ -49,13 +49,13 @@ jobs:
echo "$changed_files" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- - name: Run Ruff on Changed Files
- if: ${{ steps.changed-files.outputs.files != '' }}
- run: |
- echo "${{ steps.changed-files.outputs.files }}" \
- | tr ' ' '\n' \
- | grep -v 'src/crewai/cli/templates/' \
- | xargs -I{} uv run ruff check "{}"
+ # - name: Run Ruff on Changed Files
+ # if: ${{ steps.changed-files.outputs.files != '' }}
+ # run: |
+ # echo "${{ steps.changed-files.outputs.files }}" \
+ # | tr ' ' '\n' \
+ # | grep -v 'src/crewai/cli/templates/' \
+ # | xargs -I{} uv run ruff check "{}"
- name: Save uv caches
if: steps.cache-restore.outputs.cache-hit != 'true'
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index a1b864305..18bd51605 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -56,13 +56,13 @@ jobs:
- name: Run tests (group ${{ matrix.group }} of 8)
run: |
PYTHON_VERSION_SAFE=$(echo "${{ matrix.python-version }}" | tr '.' '_')
- DURATION_FILE=".test_durations_py${PYTHON_VERSION_SAFE}"
-
+ DURATION_FILE="../../.test_durations_py${PYTHON_VERSION_SAFE}"
+
# Temporarily always skip cached durations to fix test splitting
# When durations don't match, pytest-split runs duplicate tests instead of splitting
echo "Using even test splitting (duration cache disabled until fix merged)"
DURATIONS_ARG=""
-
+
# Original logic (disabled temporarily):
# if [ ! -f "$DURATION_FILE" ]; then
# echo "No cached durations found, tests will be split evenly"
@@ -74,8 +74,8 @@ jobs:
# echo "No test changes detected, using cached test durations for optimal splitting"
# DURATIONS_ARG="--durations-path=${DURATION_FILE}"
# fi
-
- uv run pytest \
+
+ cd lib/crewai && uv run pytest \
--block-network \
--timeout=30 \
-vv \
diff --git a/.gitignore b/.gitignore
index 1e4e7bf6c..adebfb42c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,7 +2,6 @@
.pytest_cache
__pycache__
dist/
-lib/
.env
assets/*
.idea
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index a2931167e..eae818e66 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -6,14 +6,16 @@ repos:
entry: uv run ruff check
language: system
types: [python]
+ exclude: ^lib/crewai/
- id: ruff-format
name: ruff-format
entry: uv run ruff format
language: system
types: [python]
+ exclude: ^lib/crewai/
- id: mypy
name: mypy
entry: uv run mypy
language: system
types: [python]
- exclude: ^tests/
+ exclude: ^lib/crewai/
diff --git a/lib/crewai/.python-version b/lib/crewai/.python-version
new file mode 100644
index 000000000..e4fba2183
--- /dev/null
+++ b/lib/crewai/.python-version
@@ -0,0 +1 @@
+3.12
diff --git a/src/crewai/agents/agent_adapters/__init__.py b/lib/crewai/README.md
similarity index 100%
rename from src/crewai/agents/agent_adapters/__init__.py
rename to lib/crewai/README.md
diff --git a/lib/crewai/pyproject.toml b/lib/crewai/pyproject.toml
new file mode 100644
index 000000000..feab01bbf
--- /dev/null
+++ b/lib/crewai/pyproject.toml
@@ -0,0 +1,119 @@
+[project]
+name = "crewai"
+dynamic = ["version"]
+description = "Add your description here"
+readme = "README.md"
+authors = [
+ { name = "Greyson Lalonde", email = "greyson.r.lalonde@gmail.com" }
+]
+requires-python = ">=3.10, <3.14"
+dependencies = [
+ # Core Dependencies
+ "pydantic>=2.11.9",
+ "openai>=1.13.3",
+ "litellm==1.74.9",
+ "instructor>=1.3.3",
+ # Text Processing
+ "pdfplumber>=0.11.4",
+ "regex>=2024.9.11",
+ # Telemetry and Monitoring
+ "opentelemetry-api>=1.30.0",
+ "opentelemetry-sdk>=1.30.0",
+ "opentelemetry-exporter-otlp-proto-http>=1.30.0",
+ # Data Handling
+ "chromadb~=1.1.0",
+ "tokenizers>=0.20.3",
+ "openpyxl>=3.1.5",
+ "pyvis>=0.3.2",
+ # Authentication and Security
+ "python-dotenv>=1.1.1",
+ "pyjwt>=2.9.0",
+ # Configuration and Utils
+ "click>=8.1.7",
+ "appdirs>=1.4.4",
+ "jsonref>=1.1.0",
+ "json-repair==0.25.2",
+ "uv>=0.4.25",
+ "tomli-w>=1.1.0",
+ "tomli>=2.0.2",
+ "blinker>=1.9.0",
+ "json5>=0.10.0",
+ "portalocker==2.7.0",
+ "pydantic-settings>=2.10.1",
+]
+
+[project.urls]
+Homepage = "https://crewai.com"
+Documentation = "https://docs.crewai.com"
+Repository = "https://github.com/crewAIInc/crewAI"
+
+
+[project.optional-dependencies]
+tools = [
+ "crewai-tools>=0.74.0",
+]
+embeddings = [
+ "tiktoken~=0.8.0"
+]
+pdfplumber = [
+ "pdfplumber>=0.11.4",
+]
+pandas = [
+ "pandas>=2.2.3",
+]
+openpyxl = [
+ "openpyxl>=3.1.5",
+]
+mem0 = ["mem0ai>=0.1.94"]
+docling = [
+ "docling>=2.12.0",
+]
+aisuite = [
+ "aisuite>=0.1.10",
+]
+qdrant = [
+ "qdrant-client[fastembed]>=1.14.3",
+]
+aws = [
+ "boto3>=1.40.38",
+]
+watson = [
+ "ibm-watsonx-ai>=1.3.39",
+]
+voyageai = [
+ "voyageai>=0.3.5",
+]
+
+
+[project.scripts]
+crewai = "crewai.cli.cli:crewai"
+
+
+# PyTorch index configuration, since torch 2.5.0 is not compatible with python 3.13
+[[tool.uv.index]]
+name = "pytorch-nightly"
+url = "https://download.pytorch.org/whl/nightly/cpu"
+explicit = true
+
+[[tool.uv.index]]
+name = "pytorch"
+url = "https://download.pytorch.org/whl/cpu"
+explicit = true
+
+[tool.uv.sources]
+torch = [
+ { index = "pytorch-nightly", marker = "python_version >= '3.13'" },
+ { index = "pytorch", marker = "python_version < '3.13'" },
+]
+torchvision = [
+ { index = "pytorch-nightly", marker = "python_version >= '3.13'" },
+ { index = "pytorch", marker = "python_version < '3.13'" },
+]
+
+
+[build-system]
+requires = ["hatchling"]
+build-backend = "hatchling.build"
+
+[tool.hatch.version]
+path = "src/crewai/__init__.py"
diff --git a/src/crewai/__init__.py b/lib/crewai/src/crewai/__init__.py
similarity index 98%
rename from src/crewai/__init__.py
rename to lib/crewai/src/crewai/__init__.py
index 1333f1d85..ae5377bbf 100644
--- a/src/crewai/__init__.py
+++ b/lib/crewai/src/crewai/__init__.py
@@ -40,7 +40,7 @@ def _suppress_pydantic_deprecation_warnings() -> None:
_suppress_pydantic_deprecation_warnings()
-__version__ = "0.201.1"
+__version__ = "1.0.0a0"
_telemetry_submitted = False
diff --git a/src/crewai/agent.py b/lib/crewai/src/crewai/agent.py
similarity index 100%
rename from src/crewai/agent.py
rename to lib/crewai/src/crewai/agent.py
diff --git a/src/crewai/agents/__init__.py b/lib/crewai/src/crewai/agents/__init__.py
similarity index 100%
rename from src/crewai/agents/__init__.py
rename to lib/crewai/src/crewai/agents/__init__.py
diff --git a/src/crewai/agents/agent_builder/__init__.py b/lib/crewai/src/crewai/agents/agent_adapters/__init__.py
similarity index 100%
rename from src/crewai/agents/agent_builder/__init__.py
rename to lib/crewai/src/crewai/agents/agent_adapters/__init__.py
diff --git a/src/crewai/agents/agent_adapters/base_agent_adapter.py b/lib/crewai/src/crewai/agents/agent_adapters/base_agent_adapter.py
similarity index 100%
rename from src/crewai/agents/agent_adapters/base_agent_adapter.py
rename to lib/crewai/src/crewai/agents/agent_adapters/base_agent_adapter.py
diff --git a/src/crewai/agents/agent_adapters/base_converter_adapter.py b/lib/crewai/src/crewai/agents/agent_adapters/base_converter_adapter.py
similarity index 100%
rename from src/crewai/agents/agent_adapters/base_converter_adapter.py
rename to lib/crewai/src/crewai/agents/agent_adapters/base_converter_adapter.py
diff --git a/src/crewai/agents/agent_adapters/base_tool_adapter.py b/lib/crewai/src/crewai/agents/agent_adapters/base_tool_adapter.py
similarity index 100%
rename from src/crewai/agents/agent_adapters/base_tool_adapter.py
rename to lib/crewai/src/crewai/agents/agent_adapters/base_tool_adapter.py
diff --git a/src/crewai/agents/agent_adapters/langgraph/__init__.py b/lib/crewai/src/crewai/agents/agent_adapters/langgraph/__init__.py
similarity index 100%
rename from src/crewai/agents/agent_adapters/langgraph/__init__.py
rename to lib/crewai/src/crewai/agents/agent_adapters/langgraph/__init__.py
diff --git a/src/crewai/agents/agent_adapters/langgraph/langgraph_adapter.py b/lib/crewai/src/crewai/agents/agent_adapters/langgraph/langgraph_adapter.py
similarity index 100%
rename from src/crewai/agents/agent_adapters/langgraph/langgraph_adapter.py
rename to lib/crewai/src/crewai/agents/agent_adapters/langgraph/langgraph_adapter.py
diff --git a/src/crewai/agents/agent_adapters/langgraph/langgraph_tool_adapter.py b/lib/crewai/src/crewai/agents/agent_adapters/langgraph/langgraph_tool_adapter.py
similarity index 100%
rename from src/crewai/agents/agent_adapters/langgraph/langgraph_tool_adapter.py
rename to lib/crewai/src/crewai/agents/agent_adapters/langgraph/langgraph_tool_adapter.py
diff --git a/src/crewai/agents/agent_adapters/langgraph/protocols.py b/lib/crewai/src/crewai/agents/agent_adapters/langgraph/protocols.py
similarity index 100%
rename from src/crewai/agents/agent_adapters/langgraph/protocols.py
rename to lib/crewai/src/crewai/agents/agent_adapters/langgraph/protocols.py
diff --git a/src/crewai/agents/agent_adapters/langgraph/structured_output_converter.py b/lib/crewai/src/crewai/agents/agent_adapters/langgraph/structured_output_converter.py
similarity index 100%
rename from src/crewai/agents/agent_adapters/langgraph/structured_output_converter.py
rename to lib/crewai/src/crewai/agents/agent_adapters/langgraph/structured_output_converter.py
diff --git a/src/crewai/agents/agent_adapters/openai_agents/__init__.py b/lib/crewai/src/crewai/agents/agent_adapters/openai_agents/__init__.py
similarity index 100%
rename from src/crewai/agents/agent_adapters/openai_agents/__init__.py
rename to lib/crewai/src/crewai/agents/agent_adapters/openai_agents/__init__.py
diff --git a/src/crewai/agents/agent_adapters/openai_agents/openai_adapter.py b/lib/crewai/src/crewai/agents/agent_adapters/openai_agents/openai_adapter.py
similarity index 100%
rename from src/crewai/agents/agent_adapters/openai_agents/openai_adapter.py
rename to lib/crewai/src/crewai/agents/agent_adapters/openai_agents/openai_adapter.py
diff --git a/src/crewai/agents/agent_adapters/openai_agents/openai_agent_tool_adapter.py b/lib/crewai/src/crewai/agents/agent_adapters/openai_agents/openai_agent_tool_adapter.py
similarity index 100%
rename from src/crewai/agents/agent_adapters/openai_agents/openai_agent_tool_adapter.py
rename to lib/crewai/src/crewai/agents/agent_adapters/openai_agents/openai_agent_tool_adapter.py
diff --git a/src/crewai/agents/agent_adapters/openai_agents/protocols.py b/lib/crewai/src/crewai/agents/agent_adapters/openai_agents/protocols.py
similarity index 100%
rename from src/crewai/agents/agent_adapters/openai_agents/protocols.py
rename to lib/crewai/src/crewai/agents/agent_adapters/openai_agents/protocols.py
diff --git a/src/crewai/agents/agent_adapters/openai_agents/structured_output_converter.py b/lib/crewai/src/crewai/agents/agent_adapters/openai_agents/structured_output_converter.py
similarity index 100%
rename from src/crewai/agents/agent_adapters/openai_agents/structured_output_converter.py
rename to lib/crewai/src/crewai/agents/agent_adapters/openai_agents/structured_output_converter.py
diff --git a/src/crewai/agents/agent_builder/utilities/__init__.py b/lib/crewai/src/crewai/agents/agent_builder/__init__.py
similarity index 100%
rename from src/crewai/agents/agent_builder/utilities/__init__.py
rename to lib/crewai/src/crewai/agents/agent_builder/__init__.py
diff --git a/src/crewai/agents/agent_builder/base_agent.py b/lib/crewai/src/crewai/agents/agent_builder/base_agent.py
similarity index 100%
rename from src/crewai/agents/agent_builder/base_agent.py
rename to lib/crewai/src/crewai/agents/agent_builder/base_agent.py
diff --git a/src/crewai/agents/agent_builder/base_agent_executor_mixin.py b/lib/crewai/src/crewai/agents/agent_builder/base_agent_executor_mixin.py
similarity index 100%
rename from src/crewai/agents/agent_builder/base_agent_executor_mixin.py
rename to lib/crewai/src/crewai/agents/agent_builder/base_agent_executor_mixin.py
diff --git a/src/crewai/cli/__init__.py b/lib/crewai/src/crewai/agents/agent_builder/utilities/__init__.py
similarity index 100%
rename from src/crewai/cli/__init__.py
rename to lib/crewai/src/crewai/agents/agent_builder/utilities/__init__.py
diff --git a/src/crewai/agents/agent_builder/utilities/base_output_converter.py b/lib/crewai/src/crewai/agents/agent_builder/utilities/base_output_converter.py
similarity index 100%
rename from src/crewai/agents/agent_builder/utilities/base_output_converter.py
rename to lib/crewai/src/crewai/agents/agent_builder/utilities/base_output_converter.py
diff --git a/src/crewai/agents/agent_builder/utilities/base_token_process.py b/lib/crewai/src/crewai/agents/agent_builder/utilities/base_token_process.py
similarity index 100%
rename from src/crewai/agents/agent_builder/utilities/base_token_process.py
rename to lib/crewai/src/crewai/agents/agent_builder/utilities/base_token_process.py
diff --git a/src/crewai/agents/cache/__init__.py b/lib/crewai/src/crewai/agents/cache/__init__.py
similarity index 100%
rename from src/crewai/agents/cache/__init__.py
rename to lib/crewai/src/crewai/agents/cache/__init__.py
diff --git a/src/crewai/agents/cache/cache_handler.py b/lib/crewai/src/crewai/agents/cache/cache_handler.py
similarity index 100%
rename from src/crewai/agents/cache/cache_handler.py
rename to lib/crewai/src/crewai/agents/cache/cache_handler.py
diff --git a/src/crewai/agents/constants.py b/lib/crewai/src/crewai/agents/constants.py
similarity index 100%
rename from src/crewai/agents/constants.py
rename to lib/crewai/src/crewai/agents/constants.py
diff --git a/src/crewai/agents/crew_agent_executor.py b/lib/crewai/src/crewai/agents/crew_agent_executor.py
similarity index 100%
rename from src/crewai/agents/crew_agent_executor.py
rename to lib/crewai/src/crewai/agents/crew_agent_executor.py
diff --git a/src/crewai/agents/parser.py b/lib/crewai/src/crewai/agents/parser.py
similarity index 100%
rename from src/crewai/agents/parser.py
rename to lib/crewai/src/crewai/agents/parser.py
diff --git a/src/crewai/agents/tools_handler.py b/lib/crewai/src/crewai/agents/tools_handler.py
similarity index 100%
rename from src/crewai/agents/tools_handler.py
rename to lib/crewai/src/crewai/agents/tools_handler.py
diff --git a/src/crewai/cli/authentication/providers/__init__.py b/lib/crewai/src/crewai/cli/__init__.py
similarity index 100%
rename from src/crewai/cli/authentication/providers/__init__.py
rename to lib/crewai/src/crewai/cli/__init__.py
diff --git a/src/crewai/cli/add_crew_to_flow.py b/lib/crewai/src/crewai/cli/add_crew_to_flow.py
similarity index 100%
rename from src/crewai/cli/add_crew_to_flow.py
rename to lib/crewai/src/crewai/cli/add_crew_to_flow.py
diff --git a/src/crewai/cli/authentication/__init__.py b/lib/crewai/src/crewai/cli/authentication/__init__.py
similarity index 100%
rename from src/crewai/cli/authentication/__init__.py
rename to lib/crewai/src/crewai/cli/authentication/__init__.py
diff --git a/src/crewai/cli/authentication/constants.py b/lib/crewai/src/crewai/cli/authentication/constants.py
similarity index 100%
rename from src/crewai/cli/authentication/constants.py
rename to lib/crewai/src/crewai/cli/authentication/constants.py
diff --git a/src/crewai/cli/authentication/main.py b/lib/crewai/src/crewai/cli/authentication/main.py
similarity index 100%
rename from src/crewai/cli/authentication/main.py
rename to lib/crewai/src/crewai/cli/authentication/main.py
index 09bc1fa1d..8eab80c9b 100644
--- a/src/crewai/cli/authentication/main.py
+++ b/lib/crewai/src/crewai/cli/authentication/main.py
@@ -3,13 +3,13 @@ import webbrowser
from typing import Any, Dict, Optional
import requests
-from rich.console import Console
from pydantic import BaseModel, Field
+from rich.console import Console
+from crewai.cli.config import Settings
+from crewai.cli.shared.token_manager import TokenManager
from .utils import validate_jwt_token
-from crewai.cli.shared.token_manager import TokenManager
-from crewai.cli.config import Settings
console = Console()
diff --git a/src/crewai/cli/deploy/__init__.py b/lib/crewai/src/crewai/cli/authentication/providers/__init__.py
similarity index 100%
rename from src/crewai/cli/deploy/__init__.py
rename to lib/crewai/src/crewai/cli/authentication/providers/__init__.py
diff --git a/src/crewai/cli/authentication/providers/auth0.py b/lib/crewai/src/crewai/cli/authentication/providers/auth0.py
similarity index 100%
rename from src/crewai/cli/authentication/providers/auth0.py
rename to lib/crewai/src/crewai/cli/authentication/providers/auth0.py
diff --git a/src/crewai/cli/authentication/providers/base_provider.py b/lib/crewai/src/crewai/cli/authentication/providers/base_provider.py
similarity index 100%
rename from src/crewai/cli/authentication/providers/base_provider.py
rename to lib/crewai/src/crewai/cli/authentication/providers/base_provider.py
diff --git a/src/crewai/cli/authentication/providers/okta.py b/lib/crewai/src/crewai/cli/authentication/providers/okta.py
similarity index 100%
rename from src/crewai/cli/authentication/providers/okta.py
rename to lib/crewai/src/crewai/cli/authentication/providers/okta.py
diff --git a/src/crewai/cli/authentication/providers/workos.py b/lib/crewai/src/crewai/cli/authentication/providers/workos.py
similarity index 100%
rename from src/crewai/cli/authentication/providers/workos.py
rename to lib/crewai/src/crewai/cli/authentication/providers/workos.py
diff --git a/src/crewai/cli/authentication/token.py b/lib/crewai/src/crewai/cli/authentication/token.py
similarity index 100%
rename from src/crewai/cli/authentication/token.py
rename to lib/crewai/src/crewai/cli/authentication/token.py
diff --git a/src/crewai/cli/authentication/utils.py b/lib/crewai/src/crewai/cli/authentication/utils.py
similarity index 100%
rename from src/crewai/cli/authentication/utils.py
rename to lib/crewai/src/crewai/cli/authentication/utils.py
diff --git a/src/crewai/cli/cli.py b/lib/crewai/src/crewai/cli/cli.py
similarity index 100%
rename from src/crewai/cli/cli.py
rename to lib/crewai/src/crewai/cli/cli.py
diff --git a/src/crewai/cli/command.py b/lib/crewai/src/crewai/cli/command.py
similarity index 100%
rename from src/crewai/cli/command.py
rename to lib/crewai/src/crewai/cli/command.py
diff --git a/src/crewai/cli/config.py b/lib/crewai/src/crewai/cli/config.py
similarity index 100%
rename from src/crewai/cli/config.py
rename to lib/crewai/src/crewai/cli/config.py
diff --git a/src/crewai/cli/constants.py b/lib/crewai/src/crewai/cli/constants.py
similarity index 100%
rename from src/crewai/cli/constants.py
rename to lib/crewai/src/crewai/cli/constants.py
diff --git a/src/crewai/cli/create_crew.py b/lib/crewai/src/crewai/cli/create_crew.py
similarity index 100%
rename from src/crewai/cli/create_crew.py
rename to lib/crewai/src/crewai/cli/create_crew.py
diff --git a/src/crewai/cli/create_flow.py b/lib/crewai/src/crewai/cli/create_flow.py
similarity index 100%
rename from src/crewai/cli/create_flow.py
rename to lib/crewai/src/crewai/cli/create_flow.py
diff --git a/src/crewai/cli/crew_chat.py b/lib/crewai/src/crewai/cli/crew_chat.py
similarity index 100%
rename from src/crewai/cli/crew_chat.py
rename to lib/crewai/src/crewai/cli/crew_chat.py
diff --git a/src/crewai/cli/enterprise/__init__.py b/lib/crewai/src/crewai/cli/deploy/__init__.py
similarity index 100%
rename from src/crewai/cli/enterprise/__init__.py
rename to lib/crewai/src/crewai/cli/deploy/__init__.py
diff --git a/src/crewai/cli/deploy/main.py b/lib/crewai/src/crewai/cli/deploy/main.py
similarity index 99%
rename from src/crewai/cli/deploy/main.py
rename to lib/crewai/src/crewai/cli/deploy/main.py
index 486959201..3b9f9cd5d 100644
--- a/src/crewai/cli/deploy/main.py
+++ b/lib/crewai/src/crewai/cli/deploy/main.py
@@ -45,7 +45,7 @@ class DeployCommand(BaseCommand, PlusAPIMixin):
console.print("\nTo check the status of the deployment, run:")
console.print("crewai deploy status")
console.print(" or")
- console.print(f"crewai deploy status --uuid \"{json_response['uuid']}\"")
+ console.print(f'crewai deploy status --uuid "{json_response["uuid"]}"')
def _display_logs(self, log_messages: List[Dict[str, Any]]) -> None:
"""
diff --git a/src/crewai/cli/settings/__init__.py b/lib/crewai/src/crewai/cli/enterprise/__init__.py
similarity index 100%
rename from src/crewai/cli/settings/__init__.py
rename to lib/crewai/src/crewai/cli/enterprise/__init__.py
diff --git a/src/crewai/cli/enterprise/main.py b/lib/crewai/src/crewai/cli/enterprise/main.py
similarity index 62%
rename from src/crewai/cli/enterprise/main.py
rename to lib/crewai/src/crewai/cli/enterprise/main.py
index d0770ef01..0a867a2f7 100644
--- a/src/crewai/cli/enterprise/main.py
+++ b/lib/crewai/src/crewai/cli/enterprise/main.py
@@ -1,7 +1,8 @@
+from typing import Any, Dict
+
import requests
-from typing import Dict, Any
+from requests.exceptions import JSONDecodeError, RequestException
from rich.console import Console
-from requests.exceptions import RequestException, JSONDecodeError
from crewai.cli.command import BaseCommand
from crewai.cli.settings.main import SettingsCommand
@@ -17,7 +18,7 @@ class EnterpriseConfigureCommand(BaseCommand):
def configure(self, enterprise_url: str) -> None:
try:
- enterprise_url = enterprise_url.rstrip('/')
+ enterprise_url = enterprise_url.rstrip("/")
oauth_config = self._fetch_oauth_config(enterprise_url)
@@ -25,11 +26,13 @@ class EnterpriseConfigureCommand(BaseCommand):
console.print(
f"✅ Successfully configured CrewAI Enterprise with OAuth2 settings from {enterprise_url}",
- style="bold green"
+ style="bold green",
)
except Exception as e:
- console.print(f"❌ Failed to configure Enterprise settings: {str(e)}", style="bold red")
+ console.print(
+ f"❌ Failed to configure Enterprise settings: {e!s}", style="bold red"
+ )
raise SystemExit(1)
def _fetch_oauth_config(self, enterprise_url: str) -> Dict[str, Any]:
@@ -50,28 +53,41 @@ class EnterpriseConfigureCommand(BaseCommand):
except JSONDecodeError:
raise ValueError(f"Invalid JSON response from {oauth_endpoint}")
- required_fields = ['audience', 'domain', 'device_authorization_client_id', 'provider']
- missing_fields = [field for field in required_fields if field not in oauth_config]
+ required_fields = [
+ "audience",
+ "domain",
+ "device_authorization_client_id",
+ "provider",
+ ]
+ missing_fields = [
+ field for field in required_fields if field not in oauth_config
+ ]
if missing_fields:
- raise ValueError(f"Missing required fields in OAuth2 configuration: {', '.join(missing_fields)}")
+ raise ValueError(
+ f"Missing required fields in OAuth2 configuration: {', '.join(missing_fields)}"
+ )
- console.print("✅ Successfully retrieved OAuth2 configuration", style="green")
+ console.print(
+ "✅ Successfully retrieved OAuth2 configuration", style="green"
+ )
return oauth_config
except RequestException as e:
- raise ValueError(f"Failed to connect to enterprise URL: {str(e)}")
+ raise ValueError(f"Failed to connect to enterprise URL: {e!s}")
except Exception as e:
- raise ValueError(f"Error fetching OAuth2 configuration: {str(e)}")
+ raise ValueError(f"Error fetching OAuth2 configuration: {e!s}")
- def _update_oauth_settings(self, enterprise_url: str, oauth_config: Dict[str, Any]) -> None:
+ def _update_oauth_settings(
+ self, enterprise_url: str, oauth_config: Dict[str, Any]
+ ) -> None:
try:
config_mapping = {
- 'enterprise_base_url': enterprise_url,
- 'oauth2_provider': oauth_config['provider'],
- 'oauth2_audience': oauth_config['audience'],
- 'oauth2_client_id': oauth_config['device_authorization_client_id'],
- 'oauth2_domain': oauth_config['domain']
+ "enterprise_base_url": enterprise_url,
+ "oauth2_provider": oauth_config["provider"],
+ "oauth2_audience": oauth_config["audience"],
+ "oauth2_client_id": oauth_config["device_authorization_client_id"],
+ "oauth2_domain": oauth_config["domain"],
}
console.print("🔄 Updating local OAuth2 configuration...")
@@ -81,4 +97,4 @@ class EnterpriseConfigureCommand(BaseCommand):
console.print(f" ✓ Set {key}: {value}", style="dim")
except Exception as e:
- raise ValueError(f"Failed to update OAuth2 settings: {str(e)}")
+ raise ValueError(f"Failed to update OAuth2 settings: {e!s}")
diff --git a/src/crewai/cli/evaluate_crew.py b/lib/crewai/src/crewai/cli/evaluate_crew.py
similarity index 100%
rename from src/crewai/cli/evaluate_crew.py
rename to lib/crewai/src/crewai/cli/evaluate_crew.py
diff --git a/src/crewai/cli/git.py b/lib/crewai/src/crewai/cli/git.py
similarity index 100%
rename from src/crewai/cli/git.py
rename to lib/crewai/src/crewai/cli/git.py
diff --git a/src/crewai/cli/install_crew.py b/lib/crewai/src/crewai/cli/install_crew.py
similarity index 100%
rename from src/crewai/cli/install_crew.py
rename to lib/crewai/src/crewai/cli/install_crew.py
diff --git a/src/crewai/cli/kickoff_flow.py b/lib/crewai/src/crewai/cli/kickoff_flow.py
similarity index 100%
rename from src/crewai/cli/kickoff_flow.py
rename to lib/crewai/src/crewai/cli/kickoff_flow.py
diff --git a/src/crewai/cli/organization/__init__.py b/lib/crewai/src/crewai/cli/organization/__init__.py
similarity index 100%
rename from src/crewai/cli/organization/__init__.py
rename to lib/crewai/src/crewai/cli/organization/__init__.py
diff --git a/src/crewai/cli/organization/main.py b/lib/crewai/src/crewai/cli/organization/main.py
similarity index 100%
rename from src/crewai/cli/organization/main.py
rename to lib/crewai/src/crewai/cli/organization/main.py
diff --git a/src/crewai/cli/plot_flow.py b/lib/crewai/src/crewai/cli/plot_flow.py
similarity index 100%
rename from src/crewai/cli/plot_flow.py
rename to lib/crewai/src/crewai/cli/plot_flow.py
diff --git a/src/crewai/cli/plus_api.py b/lib/crewai/src/crewai/cli/plus_api.py
similarity index 100%
rename from src/crewai/cli/plus_api.py
rename to lib/crewai/src/crewai/cli/plus_api.py
diff --git a/src/crewai/cli/provider.py b/lib/crewai/src/crewai/cli/provider.py
similarity index 100%
rename from src/crewai/cli/provider.py
rename to lib/crewai/src/crewai/cli/provider.py
diff --git a/src/crewai/cli/replay_from_task.py b/lib/crewai/src/crewai/cli/replay_from_task.py
similarity index 100%
rename from src/crewai/cli/replay_from_task.py
rename to lib/crewai/src/crewai/cli/replay_from_task.py
diff --git a/src/crewai/cli/reset_memories_command.py b/lib/crewai/src/crewai/cli/reset_memories_command.py
similarity index 96%
rename from src/crewai/cli/reset_memories_command.py
rename to lib/crewai/src/crewai/cli/reset_memories_command.py
index d8910f735..494744731 100644
--- a/src/crewai/cli/reset_memories_command.py
+++ b/lib/crewai/src/crewai/cli/reset_memories_command.py
@@ -28,7 +28,9 @@ def reset_memories_command(
"""
try:
- if not any([long, short, entity, kickoff_outputs, knowledge, agent_knowledge, all]):
+ if not any(
+ [long, short, entity, kickoff_outputs, knowledge, agent_knowledge, all]
+ ):
click.echo(
"No memory type specified. Please specify at least one type to reset."
)
diff --git a/src/crewai/cli/run_crew.py b/lib/crewai/src/crewai/cli/run_crew.py
similarity index 100%
rename from src/crewai/cli/run_crew.py
rename to lib/crewai/src/crewai/cli/run_crew.py
diff --git a/src/crewai/cli/shared/__init__.py b/lib/crewai/src/crewai/cli/settings/__init__.py
similarity index 100%
rename from src/crewai/cli/shared/__init__.py
rename to lib/crewai/src/crewai/cli/settings/__init__.py
diff --git a/src/crewai/cli/settings/main.py b/lib/crewai/src/crewai/cli/settings/main.py
similarity index 96%
rename from src/crewai/cli/settings/main.py
rename to lib/crewai/src/crewai/cli/settings/main.py
index b54aa3b0c..b74b4cd7d 100644
--- a/src/crewai/cli/settings/main.py
+++ b/lib/crewai/src/crewai/cli/settings/main.py
@@ -1,8 +1,10 @@
+from typing import Any
+
from rich.console import Console
from rich.table import Table
+
from crewai.cli.command import BaseCommand
-from crewai.cli.config import Settings, READONLY_SETTINGS_KEYS, HIDDEN_SETTINGS_KEYS
-from typing import Any
+from crewai.cli.config import HIDDEN_SETTINGS_KEYS, READONLY_SETTINGS_KEYS, Settings
console = Console()
diff --git a/src/crewai/cli/templates/__init__.py b/lib/crewai/src/crewai/cli/shared/__init__.py
similarity index 100%
rename from src/crewai/cli/templates/__init__.py
rename to lib/crewai/src/crewai/cli/shared/__init__.py
diff --git a/src/crewai/cli/shared/token_manager.py b/lib/crewai/src/crewai/cli/shared/token_manager.py
similarity index 100%
rename from src/crewai/cli/shared/token_manager.py
rename to lib/crewai/src/crewai/cli/shared/token_manager.py
diff --git a/src/crewai/cli/templates/crew/__init__.py b/lib/crewai/src/crewai/cli/templates/__init__.py
similarity index 100%
rename from src/crewai/cli/templates/crew/__init__.py
rename to lib/crewai/src/crewai/cli/templates/__init__.py
diff --git a/src/crewai/cli/templates/crew/.gitignore b/lib/crewai/src/crewai/cli/templates/crew/.gitignore
similarity index 100%
rename from src/crewai/cli/templates/crew/.gitignore
rename to lib/crewai/src/crewai/cli/templates/crew/.gitignore
diff --git a/src/crewai/cli/templates/crew/README.md b/lib/crewai/src/crewai/cli/templates/crew/README.md
similarity index 100%
rename from src/crewai/cli/templates/crew/README.md
rename to lib/crewai/src/crewai/cli/templates/crew/README.md
diff --git a/src/crewai/cli/templates/crew/tools/__init__.py b/lib/crewai/src/crewai/cli/templates/crew/__init__.py
similarity index 100%
rename from src/crewai/cli/templates/crew/tools/__init__.py
rename to lib/crewai/src/crewai/cli/templates/crew/__init__.py
diff --git a/src/crewai/cli/templates/crew/config/agents.yaml b/lib/crewai/src/crewai/cli/templates/crew/config/agents.yaml
similarity index 100%
rename from src/crewai/cli/templates/crew/config/agents.yaml
rename to lib/crewai/src/crewai/cli/templates/crew/config/agents.yaml
diff --git a/src/crewai/cli/templates/crew/config/tasks.yaml b/lib/crewai/src/crewai/cli/templates/crew/config/tasks.yaml
similarity index 100%
rename from src/crewai/cli/templates/crew/config/tasks.yaml
rename to lib/crewai/src/crewai/cli/templates/crew/config/tasks.yaml
diff --git a/src/crewai/cli/templates/crew/crew.py b/lib/crewai/src/crewai/cli/templates/crew/crew.py
similarity index 100%
rename from src/crewai/cli/templates/crew/crew.py
rename to lib/crewai/src/crewai/cli/templates/crew/crew.py
diff --git a/src/crewai/cli/templates/crew/knowledge/user_preference.txt b/lib/crewai/src/crewai/cli/templates/crew/knowledge/user_preference.txt
similarity index 100%
rename from src/crewai/cli/templates/crew/knowledge/user_preference.txt
rename to lib/crewai/src/crewai/cli/templates/crew/knowledge/user_preference.txt
diff --git a/src/crewai/cli/templates/crew/main.py b/lib/crewai/src/crewai/cli/templates/crew/main.py
similarity index 100%
rename from src/crewai/cli/templates/crew/main.py
rename to lib/crewai/src/crewai/cli/templates/crew/main.py
diff --git a/src/crewai/cli/templates/crew/pyproject.toml b/lib/crewai/src/crewai/cli/templates/crew/pyproject.toml
similarity index 100%
rename from src/crewai/cli/templates/crew/pyproject.toml
rename to lib/crewai/src/crewai/cli/templates/crew/pyproject.toml
diff --git a/src/crewai/cli/templates/flow/__init__.py b/lib/crewai/src/crewai/cli/templates/crew/tools/__init__.py
similarity index 100%
rename from src/crewai/cli/templates/flow/__init__.py
rename to lib/crewai/src/crewai/cli/templates/crew/tools/__init__.py
diff --git a/src/crewai/cli/templates/crew/tools/custom_tool.py b/lib/crewai/src/crewai/cli/templates/crew/tools/custom_tool.py
similarity index 100%
rename from src/crewai/cli/templates/crew/tools/custom_tool.py
rename to lib/crewai/src/crewai/cli/templates/crew/tools/custom_tool.py
diff --git a/src/crewai/cli/templates/flow/.gitignore b/lib/crewai/src/crewai/cli/templates/flow/.gitignore
similarity index 100%
rename from src/crewai/cli/templates/flow/.gitignore
rename to lib/crewai/src/crewai/cli/templates/flow/.gitignore
diff --git a/src/crewai/cli/templates/flow/README.md b/lib/crewai/src/crewai/cli/templates/flow/README.md
similarity index 100%
rename from src/crewai/cli/templates/flow/README.md
rename to lib/crewai/src/crewai/cli/templates/flow/README.md
diff --git a/src/crewai/cli/templates/flow/tools/__init__.py b/lib/crewai/src/crewai/cli/templates/flow/__init__.py
similarity index 100%
rename from src/crewai/cli/templates/flow/tools/__init__.py
rename to lib/crewai/src/crewai/cli/templates/flow/__init__.py
diff --git a/src/crewai/cli/templates/flow/crews/poem_crew/__init__.py b/lib/crewai/src/crewai/cli/templates/flow/crews/poem_crew/__init__.py
similarity index 100%
rename from src/crewai/cli/templates/flow/crews/poem_crew/__init__.py
rename to lib/crewai/src/crewai/cli/templates/flow/crews/poem_crew/__init__.py
diff --git a/src/crewai/cli/templates/flow/crews/poem_crew/config/agents.yaml b/lib/crewai/src/crewai/cli/templates/flow/crews/poem_crew/config/agents.yaml
similarity index 100%
rename from src/crewai/cli/templates/flow/crews/poem_crew/config/agents.yaml
rename to lib/crewai/src/crewai/cli/templates/flow/crews/poem_crew/config/agents.yaml
diff --git a/src/crewai/cli/templates/flow/crews/poem_crew/config/tasks.yaml b/lib/crewai/src/crewai/cli/templates/flow/crews/poem_crew/config/tasks.yaml
similarity index 100%
rename from src/crewai/cli/templates/flow/crews/poem_crew/config/tasks.yaml
rename to lib/crewai/src/crewai/cli/templates/flow/crews/poem_crew/config/tasks.yaml
diff --git a/src/crewai/cli/templates/flow/crews/poem_crew/poem_crew.py b/lib/crewai/src/crewai/cli/templates/flow/crews/poem_crew/poem_crew.py
similarity index 99%
rename from src/crewai/cli/templates/flow/crews/poem_crew/poem_crew.py
rename to lib/crewai/src/crewai/cli/templates/flow/crews/poem_crew/poem_crew.py
index 1f2a81466..8c3358097 100644
--- a/src/crewai/cli/templates/flow/crews/poem_crew/poem_crew.py
+++ b/lib/crewai/src/crewai/cli/templates/flow/crews/poem_crew/poem_crew.py
@@ -1,8 +1,9 @@
-from crewai import Agent, Crew, Process, Task
-from crewai.project import CrewBase, agent, crew, task
-from crewai.agents.agent_builder.base_agent import BaseAgent
from typing import List
+from crewai import Agent, Crew, Process, Task
+from crewai.agents.agent_builder.base_agent import BaseAgent
+from crewai.project import CrewBase, agent, crew, task
+
# If you want to run a snippet of code before or after the crew starts,
# you can use the @before_kickoff and @after_kickoff decorators
# https://docs.crewai.com/concepts/crews#example-crew-class-with-decorators
diff --git a/src/crewai/cli/templates/flow/main.py b/lib/crewai/src/crewai/cli/templates/flow/main.py
similarity index 100%
rename from src/crewai/cli/templates/flow/main.py
rename to lib/crewai/src/crewai/cli/templates/flow/main.py
diff --git a/src/crewai/cli/templates/flow/pyproject.toml b/lib/crewai/src/crewai/cli/templates/flow/pyproject.toml
similarity index 100%
rename from src/crewai/cli/templates/flow/pyproject.toml
rename to lib/crewai/src/crewai/cli/templates/flow/pyproject.toml
diff --git a/src/crewai/cli/tools/__init__.py b/lib/crewai/src/crewai/cli/templates/flow/tools/__init__.py
similarity index 100%
rename from src/crewai/cli/tools/__init__.py
rename to lib/crewai/src/crewai/cli/templates/flow/tools/__init__.py
diff --git a/src/crewai/cli/templates/flow/tools/custom_tool.py b/lib/crewai/src/crewai/cli/templates/flow/tools/custom_tool.py
similarity index 78%
rename from src/crewai/cli/templates/flow/tools/custom_tool.py
rename to lib/crewai/src/crewai/cli/templates/flow/tools/custom_tool.py
index 718d2be1b..f57d56740 100644
--- a/src/crewai/cli/templates/flow/tools/custom_tool.py
+++ b/lib/crewai/src/crewai/cli/templates/flow/tools/custom_tool.py
@@ -1,8 +1,9 @@
from typing import Type
-from crewai.tools import BaseTool
from pydantic import BaseModel, Field
+from crewai.tools import BaseTool
+
class MyCustomToolInput(BaseModel):
"""Input schema for MyCustomTool."""
@@ -12,9 +13,7 @@ class MyCustomToolInput(BaseModel):
class MyCustomTool(BaseTool):
name: str = "Name of my tool"
- description: str = (
- "Clear description for what this tool is useful for, your agent will need this information to use it."
- )
+ description: str = "Clear description for what this tool is useful for, your agent will need this information to use it."
args_schema: Type[BaseModel] = MyCustomToolInput
def _run(self, argument: str) -> str:
diff --git a/src/crewai/cli/templates/tool/.gitignore b/lib/crewai/src/crewai/cli/templates/tool/.gitignore
similarity index 100%
rename from src/crewai/cli/templates/tool/.gitignore
rename to lib/crewai/src/crewai/cli/templates/tool/.gitignore
diff --git a/src/crewai/cli/templates/tool/README.md b/lib/crewai/src/crewai/cli/templates/tool/README.md
similarity index 100%
rename from src/crewai/cli/templates/tool/README.md
rename to lib/crewai/src/crewai/cli/templates/tool/README.md
diff --git a/src/crewai/cli/templates/tool/pyproject.toml b/lib/crewai/src/crewai/cli/templates/tool/pyproject.toml
similarity index 100%
rename from src/crewai/cli/templates/tool/pyproject.toml
rename to lib/crewai/src/crewai/cli/templates/tool/pyproject.toml
diff --git a/src/crewai/cli/templates/tool/src/{{folder_name}}/__init__.py b/lib/crewai/src/crewai/cli/templates/tool/src/{{folder_name}}/__init__.py
similarity index 100%
rename from src/crewai/cli/templates/tool/src/{{folder_name}}/__init__.py
rename to lib/crewai/src/crewai/cli/templates/tool/src/{{folder_name}}/__init__.py
diff --git a/src/crewai/cli/templates/tool/src/{{folder_name}}/tool.py b/lib/crewai/src/crewai/cli/templates/tool/src/{{folder_name}}/tool.py
similarity index 100%
rename from src/crewai/cli/templates/tool/src/{{folder_name}}/tool.py
rename to lib/crewai/src/crewai/cli/templates/tool/src/{{folder_name}}/tool.py
diff --git a/src/crewai/events/listeners/tracing/__init__.py b/lib/crewai/src/crewai/cli/tools/__init__.py
similarity index 100%
rename from src/crewai/events/listeners/tracing/__init__.py
rename to lib/crewai/src/crewai/cli/tools/__init__.py
diff --git a/src/crewai/cli/tools/main.py b/lib/crewai/src/crewai/cli/tools/main.py
similarity index 100%
rename from src/crewai/cli/tools/main.py
rename to lib/crewai/src/crewai/cli/tools/main.py
diff --git a/src/crewai/cli/train_crew.py b/lib/crewai/src/crewai/cli/train_crew.py
similarity index 100%
rename from src/crewai/cli/train_crew.py
rename to lib/crewai/src/crewai/cli/train_crew.py
diff --git a/src/crewai/cli/update_crew.py b/lib/crewai/src/crewai/cli/update_crew.py
similarity index 100%
rename from src/crewai/cli/update_crew.py
rename to lib/crewai/src/crewai/cli/update_crew.py
diff --git a/src/crewai/cli/utils.py b/lib/crewai/src/crewai/cli/utils.py
similarity index 100%
rename from src/crewai/cli/utils.py
rename to lib/crewai/src/crewai/cli/utils.py
diff --git a/src/crewai/cli/version.py b/lib/crewai/src/crewai/cli/version.py
similarity index 100%
rename from src/crewai/cli/version.py
rename to lib/crewai/src/crewai/cli/version.py
diff --git a/src/crewai/context.py b/lib/crewai/src/crewai/context.py
similarity index 89%
rename from src/crewai/context.py
rename to lib/crewai/src/crewai/context.py
index 1701c279c..5b0aa16ac 100644
--- a/src/crewai/context.py
+++ b/lib/crewai/src/crewai/context.py
@@ -1,21 +1,24 @@
-import os
import contextvars
-from typing import Optional
+import os
from contextlib import contextmanager
+from typing import Optional
-_platform_integration_token: contextvars.ContextVar[Optional[str]] = contextvars.ContextVar(
- "platform_integration_token", default=None
+_platform_integration_token: contextvars.ContextVar[Optional[str]] = (
+ contextvars.ContextVar("platform_integration_token", default=None)
)
+
def set_platform_integration_token(integration_token: str) -> None:
_platform_integration_token.set(integration_token)
+
def get_platform_integration_token() -> Optional[str]:
token = _platform_integration_token.get()
if token is None:
token = os.getenv("CREWAI_PLATFORM_INTEGRATION_TOKEN")
return token
+
@contextmanager
def platform_context(integration_token: str):
token = _platform_integration_token.set(integration_token)
diff --git a/src/crewai/crew.py b/lib/crewai/src/crewai/crew.py
similarity index 100%
rename from src/crewai/crew.py
rename to lib/crewai/src/crewai/crew.py
diff --git a/src/crewai/crews/__init__.py b/lib/crewai/src/crewai/crews/__init__.py
similarity index 100%
rename from src/crewai/crews/__init__.py
rename to lib/crewai/src/crewai/crews/__init__.py
diff --git a/src/crewai/crews/crew_output.py b/lib/crewai/src/crewai/crews/crew_output.py
similarity index 100%
rename from src/crewai/crews/crew_output.py
rename to lib/crewai/src/crewai/crews/crew_output.py
diff --git a/src/crewai/events/__init__.py b/lib/crewai/src/crewai/events/__init__.py
similarity index 100%
rename from src/crewai/events/__init__.py
rename to lib/crewai/src/crewai/events/__init__.py
diff --git a/src/crewai/events/base_event_listener.py b/lib/crewai/src/crewai/events/base_event_listener.py
similarity index 100%
rename from src/crewai/events/base_event_listener.py
rename to lib/crewai/src/crewai/events/base_event_listener.py
diff --git a/src/crewai/events/base_events.py b/lib/crewai/src/crewai/events/base_events.py
similarity index 100%
rename from src/crewai/events/base_events.py
rename to lib/crewai/src/crewai/events/base_events.py
diff --git a/src/crewai/events/event_bus.py b/lib/crewai/src/crewai/events/event_bus.py
similarity index 100%
rename from src/crewai/events/event_bus.py
rename to lib/crewai/src/crewai/events/event_bus.py
diff --git a/src/crewai/events/event_listener.py b/lib/crewai/src/crewai/events/event_listener.py
similarity index 100%
rename from src/crewai/events/event_listener.py
rename to lib/crewai/src/crewai/events/event_listener.py
diff --git a/src/crewai/events/event_types.py b/lib/crewai/src/crewai/events/event_types.py
similarity index 100%
rename from src/crewai/events/event_types.py
rename to lib/crewai/src/crewai/events/event_types.py
diff --git a/src/crewai/events/listeners/__init__.py b/lib/crewai/src/crewai/events/listeners/__init__.py
similarity index 100%
rename from src/crewai/events/listeners/__init__.py
rename to lib/crewai/src/crewai/events/listeners/__init__.py
diff --git a/src/crewai/events/listeners/memory_listener.py b/lib/crewai/src/crewai/events/listeners/memory_listener.py
similarity index 100%
rename from src/crewai/events/listeners/memory_listener.py
rename to lib/crewai/src/crewai/events/listeners/memory_listener.py
diff --git a/src/crewai/knowledge/__init__.py b/lib/crewai/src/crewai/events/listeners/tracing/__init__.py
similarity index 100%
rename from src/crewai/knowledge/__init__.py
rename to lib/crewai/src/crewai/events/listeners/tracing/__init__.py
diff --git a/src/crewai/events/listeners/tracing/first_time_trace_handler.py b/lib/crewai/src/crewai/events/listeners/tracing/first_time_trace_handler.py
similarity index 100%
rename from src/crewai/events/listeners/tracing/first_time_trace_handler.py
rename to lib/crewai/src/crewai/events/listeners/tracing/first_time_trace_handler.py
diff --git a/src/crewai/events/listeners/tracing/trace_batch_manager.py b/lib/crewai/src/crewai/events/listeners/tracing/trace_batch_manager.py
similarity index 100%
rename from src/crewai/events/listeners/tracing/trace_batch_manager.py
rename to lib/crewai/src/crewai/events/listeners/tracing/trace_batch_manager.py
diff --git a/src/crewai/events/listeners/tracing/trace_listener.py b/lib/crewai/src/crewai/events/listeners/tracing/trace_listener.py
similarity index 100%
rename from src/crewai/events/listeners/tracing/trace_listener.py
rename to lib/crewai/src/crewai/events/listeners/tracing/trace_listener.py
diff --git a/src/crewai/events/listeners/tracing/types.py b/lib/crewai/src/crewai/events/listeners/tracing/types.py
similarity index 100%
rename from src/crewai/events/listeners/tracing/types.py
rename to lib/crewai/src/crewai/events/listeners/tracing/types.py
diff --git a/src/crewai/events/listeners/tracing/utils.py b/lib/crewai/src/crewai/events/listeners/tracing/utils.py
similarity index 100%
rename from src/crewai/events/listeners/tracing/utils.py
rename to lib/crewai/src/crewai/events/listeners/tracing/utils.py
diff --git a/src/crewai/events/types/__init__.py b/lib/crewai/src/crewai/events/types/__init__.py
similarity index 100%
rename from src/crewai/events/types/__init__.py
rename to lib/crewai/src/crewai/events/types/__init__.py
diff --git a/src/crewai/events/types/agent_events.py b/lib/crewai/src/crewai/events/types/agent_events.py
similarity index 100%
rename from src/crewai/events/types/agent_events.py
rename to lib/crewai/src/crewai/events/types/agent_events.py
diff --git a/src/crewai/events/types/crew_events.py b/lib/crewai/src/crewai/events/types/crew_events.py
similarity index 100%
rename from src/crewai/events/types/crew_events.py
rename to lib/crewai/src/crewai/events/types/crew_events.py
diff --git a/src/crewai/events/types/flow_events.py b/lib/crewai/src/crewai/events/types/flow_events.py
similarity index 100%
rename from src/crewai/events/types/flow_events.py
rename to lib/crewai/src/crewai/events/types/flow_events.py
diff --git a/src/crewai/events/types/knowledge_events.py b/lib/crewai/src/crewai/events/types/knowledge_events.py
similarity index 100%
rename from src/crewai/events/types/knowledge_events.py
rename to lib/crewai/src/crewai/events/types/knowledge_events.py
diff --git a/src/crewai/events/types/llm_events.py b/lib/crewai/src/crewai/events/types/llm_events.py
similarity index 100%
rename from src/crewai/events/types/llm_events.py
rename to lib/crewai/src/crewai/events/types/llm_events.py
diff --git a/src/crewai/events/types/llm_guardrail_events.py b/lib/crewai/src/crewai/events/types/llm_guardrail_events.py
similarity index 100%
rename from src/crewai/events/types/llm_guardrail_events.py
rename to lib/crewai/src/crewai/events/types/llm_guardrail_events.py
diff --git a/src/crewai/events/types/logging_events.py b/lib/crewai/src/crewai/events/types/logging_events.py
similarity index 100%
rename from src/crewai/events/types/logging_events.py
rename to lib/crewai/src/crewai/events/types/logging_events.py
diff --git a/src/crewai/events/types/memory_events.py b/lib/crewai/src/crewai/events/types/memory_events.py
similarity index 100%
rename from src/crewai/events/types/memory_events.py
rename to lib/crewai/src/crewai/events/types/memory_events.py
diff --git a/src/crewai/events/types/reasoning_events.py b/lib/crewai/src/crewai/events/types/reasoning_events.py
similarity index 100%
rename from src/crewai/events/types/reasoning_events.py
rename to lib/crewai/src/crewai/events/types/reasoning_events.py
diff --git a/src/crewai/events/types/task_events.py b/lib/crewai/src/crewai/events/types/task_events.py
similarity index 100%
rename from src/crewai/events/types/task_events.py
rename to lib/crewai/src/crewai/events/types/task_events.py
diff --git a/src/crewai/events/types/tool_usage_events.py b/lib/crewai/src/crewai/events/types/tool_usage_events.py
similarity index 100%
rename from src/crewai/events/types/tool_usage_events.py
rename to lib/crewai/src/crewai/events/types/tool_usage_events.py
diff --git a/src/crewai/events/utils/__init__.py b/lib/crewai/src/crewai/events/utils/__init__.py
similarity index 100%
rename from src/crewai/events/utils/__init__.py
rename to lib/crewai/src/crewai/events/utils/__init__.py
diff --git a/src/crewai/events/utils/console_formatter.py b/lib/crewai/src/crewai/events/utils/console_formatter.py
similarity index 100%
rename from src/crewai/events/utils/console_formatter.py
rename to lib/crewai/src/crewai/events/utils/console_formatter.py
diff --git a/src/crewai/experimental/__init__.py b/lib/crewai/src/crewai/experimental/__init__.py
similarity index 100%
rename from src/crewai/experimental/__init__.py
rename to lib/crewai/src/crewai/experimental/__init__.py
diff --git a/src/crewai/experimental/evaluation/__init__.py b/lib/crewai/src/crewai/experimental/evaluation/__init__.py
similarity index 100%
rename from src/crewai/experimental/evaluation/__init__.py
rename to lib/crewai/src/crewai/experimental/evaluation/__init__.py
diff --git a/src/crewai/experimental/evaluation/agent_evaluator.py b/lib/crewai/src/crewai/experimental/evaluation/agent_evaluator.py
similarity index 100%
rename from src/crewai/experimental/evaluation/agent_evaluator.py
rename to lib/crewai/src/crewai/experimental/evaluation/agent_evaluator.py
diff --git a/src/crewai/experimental/evaluation/base_evaluator.py b/lib/crewai/src/crewai/experimental/evaluation/base_evaluator.py
similarity index 100%
rename from src/crewai/experimental/evaluation/base_evaluator.py
rename to lib/crewai/src/crewai/experimental/evaluation/base_evaluator.py
diff --git a/src/crewai/experimental/evaluation/evaluation_display.py b/lib/crewai/src/crewai/experimental/evaluation/evaluation_display.py
similarity index 100%
rename from src/crewai/experimental/evaluation/evaluation_display.py
rename to lib/crewai/src/crewai/experimental/evaluation/evaluation_display.py
diff --git a/src/crewai/experimental/evaluation/evaluation_listener.py b/lib/crewai/src/crewai/experimental/evaluation/evaluation_listener.py
similarity index 100%
rename from src/crewai/experimental/evaluation/evaluation_listener.py
rename to lib/crewai/src/crewai/experimental/evaluation/evaluation_listener.py
diff --git a/src/crewai/experimental/evaluation/experiment/__init__.py b/lib/crewai/src/crewai/experimental/evaluation/experiment/__init__.py
similarity index 100%
rename from src/crewai/experimental/evaluation/experiment/__init__.py
rename to lib/crewai/src/crewai/experimental/evaluation/experiment/__init__.py
diff --git a/src/crewai/experimental/evaluation/experiment/result.py b/lib/crewai/src/crewai/experimental/evaluation/experiment/result.py
similarity index 100%
rename from src/crewai/experimental/evaluation/experiment/result.py
rename to lib/crewai/src/crewai/experimental/evaluation/experiment/result.py
diff --git a/src/crewai/experimental/evaluation/experiment/result_display.py b/lib/crewai/src/crewai/experimental/evaluation/experiment/result_display.py
similarity index 100%
rename from src/crewai/experimental/evaluation/experiment/result_display.py
rename to lib/crewai/src/crewai/experimental/evaluation/experiment/result_display.py
diff --git a/src/crewai/experimental/evaluation/experiment/runner.py b/lib/crewai/src/crewai/experimental/evaluation/experiment/runner.py
similarity index 100%
rename from src/crewai/experimental/evaluation/experiment/runner.py
rename to lib/crewai/src/crewai/experimental/evaluation/experiment/runner.py
diff --git a/src/crewai/experimental/evaluation/json_parser.py b/lib/crewai/src/crewai/experimental/evaluation/json_parser.py
similarity index 100%
rename from src/crewai/experimental/evaluation/json_parser.py
rename to lib/crewai/src/crewai/experimental/evaluation/json_parser.py
diff --git a/src/crewai/experimental/evaluation/metrics/__init__.py b/lib/crewai/src/crewai/experimental/evaluation/metrics/__init__.py
similarity index 100%
rename from src/crewai/experimental/evaluation/metrics/__init__.py
rename to lib/crewai/src/crewai/experimental/evaluation/metrics/__init__.py
diff --git a/src/crewai/experimental/evaluation/metrics/goal_metrics.py b/lib/crewai/src/crewai/experimental/evaluation/metrics/goal_metrics.py
similarity index 100%
rename from src/crewai/experimental/evaluation/metrics/goal_metrics.py
rename to lib/crewai/src/crewai/experimental/evaluation/metrics/goal_metrics.py
diff --git a/src/crewai/experimental/evaluation/metrics/reasoning_metrics.py b/lib/crewai/src/crewai/experimental/evaluation/metrics/reasoning_metrics.py
similarity index 100%
rename from src/crewai/experimental/evaluation/metrics/reasoning_metrics.py
rename to lib/crewai/src/crewai/experimental/evaluation/metrics/reasoning_metrics.py
diff --git a/src/crewai/experimental/evaluation/metrics/semantic_quality_metrics.py b/lib/crewai/src/crewai/experimental/evaluation/metrics/semantic_quality_metrics.py
similarity index 100%
rename from src/crewai/experimental/evaluation/metrics/semantic_quality_metrics.py
rename to lib/crewai/src/crewai/experimental/evaluation/metrics/semantic_quality_metrics.py
diff --git a/src/crewai/experimental/evaluation/metrics/tools_metrics.py b/lib/crewai/src/crewai/experimental/evaluation/metrics/tools_metrics.py
similarity index 100%
rename from src/crewai/experimental/evaluation/metrics/tools_metrics.py
rename to lib/crewai/src/crewai/experimental/evaluation/metrics/tools_metrics.py
diff --git a/src/crewai/experimental/evaluation/testing.py b/lib/crewai/src/crewai/experimental/evaluation/testing.py
similarity index 100%
rename from src/crewai/experimental/evaluation/testing.py
rename to lib/crewai/src/crewai/experimental/evaluation/testing.py
diff --git a/src/crewai/flow/__init__.py b/lib/crewai/src/crewai/flow/__init__.py
similarity index 100%
rename from src/crewai/flow/__init__.py
rename to lib/crewai/src/crewai/flow/__init__.py
diff --git a/src/crewai/flow/assets/crewai_flow_visual_template.html b/lib/crewai/src/crewai/flow/assets/crewai_flow_visual_template.html
similarity index 100%
rename from src/crewai/flow/assets/crewai_flow_visual_template.html
rename to lib/crewai/src/crewai/flow/assets/crewai_flow_visual_template.html
diff --git a/src/crewai/flow/assets/crewai_logo.svg b/lib/crewai/src/crewai/flow/assets/crewai_logo.svg
similarity index 100%
rename from src/crewai/flow/assets/crewai_logo.svg
rename to lib/crewai/src/crewai/flow/assets/crewai_logo.svg
diff --git a/src/crewai/flow/config.py b/lib/crewai/src/crewai/flow/config.py
similarity index 100%
rename from src/crewai/flow/config.py
rename to lib/crewai/src/crewai/flow/config.py
diff --git a/src/crewai/flow/flow.py b/lib/crewai/src/crewai/flow/flow.py
similarity index 100%
rename from src/crewai/flow/flow.py
rename to lib/crewai/src/crewai/flow/flow.py
diff --git a/src/crewai/flow/flow_trackable.py b/lib/crewai/src/crewai/flow/flow_trackable.py
similarity index 100%
rename from src/crewai/flow/flow_trackable.py
rename to lib/crewai/src/crewai/flow/flow_trackable.py
diff --git a/src/crewai/flow/flow_visualizer.py b/lib/crewai/src/crewai/flow/flow_visualizer.py
similarity index 100%
rename from src/crewai/flow/flow_visualizer.py
rename to lib/crewai/src/crewai/flow/flow_visualizer.py
diff --git a/src/crewai/flow/html_template_handler.py b/lib/crewai/src/crewai/flow/html_template_handler.py
similarity index 100%
rename from src/crewai/flow/html_template_handler.py
rename to lib/crewai/src/crewai/flow/html_template_handler.py
diff --git a/src/crewai/flow/legend_generator.py b/lib/crewai/src/crewai/flow/legend_generator.py
similarity index 85%
rename from src/crewai/flow/legend_generator.py
rename to lib/crewai/src/crewai/flow/legend_generator.py
index f250dec20..760b013fa 100644
--- a/src/crewai/flow/legend_generator.py
+++ b/lib/crewai/src/crewai/flow/legend_generator.py
@@ -1,4 +1,3 @@
-
def get_legend_items(colors):
return [
{"label": "Start Method", "color": colors["start"]},
@@ -32,23 +31,23 @@ def generate_legend_items_html(legend_items):
style = "dashed" if item["dashed"] else "solid"
legend_items_html += f"""
-
-
{item['label']}
+
+
{item["label"]}
"""
elif item.get("dashed") is not None:
style = "dashed" if item["dashed"] else "solid"
legend_items_html += f"""
-
-
{item['label']}
+
+
{item["label"]}
"""
else:
legend_items_html += f"""
-
-
{item['label']}
+
+
{item["label"]}
"""
return legend_items_html
diff --git a/src/crewai/flow/path_utils.py b/lib/crewai/src/crewai/flow/path_utils.py
similarity index 100%
rename from src/crewai/flow/path_utils.py
rename to lib/crewai/src/crewai/flow/path_utils.py
diff --git a/src/crewai/flow/persistence/__init__.py b/lib/crewai/src/crewai/flow/persistence/__init__.py
similarity index 100%
rename from src/crewai/flow/persistence/__init__.py
rename to lib/crewai/src/crewai/flow/persistence/__init__.py
diff --git a/src/crewai/flow/persistence/base.py b/lib/crewai/src/crewai/flow/persistence/base.py
similarity index 100%
rename from src/crewai/flow/persistence/base.py
rename to lib/crewai/src/crewai/flow/persistence/base.py
diff --git a/src/crewai/flow/persistence/decorators.py b/lib/crewai/src/crewai/flow/persistence/decorators.py
similarity index 100%
rename from src/crewai/flow/persistence/decorators.py
rename to lib/crewai/src/crewai/flow/persistence/decorators.py
diff --git a/src/crewai/flow/persistence/sqlite.py b/lib/crewai/src/crewai/flow/persistence/sqlite.py
similarity index 100%
rename from src/crewai/flow/persistence/sqlite.py
rename to lib/crewai/src/crewai/flow/persistence/sqlite.py
diff --git a/src/crewai/flow/types.py b/lib/crewai/src/crewai/flow/types.py
similarity index 100%
rename from src/crewai/flow/types.py
rename to lib/crewai/src/crewai/flow/types.py
diff --git a/src/crewai/flow/utils.py b/lib/crewai/src/crewai/flow/utils.py
similarity index 100%
rename from src/crewai/flow/utils.py
rename to lib/crewai/src/crewai/flow/utils.py
diff --git a/src/crewai/flow/visualization_utils.py b/lib/crewai/src/crewai/flow/visualization_utils.py
similarity index 100%
rename from src/crewai/flow/visualization_utils.py
rename to lib/crewai/src/crewai/flow/visualization_utils.py
diff --git a/src/crewai/knowledge/source/__init__.py b/lib/crewai/src/crewai/knowledge/__init__.py
similarity index 100%
rename from src/crewai/knowledge/source/__init__.py
rename to lib/crewai/src/crewai/knowledge/__init__.py
diff --git a/src/crewai/knowledge/knowledge.py b/lib/crewai/src/crewai/knowledge/knowledge.py
similarity index 100%
rename from src/crewai/knowledge/knowledge.py
rename to lib/crewai/src/crewai/knowledge/knowledge.py
diff --git a/src/crewai/knowledge/knowledge_config.py b/lib/crewai/src/crewai/knowledge/knowledge_config.py
similarity index 100%
rename from src/crewai/knowledge/knowledge_config.py
rename to lib/crewai/src/crewai/knowledge/knowledge_config.py
diff --git a/src/crewai/knowledge/storage/__init__.py b/lib/crewai/src/crewai/knowledge/source/__init__.py
similarity index 100%
rename from src/crewai/knowledge/storage/__init__.py
rename to lib/crewai/src/crewai/knowledge/source/__init__.py
diff --git a/src/crewai/knowledge/source/base_file_knowledge_source.py b/lib/crewai/src/crewai/knowledge/source/base_file_knowledge_source.py
similarity index 100%
rename from src/crewai/knowledge/source/base_file_knowledge_source.py
rename to lib/crewai/src/crewai/knowledge/source/base_file_knowledge_source.py
diff --git a/src/crewai/knowledge/source/base_knowledge_source.py b/lib/crewai/src/crewai/knowledge/source/base_knowledge_source.py
similarity index 100%
rename from src/crewai/knowledge/source/base_knowledge_source.py
rename to lib/crewai/src/crewai/knowledge/source/base_knowledge_source.py
diff --git a/src/crewai/knowledge/source/crew_docling_source.py b/lib/crewai/src/crewai/knowledge/source/crew_docling_source.py
similarity index 100%
rename from src/crewai/knowledge/source/crew_docling_source.py
rename to lib/crewai/src/crewai/knowledge/source/crew_docling_source.py
diff --git a/src/crewai/knowledge/source/csv_knowledge_source.py b/lib/crewai/src/crewai/knowledge/source/csv_knowledge_source.py
similarity index 100%
rename from src/crewai/knowledge/source/csv_knowledge_source.py
rename to lib/crewai/src/crewai/knowledge/source/csv_knowledge_source.py
diff --git a/src/crewai/knowledge/source/excel_knowledge_source.py b/lib/crewai/src/crewai/knowledge/source/excel_knowledge_source.py
similarity index 100%
rename from src/crewai/knowledge/source/excel_knowledge_source.py
rename to lib/crewai/src/crewai/knowledge/source/excel_knowledge_source.py
diff --git a/src/crewai/knowledge/source/json_knowledge_source.py b/lib/crewai/src/crewai/knowledge/source/json_knowledge_source.py
similarity index 100%
rename from src/crewai/knowledge/source/json_knowledge_source.py
rename to lib/crewai/src/crewai/knowledge/source/json_knowledge_source.py
diff --git a/src/crewai/knowledge/source/pdf_knowledge_source.py b/lib/crewai/src/crewai/knowledge/source/pdf_knowledge_source.py
similarity index 100%
rename from src/crewai/knowledge/source/pdf_knowledge_source.py
rename to lib/crewai/src/crewai/knowledge/source/pdf_knowledge_source.py
diff --git a/src/crewai/knowledge/source/string_knowledge_source.py b/lib/crewai/src/crewai/knowledge/source/string_knowledge_source.py
similarity index 100%
rename from src/crewai/knowledge/source/string_knowledge_source.py
rename to lib/crewai/src/crewai/knowledge/source/string_knowledge_source.py
diff --git a/src/crewai/knowledge/source/text_file_knowledge_source.py b/lib/crewai/src/crewai/knowledge/source/text_file_knowledge_source.py
similarity index 100%
rename from src/crewai/knowledge/source/text_file_knowledge_source.py
rename to lib/crewai/src/crewai/knowledge/source/text_file_knowledge_source.py
diff --git a/src/crewai/memory/contextual/__init__.py b/lib/crewai/src/crewai/knowledge/storage/__init__.py
similarity index 100%
rename from src/crewai/memory/contextual/__init__.py
rename to lib/crewai/src/crewai/knowledge/storage/__init__.py
diff --git a/src/crewai/knowledge/storage/base_knowledge_storage.py b/lib/crewai/src/crewai/knowledge/storage/base_knowledge_storage.py
similarity index 100%
rename from src/crewai/knowledge/storage/base_knowledge_storage.py
rename to lib/crewai/src/crewai/knowledge/storage/base_knowledge_storage.py
diff --git a/src/crewai/knowledge/storage/knowledge_storage.py b/lib/crewai/src/crewai/knowledge/storage/knowledge_storage.py
similarity index 100%
rename from src/crewai/knowledge/storage/knowledge_storage.py
rename to lib/crewai/src/crewai/knowledge/storage/knowledge_storage.py
diff --git a/src/crewai/knowledge/utils/__init__.py b/lib/crewai/src/crewai/knowledge/utils/__init__.py
similarity index 100%
rename from src/crewai/knowledge/utils/__init__.py
rename to lib/crewai/src/crewai/knowledge/utils/__init__.py
diff --git a/src/crewai/knowledge/utils/knowledge_utils.py b/lib/crewai/src/crewai/knowledge/utils/knowledge_utils.py
similarity index 100%
rename from src/crewai/knowledge/utils/knowledge_utils.py
rename to lib/crewai/src/crewai/knowledge/utils/knowledge_utils.py
diff --git a/src/crewai/lite_agent.py b/lib/crewai/src/crewai/lite_agent.py
similarity index 100%
rename from src/crewai/lite_agent.py
rename to lib/crewai/src/crewai/lite_agent.py
diff --git a/src/crewai/llm.py b/lib/crewai/src/crewai/llm.py
similarity index 100%
rename from src/crewai/llm.py
rename to lib/crewai/src/crewai/llm.py
diff --git a/src/crewai/llms/__init__.py b/lib/crewai/src/crewai/llms/__init__.py
similarity index 100%
rename from src/crewai/llms/__init__.py
rename to lib/crewai/src/crewai/llms/__init__.py
diff --git a/src/crewai/llms/base_llm.py b/lib/crewai/src/crewai/llms/base_llm.py
similarity index 100%
rename from src/crewai/llms/base_llm.py
rename to lib/crewai/src/crewai/llms/base_llm.py
diff --git a/src/crewai/llms/third_party/__init__.py b/lib/crewai/src/crewai/llms/third_party/__init__.py
similarity index 100%
rename from src/crewai/llms/third_party/__init__.py
rename to lib/crewai/src/crewai/llms/third_party/__init__.py
diff --git a/src/crewai/llms/third_party/ai_suite.py b/lib/crewai/src/crewai/llms/third_party/ai_suite.py
similarity index 100%
rename from src/crewai/llms/third_party/ai_suite.py
rename to lib/crewai/src/crewai/llms/third_party/ai_suite.py
diff --git a/src/crewai/memory/__init__.py b/lib/crewai/src/crewai/memory/__init__.py
similarity index 100%
rename from src/crewai/memory/__init__.py
rename to lib/crewai/src/crewai/memory/__init__.py
diff --git a/src/crewai/memory/entity/__init__.py b/lib/crewai/src/crewai/memory/contextual/__init__.py
similarity index 100%
rename from src/crewai/memory/entity/__init__.py
rename to lib/crewai/src/crewai/memory/contextual/__init__.py
diff --git a/src/crewai/memory/contextual/contextual_memory.py b/lib/crewai/src/crewai/memory/contextual/contextual_memory.py
similarity index 100%
rename from src/crewai/memory/contextual/contextual_memory.py
rename to lib/crewai/src/crewai/memory/contextual/contextual_memory.py
diff --git a/src/crewai/memory/external/__init__.py b/lib/crewai/src/crewai/memory/entity/__init__.py
similarity index 100%
rename from src/crewai/memory/external/__init__.py
rename to lib/crewai/src/crewai/memory/entity/__init__.py
diff --git a/src/crewai/memory/entity/entity_memory.py b/lib/crewai/src/crewai/memory/entity/entity_memory.py
similarity index 100%
rename from src/crewai/memory/entity/entity_memory.py
rename to lib/crewai/src/crewai/memory/entity/entity_memory.py
diff --git a/src/crewai/memory/entity/entity_memory_item.py b/lib/crewai/src/crewai/memory/entity/entity_memory_item.py
similarity index 100%
rename from src/crewai/memory/entity/entity_memory_item.py
rename to lib/crewai/src/crewai/memory/entity/entity_memory_item.py
diff --git a/src/crewai/memory/long_term/__init__.py b/lib/crewai/src/crewai/memory/external/__init__.py
similarity index 100%
rename from src/crewai/memory/long_term/__init__.py
rename to lib/crewai/src/crewai/memory/external/__init__.py
diff --git a/src/crewai/memory/external/external_memory.py b/lib/crewai/src/crewai/memory/external/external_memory.py
similarity index 100%
rename from src/crewai/memory/external/external_memory.py
rename to lib/crewai/src/crewai/memory/external/external_memory.py
diff --git a/src/crewai/memory/external/external_memory_item.py b/lib/crewai/src/crewai/memory/external/external_memory_item.py
similarity index 100%
rename from src/crewai/memory/external/external_memory_item.py
rename to lib/crewai/src/crewai/memory/external/external_memory_item.py
diff --git a/src/crewai/memory/short_term/__init__.py b/lib/crewai/src/crewai/memory/long_term/__init__.py
similarity index 100%
rename from src/crewai/memory/short_term/__init__.py
rename to lib/crewai/src/crewai/memory/long_term/__init__.py
diff --git a/src/crewai/memory/long_term/long_term_memory.py b/lib/crewai/src/crewai/memory/long_term/long_term_memory.py
similarity index 100%
rename from src/crewai/memory/long_term/long_term_memory.py
rename to lib/crewai/src/crewai/memory/long_term/long_term_memory.py
diff --git a/src/crewai/memory/long_term/long_term_memory_item.py b/lib/crewai/src/crewai/memory/long_term/long_term_memory_item.py
similarity index 100%
rename from src/crewai/memory/long_term/long_term_memory_item.py
rename to lib/crewai/src/crewai/memory/long_term/long_term_memory_item.py
diff --git a/src/crewai/memory/memory.py b/lib/crewai/src/crewai/memory/memory.py
similarity index 100%
rename from src/crewai/memory/memory.py
rename to lib/crewai/src/crewai/memory/memory.py
diff --git a/src/crewai/rag/chromadb/__init__.py b/lib/crewai/src/crewai/memory/short_term/__init__.py
similarity index 100%
rename from src/crewai/rag/chromadb/__init__.py
rename to lib/crewai/src/crewai/memory/short_term/__init__.py
diff --git a/src/crewai/memory/short_term/short_term_memory.py b/lib/crewai/src/crewai/memory/short_term/short_term_memory.py
similarity index 100%
rename from src/crewai/memory/short_term/short_term_memory.py
rename to lib/crewai/src/crewai/memory/short_term/short_term_memory.py
diff --git a/src/crewai/memory/short_term/short_term_memory_item.py b/lib/crewai/src/crewai/memory/short_term/short_term_memory_item.py
similarity index 100%
rename from src/crewai/memory/short_term/short_term_memory_item.py
rename to lib/crewai/src/crewai/memory/short_term/short_term_memory_item.py
diff --git a/src/crewai/memory/storage/__init__.py b/lib/crewai/src/crewai/memory/storage/__init__.py
similarity index 100%
rename from src/crewai/memory/storage/__init__.py
rename to lib/crewai/src/crewai/memory/storage/__init__.py
diff --git a/src/crewai/memory/storage/interface.py b/lib/crewai/src/crewai/memory/storage/interface.py
similarity index 100%
rename from src/crewai/memory/storage/interface.py
rename to lib/crewai/src/crewai/memory/storage/interface.py
diff --git a/src/crewai/memory/storage/kickoff_task_outputs_storage.py b/lib/crewai/src/crewai/memory/storage/kickoff_task_outputs_storage.py
similarity index 100%
rename from src/crewai/memory/storage/kickoff_task_outputs_storage.py
rename to lib/crewai/src/crewai/memory/storage/kickoff_task_outputs_storage.py
diff --git a/src/crewai/memory/storage/ltm_sqlite_storage.py b/lib/crewai/src/crewai/memory/storage/ltm_sqlite_storage.py
similarity index 100%
rename from src/crewai/memory/storage/ltm_sqlite_storage.py
rename to lib/crewai/src/crewai/memory/storage/ltm_sqlite_storage.py
diff --git a/src/crewai/memory/storage/mem0_storage.py b/lib/crewai/src/crewai/memory/storage/mem0_storage.py
similarity index 100%
rename from src/crewai/memory/storage/mem0_storage.py
rename to lib/crewai/src/crewai/memory/storage/mem0_storage.py
diff --git a/src/crewai/memory/storage/rag_storage.py b/lib/crewai/src/crewai/memory/storage/rag_storage.py
similarity index 100%
rename from src/crewai/memory/storage/rag_storage.py
rename to lib/crewai/src/crewai/memory/storage/rag_storage.py
diff --git a/src/crewai/process.py b/lib/crewai/src/crewai/process.py
similarity index 100%
rename from src/crewai/process.py
rename to lib/crewai/src/crewai/process.py
diff --git a/src/crewai/project/__init__.py b/lib/crewai/src/crewai/project/__init__.py
similarity index 100%
rename from src/crewai/project/__init__.py
rename to lib/crewai/src/crewai/project/__init__.py
index d60212153..7aabbebe1 100644
--- a/src/crewai/project/__init__.py
+++ b/lib/crewai/src/crewai/project/__init__.py
@@ -14,16 +14,16 @@ from .annotations import (
from .crew_base import CrewBase
__all__ = [
+ "CrewBase",
+ "after_kickoff",
"agent",
+ "before_kickoff",
+ "cache_handler",
+ "callback",
"crew",
- "task",
+ "llm",
"output_json",
"output_pydantic",
+ "task",
"tool",
- "callback",
- "CrewBase",
- "llm",
- "cache_handler",
- "before_kickoff",
- "after_kickoff",
]
diff --git a/src/crewai/project/annotations.py b/lib/crewai/src/crewai/project/annotations.py
similarity index 100%
rename from src/crewai/project/annotations.py
rename to lib/crewai/src/crewai/project/annotations.py
diff --git a/src/crewai/project/crew_base.py b/lib/crewai/src/crewai/project/crew_base.py
similarity index 96%
rename from src/crewai/project/crew_base.py
rename to lib/crewai/src/crewai/project/crew_base.py
index 44871f6a0..ea49d3e77 100644
--- a/src/crewai/project/crew_base.py
+++ b/lib/crewai/src/crewai/project/crew_base.py
@@ -72,11 +72,11 @@ def CrewBase(cls: T) -> T: # noqa: N802
# Add close mcp server method to after kickoff
bound_method = self._create_close_mcp_server_method()
- self._after_kickoff['_close_mcp_server'] = bound_method
+ self._after_kickoff["_close_mcp_server"] = bound_method
def _create_close_mcp_server_method(self):
def _close_mcp_server(self, instance, outputs):
- adapter = getattr(self, '_mcp_server_adapter', None)
+ adapter = getattr(self, "_mcp_server_adapter", None)
if adapter is not None:
try:
adapter.stop()
@@ -87,6 +87,7 @@ def CrewBase(cls: T) -> T: # noqa: N802
_close_mcp_server.is_after_kickoff = True
import types
+
return types.MethodType(_close_mcp_server, self)
def get_mcp_tools(self, *tool_names: list[str]) -> list[BaseTool]:
@@ -95,16 +96,14 @@ def CrewBase(cls: T) -> T: # noqa: N802
from crewai_tools import MCPServerAdapter # type: ignore[import-untyped]
- adapter = getattr(self, '_mcp_server_adapter', None)
+ adapter = getattr(self, "_mcp_server_adapter", None)
if not adapter:
self._mcp_server_adapter = MCPServerAdapter(
- self.mcp_server_params,
- connect_timeout=self.mcp_connect_timeout
+ self.mcp_server_params, connect_timeout=self.mcp_connect_timeout
)
return self._mcp_server_adapter.tools.filter_by_names(tool_names or None)
-
def load_configurations(self):
"""Load agent and task configurations from YAML files."""
if isinstance(self.original_agents_config_path, str):
@@ -209,9 +208,13 @@ def CrewBase(cls: T) -> T: # noqa: N802
if function_calling_llm := agent_info.get("function_calling_llm"):
try:
- self.agents_config[agent_name]["function_calling_llm"] = llms[function_calling_llm]()
+ self.agents_config[agent_name]["function_calling_llm"] = llms[
+ function_calling_llm
+ ]()
except KeyError:
- self.agents_config[agent_name]["function_calling_llm"] = function_calling_llm
+ self.agents_config[agent_name]["function_calling_llm"] = (
+ function_calling_llm
+ )
if step_callback := agent_info.get("step_callback"):
self.agents_config[agent_name]["step_callback"] = callbacks[
diff --git a/src/crewai/project/utils.py b/lib/crewai/src/crewai/project/utils.py
similarity index 100%
rename from src/crewai/project/utils.py
rename to lib/crewai/src/crewai/project/utils.py
diff --git a/src/crewai/tools/cache_tools/__init__.py b/lib/crewai/src/crewai/py.typed
similarity index 100%
rename from src/crewai/tools/cache_tools/__init__.py
rename to lib/crewai/src/crewai/py.typed
diff --git a/src/crewai/rag/__init__.py b/lib/crewai/src/crewai/rag/__init__.py
similarity index 100%
rename from src/crewai/rag/__init__.py
rename to lib/crewai/src/crewai/rag/__init__.py
diff --git a/src/crewai/types/__init__.py b/lib/crewai/src/crewai/rag/chromadb/__init__.py
similarity index 100%
rename from src/crewai/types/__init__.py
rename to lib/crewai/src/crewai/rag/chromadb/__init__.py
diff --git a/src/crewai/rag/chromadb/client.py b/lib/crewai/src/crewai/rag/chromadb/client.py
similarity index 100%
rename from src/crewai/rag/chromadb/client.py
rename to lib/crewai/src/crewai/rag/chromadb/client.py
diff --git a/src/crewai/rag/chromadb/config.py b/lib/crewai/src/crewai/rag/chromadb/config.py
similarity index 100%
rename from src/crewai/rag/chromadb/config.py
rename to lib/crewai/src/crewai/rag/chromadb/config.py
diff --git a/src/crewai/rag/chromadb/constants.py b/lib/crewai/src/crewai/rag/chromadb/constants.py
similarity index 100%
rename from src/crewai/rag/chromadb/constants.py
rename to lib/crewai/src/crewai/rag/chromadb/constants.py
diff --git a/src/crewai/rag/chromadb/factory.py b/lib/crewai/src/crewai/rag/chromadb/factory.py
similarity index 100%
rename from src/crewai/rag/chromadb/factory.py
rename to lib/crewai/src/crewai/rag/chromadb/factory.py
diff --git a/src/crewai/rag/chromadb/types.py b/lib/crewai/src/crewai/rag/chromadb/types.py
similarity index 100%
rename from src/crewai/rag/chromadb/types.py
rename to lib/crewai/src/crewai/rag/chromadb/types.py
diff --git a/src/crewai/rag/chromadb/utils.py b/lib/crewai/src/crewai/rag/chromadb/utils.py
similarity index 100%
rename from src/crewai/rag/chromadb/utils.py
rename to lib/crewai/src/crewai/rag/chromadb/utils.py
diff --git a/src/crewai/rag/config/__init__.py b/lib/crewai/src/crewai/rag/config/__init__.py
similarity index 100%
rename from src/crewai/rag/config/__init__.py
rename to lib/crewai/src/crewai/rag/config/__init__.py
diff --git a/src/crewai/rag/config/base.py b/lib/crewai/src/crewai/rag/config/base.py
similarity index 100%
rename from src/crewai/rag/config/base.py
rename to lib/crewai/src/crewai/rag/config/base.py
diff --git a/src/crewai/rag/config/constants.py b/lib/crewai/src/crewai/rag/config/constants.py
similarity index 100%
rename from src/crewai/rag/config/constants.py
rename to lib/crewai/src/crewai/rag/config/constants.py
diff --git a/src/crewai/rag/config/optional_imports/__init__.py b/lib/crewai/src/crewai/rag/config/optional_imports/__init__.py
similarity index 100%
rename from src/crewai/rag/config/optional_imports/__init__.py
rename to lib/crewai/src/crewai/rag/config/optional_imports/__init__.py
diff --git a/src/crewai/rag/config/optional_imports/base.py b/lib/crewai/src/crewai/rag/config/optional_imports/base.py
similarity index 100%
rename from src/crewai/rag/config/optional_imports/base.py
rename to lib/crewai/src/crewai/rag/config/optional_imports/base.py
diff --git a/src/crewai/rag/config/optional_imports/protocols.py b/lib/crewai/src/crewai/rag/config/optional_imports/protocols.py
similarity index 100%
rename from src/crewai/rag/config/optional_imports/protocols.py
rename to lib/crewai/src/crewai/rag/config/optional_imports/protocols.py
diff --git a/src/crewai/rag/config/optional_imports/providers.py b/lib/crewai/src/crewai/rag/config/optional_imports/providers.py
similarity index 100%
rename from src/crewai/rag/config/optional_imports/providers.py
rename to lib/crewai/src/crewai/rag/config/optional_imports/providers.py
diff --git a/src/crewai/rag/config/optional_imports/types.py b/lib/crewai/src/crewai/rag/config/optional_imports/types.py
similarity index 100%
rename from src/crewai/rag/config/optional_imports/types.py
rename to lib/crewai/src/crewai/rag/config/optional_imports/types.py
diff --git a/src/crewai/rag/config/types.py b/lib/crewai/src/crewai/rag/config/types.py
similarity index 100%
rename from src/crewai/rag/config/types.py
rename to lib/crewai/src/crewai/rag/config/types.py
diff --git a/src/crewai/rag/config/utils.py b/lib/crewai/src/crewai/rag/config/utils.py
similarity index 100%
rename from src/crewai/rag/config/utils.py
rename to lib/crewai/src/crewai/rag/config/utils.py
diff --git a/src/crewai/rag/core/__init__.py b/lib/crewai/src/crewai/rag/core/__init__.py
similarity index 100%
rename from src/crewai/rag/core/__init__.py
rename to lib/crewai/src/crewai/rag/core/__init__.py
diff --git a/src/crewai/rag/core/base_client.py b/lib/crewai/src/crewai/rag/core/base_client.py
similarity index 100%
rename from src/crewai/rag/core/base_client.py
rename to lib/crewai/src/crewai/rag/core/base_client.py
diff --git a/src/crewai/rag/core/base_embeddings_callable.py b/lib/crewai/src/crewai/rag/core/base_embeddings_callable.py
similarity index 100%
rename from src/crewai/rag/core/base_embeddings_callable.py
rename to lib/crewai/src/crewai/rag/core/base_embeddings_callable.py
diff --git a/src/crewai/rag/core/base_embeddings_provider.py b/lib/crewai/src/crewai/rag/core/base_embeddings_provider.py
similarity index 100%
rename from src/crewai/rag/core/base_embeddings_provider.py
rename to lib/crewai/src/crewai/rag/core/base_embeddings_provider.py
diff --git a/src/crewai/rag/core/exceptions.py b/lib/crewai/src/crewai/rag/core/exceptions.py
similarity index 100%
rename from src/crewai/rag/core/exceptions.py
rename to lib/crewai/src/crewai/rag/core/exceptions.py
diff --git a/src/crewai/rag/core/types.py b/lib/crewai/src/crewai/rag/core/types.py
similarity index 100%
rename from src/crewai/rag/core/types.py
rename to lib/crewai/src/crewai/rag/core/types.py
diff --git a/src/crewai/rag/embeddings/__init__.py b/lib/crewai/src/crewai/rag/embeddings/__init__.py
similarity index 100%
rename from src/crewai/rag/embeddings/__init__.py
rename to lib/crewai/src/crewai/rag/embeddings/__init__.py
diff --git a/src/crewai/rag/embeddings/factory.py b/lib/crewai/src/crewai/rag/embeddings/factory.py
similarity index 100%
rename from src/crewai/rag/embeddings/factory.py
rename to lib/crewai/src/crewai/rag/embeddings/factory.py
diff --git a/src/crewai/rag/embeddings/providers/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/__init__.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/__init__.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/__init__.py
diff --git a/src/crewai/rag/embeddings/providers/aws/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/aws/__init__.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/aws/__init__.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/aws/__init__.py
diff --git a/src/crewai/rag/embeddings/providers/aws/bedrock.py b/lib/crewai/src/crewai/rag/embeddings/providers/aws/bedrock.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/aws/bedrock.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/aws/bedrock.py
diff --git a/src/crewai/rag/embeddings/providers/aws/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/aws/types.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/aws/types.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/aws/types.py
diff --git a/src/crewai/rag/embeddings/providers/cohere/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/cohere/__init__.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/cohere/__init__.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/cohere/__init__.py
diff --git a/src/crewai/rag/embeddings/providers/cohere/cohere_provider.py b/lib/crewai/src/crewai/rag/embeddings/providers/cohere/cohere_provider.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/cohere/cohere_provider.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/cohere/cohere_provider.py
diff --git a/src/crewai/rag/embeddings/providers/cohere/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/cohere/types.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/cohere/types.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/cohere/types.py
diff --git a/src/crewai/rag/embeddings/providers/custom/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/custom/__init__.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/custom/__init__.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/custom/__init__.py
diff --git a/src/crewai/rag/embeddings/providers/custom/custom_provider.py b/lib/crewai/src/crewai/rag/embeddings/providers/custom/custom_provider.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/custom/custom_provider.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/custom/custom_provider.py
diff --git a/src/crewai/rag/embeddings/providers/custom/embedding_callable.py b/lib/crewai/src/crewai/rag/embeddings/providers/custom/embedding_callable.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/custom/embedding_callable.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/custom/embedding_callable.py
diff --git a/src/crewai/rag/embeddings/providers/custom/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/custom/types.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/custom/types.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/custom/types.py
diff --git a/src/crewai/rag/embeddings/providers/google/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/google/__init__.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/google/__init__.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/google/__init__.py
diff --git a/src/crewai/rag/embeddings/providers/google/generative_ai.py b/lib/crewai/src/crewai/rag/embeddings/providers/google/generative_ai.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/google/generative_ai.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/google/generative_ai.py
diff --git a/src/crewai/rag/embeddings/providers/google/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/google/types.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/google/types.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/google/types.py
diff --git a/src/crewai/rag/embeddings/providers/google/vertex.py b/lib/crewai/src/crewai/rag/embeddings/providers/google/vertex.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/google/vertex.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/google/vertex.py
diff --git a/src/crewai/rag/embeddings/providers/huggingface/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/huggingface/__init__.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/huggingface/__init__.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/huggingface/__init__.py
diff --git a/src/crewai/rag/embeddings/providers/huggingface/huggingface_provider.py b/lib/crewai/src/crewai/rag/embeddings/providers/huggingface/huggingface_provider.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/huggingface/huggingface_provider.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/huggingface/huggingface_provider.py
diff --git a/src/crewai/rag/embeddings/providers/huggingface/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/huggingface/types.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/huggingface/types.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/huggingface/types.py
diff --git a/src/crewai/rag/embeddings/providers/ibm/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/ibm/__init__.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/ibm/__init__.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/ibm/__init__.py
diff --git a/src/crewai/rag/embeddings/providers/ibm/embedding_callable.py b/lib/crewai/src/crewai/rag/embeddings/providers/ibm/embedding_callable.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/ibm/embedding_callable.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/ibm/embedding_callable.py
diff --git a/src/crewai/rag/embeddings/providers/ibm/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/ibm/types.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/ibm/types.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/ibm/types.py
diff --git a/src/crewai/rag/embeddings/providers/ibm/watsonx.py b/lib/crewai/src/crewai/rag/embeddings/providers/ibm/watsonx.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/ibm/watsonx.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/ibm/watsonx.py
diff --git a/src/crewai/rag/embeddings/providers/instructor/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/instructor/__init__.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/instructor/__init__.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/instructor/__init__.py
diff --git a/src/crewai/rag/embeddings/providers/instructor/instructor_provider.py b/lib/crewai/src/crewai/rag/embeddings/providers/instructor/instructor_provider.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/instructor/instructor_provider.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/instructor/instructor_provider.py
diff --git a/src/crewai/rag/embeddings/providers/instructor/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/instructor/types.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/instructor/types.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/instructor/types.py
diff --git a/src/crewai/rag/embeddings/providers/jina/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/jina/__init__.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/jina/__init__.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/jina/__init__.py
diff --git a/src/crewai/rag/embeddings/providers/jina/jina_provider.py b/lib/crewai/src/crewai/rag/embeddings/providers/jina/jina_provider.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/jina/jina_provider.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/jina/jina_provider.py
diff --git a/src/crewai/rag/embeddings/providers/jina/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/jina/types.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/jina/types.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/jina/types.py
diff --git a/src/crewai/rag/embeddings/providers/microsoft/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/microsoft/__init__.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/microsoft/__init__.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/microsoft/__init__.py
diff --git a/src/crewai/rag/embeddings/providers/microsoft/azure.py b/lib/crewai/src/crewai/rag/embeddings/providers/microsoft/azure.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/microsoft/azure.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/microsoft/azure.py
diff --git a/src/crewai/rag/embeddings/providers/microsoft/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/microsoft/types.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/microsoft/types.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/microsoft/types.py
diff --git a/src/crewai/rag/embeddings/providers/ollama/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/ollama/__init__.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/ollama/__init__.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/ollama/__init__.py
diff --git a/src/crewai/rag/embeddings/providers/ollama/ollama_provider.py b/lib/crewai/src/crewai/rag/embeddings/providers/ollama/ollama_provider.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/ollama/ollama_provider.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/ollama/ollama_provider.py
diff --git a/src/crewai/rag/embeddings/providers/ollama/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/ollama/types.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/ollama/types.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/ollama/types.py
diff --git a/src/crewai/rag/embeddings/providers/onnx/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/onnx/__init__.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/onnx/__init__.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/onnx/__init__.py
diff --git a/src/crewai/rag/embeddings/providers/onnx/onnx_provider.py b/lib/crewai/src/crewai/rag/embeddings/providers/onnx/onnx_provider.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/onnx/onnx_provider.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/onnx/onnx_provider.py
diff --git a/src/crewai/rag/embeddings/providers/onnx/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/onnx/types.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/onnx/types.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/onnx/types.py
diff --git a/src/crewai/rag/embeddings/providers/openai/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/openai/__init__.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/openai/__init__.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/openai/__init__.py
diff --git a/src/crewai/rag/embeddings/providers/openai/openai_provider.py b/lib/crewai/src/crewai/rag/embeddings/providers/openai/openai_provider.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/openai/openai_provider.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/openai/openai_provider.py
diff --git a/src/crewai/rag/embeddings/providers/openai/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/openai/types.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/openai/types.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/openai/types.py
diff --git a/src/crewai/rag/embeddings/providers/openclip/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/openclip/__init__.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/openclip/__init__.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/openclip/__init__.py
diff --git a/src/crewai/rag/embeddings/providers/openclip/openclip_provider.py b/lib/crewai/src/crewai/rag/embeddings/providers/openclip/openclip_provider.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/openclip/openclip_provider.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/openclip/openclip_provider.py
diff --git a/src/crewai/rag/embeddings/providers/openclip/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/openclip/types.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/openclip/types.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/openclip/types.py
diff --git a/src/crewai/rag/embeddings/providers/roboflow/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/roboflow/__init__.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/roboflow/__init__.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/roboflow/__init__.py
diff --git a/src/crewai/rag/embeddings/providers/roboflow/roboflow_provider.py b/lib/crewai/src/crewai/rag/embeddings/providers/roboflow/roboflow_provider.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/roboflow/roboflow_provider.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/roboflow/roboflow_provider.py
diff --git a/src/crewai/rag/embeddings/providers/roboflow/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/roboflow/types.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/roboflow/types.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/roboflow/types.py
diff --git a/src/crewai/rag/embeddings/providers/sentence_transformer/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/sentence_transformer/__init__.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/sentence_transformer/__init__.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/sentence_transformer/__init__.py
diff --git a/src/crewai/rag/embeddings/providers/sentence_transformer/sentence_transformer_provider.py b/lib/crewai/src/crewai/rag/embeddings/providers/sentence_transformer/sentence_transformer_provider.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/sentence_transformer/sentence_transformer_provider.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/sentence_transformer/sentence_transformer_provider.py
diff --git a/src/crewai/rag/embeddings/providers/sentence_transformer/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/sentence_transformer/types.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/sentence_transformer/types.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/sentence_transformer/types.py
diff --git a/src/crewai/rag/embeddings/providers/text2vec/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/text2vec/__init__.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/text2vec/__init__.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/text2vec/__init__.py
diff --git a/src/crewai/rag/embeddings/providers/text2vec/text2vec_provider.py b/lib/crewai/src/crewai/rag/embeddings/providers/text2vec/text2vec_provider.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/text2vec/text2vec_provider.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/text2vec/text2vec_provider.py
diff --git a/src/crewai/rag/embeddings/providers/text2vec/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/text2vec/types.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/text2vec/types.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/text2vec/types.py
diff --git a/src/crewai/rag/embeddings/providers/voyageai/__init__.py b/lib/crewai/src/crewai/rag/embeddings/providers/voyageai/__init__.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/voyageai/__init__.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/voyageai/__init__.py
diff --git a/src/crewai/rag/embeddings/providers/voyageai/embedding_callable.py b/lib/crewai/src/crewai/rag/embeddings/providers/voyageai/embedding_callable.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/voyageai/embedding_callable.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/voyageai/embedding_callable.py
diff --git a/src/crewai/rag/embeddings/providers/voyageai/types.py b/lib/crewai/src/crewai/rag/embeddings/providers/voyageai/types.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/voyageai/types.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/voyageai/types.py
diff --git a/src/crewai/rag/embeddings/providers/voyageai/voyageai_provider.py b/lib/crewai/src/crewai/rag/embeddings/providers/voyageai/voyageai_provider.py
similarity index 100%
rename from src/crewai/rag/embeddings/providers/voyageai/voyageai_provider.py
rename to lib/crewai/src/crewai/rag/embeddings/providers/voyageai/voyageai_provider.py
diff --git a/src/crewai/rag/embeddings/types.py b/lib/crewai/src/crewai/rag/embeddings/types.py
similarity index 100%
rename from src/crewai/rag/embeddings/types.py
rename to lib/crewai/src/crewai/rag/embeddings/types.py
diff --git a/src/crewai/rag/factory.py b/lib/crewai/src/crewai/rag/factory.py
similarity index 100%
rename from src/crewai/rag/factory.py
rename to lib/crewai/src/crewai/rag/factory.py
diff --git a/src/crewai/rag/qdrant/__init__.py b/lib/crewai/src/crewai/rag/qdrant/__init__.py
similarity index 100%
rename from src/crewai/rag/qdrant/__init__.py
rename to lib/crewai/src/crewai/rag/qdrant/__init__.py
diff --git a/src/crewai/rag/qdrant/client.py b/lib/crewai/src/crewai/rag/qdrant/client.py
similarity index 100%
rename from src/crewai/rag/qdrant/client.py
rename to lib/crewai/src/crewai/rag/qdrant/client.py
diff --git a/src/crewai/rag/qdrant/config.py b/lib/crewai/src/crewai/rag/qdrant/config.py
similarity index 100%
rename from src/crewai/rag/qdrant/config.py
rename to lib/crewai/src/crewai/rag/qdrant/config.py
diff --git a/src/crewai/rag/qdrant/constants.py b/lib/crewai/src/crewai/rag/qdrant/constants.py
similarity index 100%
rename from src/crewai/rag/qdrant/constants.py
rename to lib/crewai/src/crewai/rag/qdrant/constants.py
diff --git a/src/crewai/rag/qdrant/factory.py b/lib/crewai/src/crewai/rag/qdrant/factory.py
similarity index 100%
rename from src/crewai/rag/qdrant/factory.py
rename to lib/crewai/src/crewai/rag/qdrant/factory.py
diff --git a/src/crewai/rag/qdrant/types.py b/lib/crewai/src/crewai/rag/qdrant/types.py
similarity index 100%
rename from src/crewai/rag/qdrant/types.py
rename to lib/crewai/src/crewai/rag/qdrant/types.py
diff --git a/src/crewai/rag/qdrant/utils.py b/lib/crewai/src/crewai/rag/qdrant/utils.py
similarity index 100%
rename from src/crewai/rag/qdrant/utils.py
rename to lib/crewai/src/crewai/rag/qdrant/utils.py
diff --git a/src/crewai/rag/storage/__init__.py b/lib/crewai/src/crewai/rag/storage/__init__.py
similarity index 100%
rename from src/crewai/rag/storage/__init__.py
rename to lib/crewai/src/crewai/rag/storage/__init__.py
diff --git a/src/crewai/rag/storage/base_rag_storage.py b/lib/crewai/src/crewai/rag/storage/base_rag_storage.py
similarity index 100%
rename from src/crewai/rag/storage/base_rag_storage.py
rename to lib/crewai/src/crewai/rag/storage/base_rag_storage.py
diff --git a/src/crewai/rag/types.py b/lib/crewai/src/crewai/rag/types.py
similarity index 100%
rename from src/crewai/rag/types.py
rename to lib/crewai/src/crewai/rag/types.py
diff --git a/src/crewai/security/__init__.py b/lib/crewai/src/crewai/security/__init__.py
similarity index 100%
rename from src/crewai/security/__init__.py
rename to lib/crewai/src/crewai/security/__init__.py
diff --git a/src/crewai/security/constants.py b/lib/crewai/src/crewai/security/constants.py
similarity index 100%
rename from src/crewai/security/constants.py
rename to lib/crewai/src/crewai/security/constants.py
diff --git a/src/crewai/security/fingerprint.py b/lib/crewai/src/crewai/security/fingerprint.py
similarity index 100%
rename from src/crewai/security/fingerprint.py
rename to lib/crewai/src/crewai/security/fingerprint.py
diff --git a/src/crewai/security/security_config.py b/lib/crewai/src/crewai/security/security_config.py
similarity index 100%
rename from src/crewai/security/security_config.py
rename to lib/crewai/src/crewai/security/security_config.py
diff --git a/src/crewai/task.py b/lib/crewai/src/crewai/task.py
similarity index 100%
rename from src/crewai/task.py
rename to lib/crewai/src/crewai/task.py
diff --git a/src/crewai/tasks/__init__.py b/lib/crewai/src/crewai/tasks/__init__.py
similarity index 100%
rename from src/crewai/tasks/__init__.py
rename to lib/crewai/src/crewai/tasks/__init__.py
diff --git a/src/crewai/tasks/conditional_task.py b/lib/crewai/src/crewai/tasks/conditional_task.py
similarity index 100%
rename from src/crewai/tasks/conditional_task.py
rename to lib/crewai/src/crewai/tasks/conditional_task.py
diff --git a/src/crewai/tasks/hallucination_guardrail.py b/lib/crewai/src/crewai/tasks/hallucination_guardrail.py
similarity index 100%
rename from src/crewai/tasks/hallucination_guardrail.py
rename to lib/crewai/src/crewai/tasks/hallucination_guardrail.py
diff --git a/src/crewai/tasks/llm_guardrail.py b/lib/crewai/src/crewai/tasks/llm_guardrail.py
similarity index 100%
rename from src/crewai/tasks/llm_guardrail.py
rename to lib/crewai/src/crewai/tasks/llm_guardrail.py
diff --git a/src/crewai/tasks/output_format.py b/lib/crewai/src/crewai/tasks/output_format.py
similarity index 100%
rename from src/crewai/tasks/output_format.py
rename to lib/crewai/src/crewai/tasks/output_format.py
diff --git a/src/crewai/tasks/task_output.py b/lib/crewai/src/crewai/tasks/task_output.py
similarity index 100%
rename from src/crewai/tasks/task_output.py
rename to lib/crewai/src/crewai/tasks/task_output.py
diff --git a/src/crewai/telemetry/__init__.py b/lib/crewai/src/crewai/telemetry/__init__.py
similarity index 100%
rename from src/crewai/telemetry/__init__.py
rename to lib/crewai/src/crewai/telemetry/__init__.py
diff --git a/src/crewai/telemetry/constants.py b/lib/crewai/src/crewai/telemetry/constants.py
similarity index 100%
rename from src/crewai/telemetry/constants.py
rename to lib/crewai/src/crewai/telemetry/constants.py
diff --git a/src/crewai/telemetry/telemetry.py b/lib/crewai/src/crewai/telemetry/telemetry.py
similarity index 100%
rename from src/crewai/telemetry/telemetry.py
rename to lib/crewai/src/crewai/telemetry/telemetry.py
diff --git a/src/crewai/telemetry/utils.py b/lib/crewai/src/crewai/telemetry/utils.py
similarity index 100%
rename from src/crewai/telemetry/utils.py
rename to lib/crewai/src/crewai/telemetry/utils.py
diff --git a/src/crewai/tools/__init__.py b/lib/crewai/src/crewai/tools/__init__.py
similarity index 100%
rename from src/crewai/tools/__init__.py
rename to lib/crewai/src/crewai/tools/__init__.py
diff --git a/src/crewai/tools/agent_tools/__init__.py b/lib/crewai/src/crewai/tools/agent_tools/__init__.py
similarity index 100%
rename from src/crewai/tools/agent_tools/__init__.py
rename to lib/crewai/src/crewai/tools/agent_tools/__init__.py
diff --git a/src/crewai/tools/agent_tools/add_image_tool.py b/lib/crewai/src/crewai/tools/agent_tools/add_image_tool.py
similarity index 100%
rename from src/crewai/tools/agent_tools/add_image_tool.py
rename to lib/crewai/src/crewai/tools/agent_tools/add_image_tool.py
diff --git a/src/crewai/tools/agent_tools/agent_tools.py b/lib/crewai/src/crewai/tools/agent_tools/agent_tools.py
similarity index 100%
rename from src/crewai/tools/agent_tools/agent_tools.py
rename to lib/crewai/src/crewai/tools/agent_tools/agent_tools.py
diff --git a/src/crewai/tools/agent_tools/ask_question_tool.py b/lib/crewai/src/crewai/tools/agent_tools/ask_question_tool.py
similarity index 100%
rename from src/crewai/tools/agent_tools/ask_question_tool.py
rename to lib/crewai/src/crewai/tools/agent_tools/ask_question_tool.py
diff --git a/src/crewai/tools/agent_tools/base_agent_tools.py b/lib/crewai/src/crewai/tools/agent_tools/base_agent_tools.py
similarity index 100%
rename from src/crewai/tools/agent_tools/base_agent_tools.py
rename to lib/crewai/src/crewai/tools/agent_tools/base_agent_tools.py
diff --git a/src/crewai/tools/agent_tools/delegate_work_tool.py b/lib/crewai/src/crewai/tools/agent_tools/delegate_work_tool.py
similarity index 100%
rename from src/crewai/tools/agent_tools/delegate_work_tool.py
rename to lib/crewai/src/crewai/tools/agent_tools/delegate_work_tool.py
diff --git a/src/crewai/tools/base_tool.py b/lib/crewai/src/crewai/tools/base_tool.py
similarity index 100%
rename from src/crewai/tools/base_tool.py
rename to lib/crewai/src/crewai/tools/base_tool.py
diff --git a/tests/__init__.py b/lib/crewai/src/crewai/tools/cache_tools/__init__.py
similarity index 100%
rename from tests/__init__.py
rename to lib/crewai/src/crewai/tools/cache_tools/__init__.py
diff --git a/src/crewai/tools/cache_tools/cache_tools.py b/lib/crewai/src/crewai/tools/cache_tools/cache_tools.py
similarity index 100%
rename from src/crewai/tools/cache_tools/cache_tools.py
rename to lib/crewai/src/crewai/tools/cache_tools/cache_tools.py
diff --git a/src/crewai/tools/structured_tool.py b/lib/crewai/src/crewai/tools/structured_tool.py
similarity index 100%
rename from src/crewai/tools/structured_tool.py
rename to lib/crewai/src/crewai/tools/structured_tool.py
diff --git a/src/crewai/tools/tool_calling.py b/lib/crewai/src/crewai/tools/tool_calling.py
similarity index 100%
rename from src/crewai/tools/tool_calling.py
rename to lib/crewai/src/crewai/tools/tool_calling.py
diff --git a/src/crewai/tools/tool_types.py b/lib/crewai/src/crewai/tools/tool_types.py
similarity index 100%
rename from src/crewai/tools/tool_types.py
rename to lib/crewai/src/crewai/tools/tool_types.py
diff --git a/src/crewai/tools/tool_usage.py b/lib/crewai/src/crewai/tools/tool_usage.py
similarity index 100%
rename from src/crewai/tools/tool_usage.py
rename to lib/crewai/src/crewai/tools/tool_usage.py
diff --git a/src/crewai/translations/en.json b/lib/crewai/src/crewai/translations/en.json
similarity index 100%
rename from src/crewai/translations/en.json
rename to lib/crewai/src/crewai/translations/en.json
diff --git a/tests/agents/__init__.py b/lib/crewai/src/crewai/types/__init__.py
similarity index 100%
rename from tests/agents/__init__.py
rename to lib/crewai/src/crewai/types/__init__.py
diff --git a/src/crewai/types/crew_chat.py b/lib/crewai/src/crewai/types/crew_chat.py
similarity index 100%
rename from src/crewai/types/crew_chat.py
rename to lib/crewai/src/crewai/types/crew_chat.py
diff --git a/src/crewai/types/hitl.py b/lib/crewai/src/crewai/types/hitl.py
similarity index 100%
rename from src/crewai/types/hitl.py
rename to lib/crewai/src/crewai/types/hitl.py
diff --git a/src/crewai/types/usage_metrics.py b/lib/crewai/src/crewai/types/usage_metrics.py
similarity index 100%
rename from src/crewai/types/usage_metrics.py
rename to lib/crewai/src/crewai/types/usage_metrics.py
diff --git a/src/crewai/utilities/__init__.py b/lib/crewai/src/crewai/utilities/__init__.py
similarity index 100%
rename from src/crewai/utilities/__init__.py
rename to lib/crewai/src/crewai/utilities/__init__.py
diff --git a/src/crewai/utilities/agent_utils.py b/lib/crewai/src/crewai/utilities/agent_utils.py
similarity index 100%
rename from src/crewai/utilities/agent_utils.py
rename to lib/crewai/src/crewai/utilities/agent_utils.py
diff --git a/src/crewai/utilities/config.py b/lib/crewai/src/crewai/utilities/config.py
similarity index 100%
rename from src/crewai/utilities/config.py
rename to lib/crewai/src/crewai/utilities/config.py
diff --git a/src/crewai/utilities/constants.py b/lib/crewai/src/crewai/utilities/constants.py
similarity index 100%
rename from src/crewai/utilities/constants.py
rename to lib/crewai/src/crewai/utilities/constants.py
diff --git a/src/crewai/utilities/converter.py b/lib/crewai/src/crewai/utilities/converter.py
similarity index 100%
rename from src/crewai/utilities/converter.py
rename to lib/crewai/src/crewai/utilities/converter.py
diff --git a/src/crewai/utilities/crew/__init__.py b/lib/crewai/src/crewai/utilities/crew/__init__.py
similarity index 100%
rename from src/crewai/utilities/crew/__init__.py
rename to lib/crewai/src/crewai/utilities/crew/__init__.py
diff --git a/src/crewai/utilities/crew/crew_context.py b/lib/crewai/src/crewai/utilities/crew/crew_context.py
similarity index 100%
rename from src/crewai/utilities/crew/crew_context.py
rename to lib/crewai/src/crewai/utilities/crew/crew_context.py
diff --git a/src/crewai/utilities/crew/models.py b/lib/crewai/src/crewai/utilities/crew/models.py
similarity index 100%
rename from src/crewai/utilities/crew/models.py
rename to lib/crewai/src/crewai/utilities/crew/models.py
diff --git a/src/crewai/utilities/crew_json_encoder.py b/lib/crewai/src/crewai/utilities/crew_json_encoder.py
similarity index 100%
rename from src/crewai/utilities/crew_json_encoder.py
rename to lib/crewai/src/crewai/utilities/crew_json_encoder.py
diff --git a/src/crewai/utilities/errors.py b/lib/crewai/src/crewai/utilities/errors.py
similarity index 100%
rename from src/crewai/utilities/errors.py
rename to lib/crewai/src/crewai/utilities/errors.py
diff --git a/src/crewai/utilities/evaluators/__init__.py b/lib/crewai/src/crewai/utilities/evaluators/__init__.py
similarity index 100%
rename from src/crewai/utilities/evaluators/__init__.py
rename to lib/crewai/src/crewai/utilities/evaluators/__init__.py
diff --git a/src/crewai/utilities/evaluators/crew_evaluator_handler.py b/lib/crewai/src/crewai/utilities/evaluators/crew_evaluator_handler.py
similarity index 100%
rename from src/crewai/utilities/evaluators/crew_evaluator_handler.py
rename to lib/crewai/src/crewai/utilities/evaluators/crew_evaluator_handler.py
diff --git a/src/crewai/utilities/evaluators/task_evaluator.py b/lib/crewai/src/crewai/utilities/evaluators/task_evaluator.py
similarity index 100%
rename from src/crewai/utilities/evaluators/task_evaluator.py
rename to lib/crewai/src/crewai/utilities/evaluators/task_evaluator.py
diff --git a/src/crewai/utilities/events/__init__.py b/lib/crewai/src/crewai/utilities/events/__init__.py
similarity index 100%
rename from src/crewai/utilities/events/__init__.py
rename to lib/crewai/src/crewai/utilities/events/__init__.py
diff --git a/src/crewai/utilities/events/base_event_listener.py b/lib/crewai/src/crewai/utilities/events/base_event_listener.py
similarity index 100%
rename from src/crewai/utilities/events/base_event_listener.py
rename to lib/crewai/src/crewai/utilities/events/base_event_listener.py
diff --git a/src/crewai/utilities/events/crewai_event_bus.py b/lib/crewai/src/crewai/utilities/events/crewai_event_bus.py
similarity index 100%
rename from src/crewai/utilities/events/crewai_event_bus.py
rename to lib/crewai/src/crewai/utilities/events/crewai_event_bus.py
diff --git a/src/crewai/utilities/exceptions/__init__.py b/lib/crewai/src/crewai/utilities/exceptions/__init__.py
similarity index 100%
rename from src/crewai/utilities/exceptions/__init__.py
rename to lib/crewai/src/crewai/utilities/exceptions/__init__.py
diff --git a/src/crewai/utilities/exceptions/context_window_exceeding_exception.py b/lib/crewai/src/crewai/utilities/exceptions/context_window_exceeding_exception.py
similarity index 100%
rename from src/crewai/utilities/exceptions/context_window_exceeding_exception.py
rename to lib/crewai/src/crewai/utilities/exceptions/context_window_exceeding_exception.py
diff --git a/src/crewai/utilities/file_handler.py b/lib/crewai/src/crewai/utilities/file_handler.py
similarity index 100%
rename from src/crewai/utilities/file_handler.py
rename to lib/crewai/src/crewai/utilities/file_handler.py
diff --git a/src/crewai/utilities/formatter.py b/lib/crewai/src/crewai/utilities/formatter.py
similarity index 100%
rename from src/crewai/utilities/formatter.py
rename to lib/crewai/src/crewai/utilities/formatter.py
diff --git a/src/crewai/utilities/guardrail.py b/lib/crewai/src/crewai/utilities/guardrail.py
similarity index 100%
rename from src/crewai/utilities/guardrail.py
rename to lib/crewai/src/crewai/utilities/guardrail.py
diff --git a/src/crewai/utilities/i18n.py b/lib/crewai/src/crewai/utilities/i18n.py
similarity index 100%
rename from src/crewai/utilities/i18n.py
rename to lib/crewai/src/crewai/utilities/i18n.py
diff --git a/src/crewai/utilities/import_utils.py b/lib/crewai/src/crewai/utilities/import_utils.py
similarity index 100%
rename from src/crewai/utilities/import_utils.py
rename to lib/crewai/src/crewai/utilities/import_utils.py
diff --git a/src/crewai/utilities/internal_instructor.py b/lib/crewai/src/crewai/utilities/internal_instructor.py
similarity index 100%
rename from src/crewai/utilities/internal_instructor.py
rename to lib/crewai/src/crewai/utilities/internal_instructor.py
diff --git a/src/crewai/utilities/llm_utils.py b/lib/crewai/src/crewai/utilities/llm_utils.py
similarity index 100%
rename from src/crewai/utilities/llm_utils.py
rename to lib/crewai/src/crewai/utilities/llm_utils.py
diff --git a/src/crewai/utilities/logger.py b/lib/crewai/src/crewai/utilities/logger.py
similarity index 100%
rename from src/crewai/utilities/logger.py
rename to lib/crewai/src/crewai/utilities/logger.py
diff --git a/src/crewai/utilities/logger_utils.py b/lib/crewai/src/crewai/utilities/logger_utils.py
similarity index 100%
rename from src/crewai/utilities/logger_utils.py
rename to lib/crewai/src/crewai/utilities/logger_utils.py
diff --git a/src/crewai/utilities/paths.py b/lib/crewai/src/crewai/utilities/paths.py
similarity index 100%
rename from src/crewai/utilities/paths.py
rename to lib/crewai/src/crewai/utilities/paths.py
diff --git a/src/crewai/utilities/planning_handler.py b/lib/crewai/src/crewai/utilities/planning_handler.py
similarity index 100%
rename from src/crewai/utilities/planning_handler.py
rename to lib/crewai/src/crewai/utilities/planning_handler.py
diff --git a/src/crewai/utilities/printer.py b/lib/crewai/src/crewai/utilities/printer.py
similarity index 100%
rename from src/crewai/utilities/printer.py
rename to lib/crewai/src/crewai/utilities/printer.py
diff --git a/src/crewai/utilities/prompts.py b/lib/crewai/src/crewai/utilities/prompts.py
similarity index 100%
rename from src/crewai/utilities/prompts.py
rename to lib/crewai/src/crewai/utilities/prompts.py
diff --git a/src/crewai/utilities/pydantic_schema_parser.py b/lib/crewai/src/crewai/utilities/pydantic_schema_parser.py
similarity index 100%
rename from src/crewai/utilities/pydantic_schema_parser.py
rename to lib/crewai/src/crewai/utilities/pydantic_schema_parser.py
diff --git a/src/crewai/utilities/reasoning_handler.py b/lib/crewai/src/crewai/utilities/reasoning_handler.py
similarity index 100%
rename from src/crewai/utilities/reasoning_handler.py
rename to lib/crewai/src/crewai/utilities/reasoning_handler.py
diff --git a/src/crewai/utilities/rpm_controller.py b/lib/crewai/src/crewai/utilities/rpm_controller.py
similarity index 100%
rename from src/crewai/utilities/rpm_controller.py
rename to lib/crewai/src/crewai/utilities/rpm_controller.py
diff --git a/src/crewai/utilities/serialization.py b/lib/crewai/src/crewai/utilities/serialization.py
similarity index 100%
rename from src/crewai/utilities/serialization.py
rename to lib/crewai/src/crewai/utilities/serialization.py
diff --git a/src/crewai/utilities/string_utils.py b/lib/crewai/src/crewai/utilities/string_utils.py
similarity index 100%
rename from src/crewai/utilities/string_utils.py
rename to lib/crewai/src/crewai/utilities/string_utils.py
diff --git a/src/crewai/utilities/task_output_storage_handler.py b/lib/crewai/src/crewai/utilities/task_output_storage_handler.py
similarity index 100%
rename from src/crewai/utilities/task_output_storage_handler.py
rename to lib/crewai/src/crewai/utilities/task_output_storage_handler.py
diff --git a/src/crewai/utilities/token_counter_callback.py b/lib/crewai/src/crewai/utilities/token_counter_callback.py
similarity index 100%
rename from src/crewai/utilities/token_counter_callback.py
rename to lib/crewai/src/crewai/utilities/token_counter_callback.py
diff --git a/src/crewai/utilities/tool_utils.py b/lib/crewai/src/crewai/utilities/tool_utils.py
similarity index 100%
rename from src/crewai/utilities/tool_utils.py
rename to lib/crewai/src/crewai/utilities/tool_utils.py
diff --git a/src/crewai/utilities/training_converter.py b/lib/crewai/src/crewai/utilities/training_converter.py
similarity index 100%
rename from src/crewai/utilities/training_converter.py
rename to lib/crewai/src/crewai/utilities/training_converter.py
diff --git a/src/crewai/utilities/training_handler.py b/lib/crewai/src/crewai/utilities/training_handler.py
similarity index 100%
rename from src/crewai/utilities/training_handler.py
rename to lib/crewai/src/crewai/utilities/training_handler.py
diff --git a/src/crewai/utilities/types.py b/lib/crewai/src/crewai/utilities/types.py
similarity index 100%
rename from src/crewai/utilities/types.py
rename to lib/crewai/src/crewai/utilities/types.py
diff --git a/tests/cli/__init__.py b/lib/crewai/tests/__init__.py
similarity index 100%
rename from tests/cli/__init__.py
rename to lib/crewai/tests/__init__.py
diff --git a/tests/cli/authentication/__init__.py b/lib/crewai/tests/agents/__init__.py
similarity index 100%
rename from tests/cli/authentication/__init__.py
rename to lib/crewai/tests/agents/__init__.py
diff --git a/tests/agents/agent_adapters/__init__.py b/lib/crewai/tests/agents/agent_adapters/__init__.py
similarity index 100%
rename from tests/agents/agent_adapters/__init__.py
rename to lib/crewai/tests/agents/agent_adapters/__init__.py
diff --git a/tests/agents/agent_adapters/test_base_agent_adapter.py b/lib/crewai/tests/agents/agent_adapters/test_base_agent_adapter.py
similarity index 99%
rename from tests/agents/agent_adapters/test_base_agent_adapter.py
rename to lib/crewai/tests/agents/agent_adapters/test_base_agent_adapter.py
index bb0b93279..9a346a53d 100644
--- a/tests/agents/agent_adapters/test_base_agent_adapter.py
+++ b/lib/crewai/tests/agents/agent_adapters/test_base_agent_adapter.py
@@ -1,12 +1,11 @@
from typing import Any
import pytest
-from pydantic import BaseModel
-
from crewai.agent import BaseAgent
from crewai.agents.agent_adapters.base_agent_adapter import BaseAgentAdapter
from crewai.tools import BaseTool
from crewai.utilities.token_counter_callback import TokenProcess
+from pydantic import BaseModel
# Concrete implementation for testing
diff --git a/tests/agents/agent_adapters/test_base_tool_adapter.py b/lib/crewai/tests/agents/agent_adapters/test_base_tool_adapter.py
similarity index 100%
rename from tests/agents/agent_adapters/test_base_tool_adapter.py
rename to lib/crewai/tests/agents/agent_adapters/test_base_tool_adapter.py
diff --git a/tests/agents/agent_builder/__init__.py b/lib/crewai/tests/agents/agent_builder/__init__.py
similarity index 100%
rename from tests/agents/agent_builder/__init__.py
rename to lib/crewai/tests/agents/agent_builder/__init__.py
diff --git a/tests/agents/agent_builder/test_base_agent.py b/lib/crewai/tests/agents/agent_builder/test_base_agent.py
similarity index 100%
rename from tests/agents/agent_builder/test_base_agent.py
rename to lib/crewai/tests/agents/agent_builder/test_base_agent.py
diff --git a/tests/agents/test_agent.py b/lib/crewai/tests/agents/test_agent.py
similarity index 100%
rename from tests/agents/test_agent.py
rename to lib/crewai/tests/agents/test_agent.py
diff --git a/tests/agents/test_agent_inject_date.py b/lib/crewai/tests/agents/test_agent_inject_date.py
similarity index 100%
rename from tests/agents/test_agent_inject_date.py
rename to lib/crewai/tests/agents/test_agent_inject_date.py
diff --git a/tests/agents/test_agent_reasoning.py b/lib/crewai/tests/agents/test_agent_reasoning.py
similarity index 100%
rename from tests/agents/test_agent_reasoning.py
rename to lib/crewai/tests/agents/test_agent_reasoning.py
diff --git a/tests/agents/test_crew_agent_parser.py b/lib/crewai/tests/agents/test_crew_agent_parser.py
similarity index 99%
rename from tests/agents/test_crew_agent_parser.py
rename to lib/crewai/tests/agents/test_crew_agent_parser.py
index 72e44487c..f3076a036 100644
--- a/tests/agents/test_crew_agent_parser.py
+++ b/lib/crewai/tests/agents/test_crew_agent_parser.py
@@ -1,5 +1,4 @@
import pytest
-
from crewai.agents import parser
from crewai.agents.parser import (
AgentAction,
diff --git a/tests/agents/test_lite_agent.py b/lib/crewai/tests/agents/test_lite_agent.py
similarity index 99%
rename from tests/agents/test_lite_agent.py
rename to lib/crewai/tests/agents/test_lite_agent.py
index 0fa06c0ff..856f26e6a 100644
--- a/tests/agents/test_lite_agent.py
+++ b/lib/crewai/tests/agents/test_lite_agent.py
@@ -4,8 +4,6 @@ from typing import cast
from unittest.mock import Mock, patch
import pytest
-from pydantic import BaseModel, Field
-
from crewai import LLM, Agent
from crewai.events.event_bus import crewai_event_bus
from crewai.events.types.agent_events import LiteAgentExecutionStartedEvent
@@ -14,6 +12,7 @@ from crewai.flow import Flow, start
from crewai.lite_agent import LiteAgent, LiteAgentOutput
from crewai.llms.base_llm import BaseLLM
from crewai.tools import BaseTool
+from pydantic import BaseModel, Field
# A simple test tool
diff --git a/tests/cassettes/TestAgentEvaluator.test_eval_lite_agent.yaml b/lib/crewai/tests/cassettes/TestAgentEvaluator.test_eval_lite_agent.yaml
similarity index 100%
rename from tests/cassettes/TestAgentEvaluator.test_eval_lite_agent.yaml
rename to lib/crewai/tests/cassettes/TestAgentEvaluator.test_eval_lite_agent.yaml
diff --git a/tests/cassettes/TestAgentEvaluator.test_eval_specific_agents_from_crew.yaml b/lib/crewai/tests/cassettes/TestAgentEvaluator.test_eval_specific_agents_from_crew.yaml
similarity index 100%
rename from tests/cassettes/TestAgentEvaluator.test_eval_specific_agents_from_crew.yaml
rename to lib/crewai/tests/cassettes/TestAgentEvaluator.test_eval_specific_agents_from_crew.yaml
diff --git a/tests/cassettes/TestAgentEvaluator.test_evaluate_current_iteration.yaml b/lib/crewai/tests/cassettes/TestAgentEvaluator.test_evaluate_current_iteration.yaml
similarity index 100%
rename from tests/cassettes/TestAgentEvaluator.test_evaluate_current_iteration.yaml
rename to lib/crewai/tests/cassettes/TestAgentEvaluator.test_evaluate_current_iteration.yaml
diff --git a/tests/cassettes/TestAgentEvaluator.test_failed_evaluation.yaml b/lib/crewai/tests/cassettes/TestAgentEvaluator.test_failed_evaluation.yaml
similarity index 100%
rename from tests/cassettes/TestAgentEvaluator.test_failed_evaluation.yaml
rename to lib/crewai/tests/cassettes/TestAgentEvaluator.test_failed_evaluation.yaml
diff --git a/tests/cassettes/TestTraceListenerSetup.test_batch_manager_finalizes_batch_clears_buffer.yaml b/lib/crewai/tests/cassettes/TestTraceListenerSetup.test_batch_manager_finalizes_batch_clears_buffer.yaml
similarity index 100%
rename from tests/cassettes/TestTraceListenerSetup.test_batch_manager_finalizes_batch_clears_buffer.yaml
rename to lib/crewai/tests/cassettes/TestTraceListenerSetup.test_batch_manager_finalizes_batch_clears_buffer.yaml
diff --git a/tests/cassettes/TestTraceListenerSetup.test_events_collection_batch_manager.yaml b/lib/crewai/tests/cassettes/TestTraceListenerSetup.test_events_collection_batch_manager.yaml
similarity index 100%
rename from tests/cassettes/TestTraceListenerSetup.test_events_collection_batch_manager.yaml
rename to lib/crewai/tests/cassettes/TestTraceListenerSetup.test_events_collection_batch_manager.yaml
diff --git a/tests/cassettes/TestTraceListenerSetup.test_first_time_user_trace_collection_user_accepts.yaml b/lib/crewai/tests/cassettes/TestTraceListenerSetup.test_first_time_user_trace_collection_user_accepts.yaml
similarity index 100%
rename from tests/cassettes/TestTraceListenerSetup.test_first_time_user_trace_collection_user_accepts.yaml
rename to lib/crewai/tests/cassettes/TestTraceListenerSetup.test_first_time_user_trace_collection_user_accepts.yaml
diff --git a/tests/cassettes/TestTraceListenerSetup.test_first_time_user_trace_collection_with_timeout.yaml b/lib/crewai/tests/cassettes/TestTraceListenerSetup.test_first_time_user_trace_collection_with_timeout.yaml
similarity index 100%
rename from tests/cassettes/TestTraceListenerSetup.test_first_time_user_trace_collection_with_timeout.yaml
rename to lib/crewai/tests/cassettes/TestTraceListenerSetup.test_first_time_user_trace_collection_with_timeout.yaml
diff --git a/tests/cassettes/TestTraceListenerSetup.test_first_time_user_trace_consolidation_logic.yaml b/lib/crewai/tests/cassettes/TestTraceListenerSetup.test_first_time_user_trace_consolidation_logic.yaml
similarity index 100%
rename from tests/cassettes/TestTraceListenerSetup.test_first_time_user_trace_consolidation_logic.yaml
rename to lib/crewai/tests/cassettes/TestTraceListenerSetup.test_first_time_user_trace_consolidation_logic.yaml
diff --git a/tests/cassettes/TestTraceListenerSetup.test_trace_batch_marked_as_failed_on_finalize_error.yaml b/lib/crewai/tests/cassettes/TestTraceListenerSetup.test_trace_batch_marked_as_failed_on_finalize_error.yaml
similarity index 100%
rename from tests/cassettes/TestTraceListenerSetup.test_trace_batch_marked_as_failed_on_finalize_error.yaml
rename to lib/crewai/tests/cassettes/TestTraceListenerSetup.test_trace_batch_marked_as_failed_on_finalize_error.yaml
diff --git a/tests/cassettes/TestTraceListenerSetup.test_trace_listener_collects_crew_events.yaml b/lib/crewai/tests/cassettes/TestTraceListenerSetup.test_trace_listener_collects_crew_events.yaml
similarity index 100%
rename from tests/cassettes/TestTraceListenerSetup.test_trace_listener_collects_crew_events.yaml
rename to lib/crewai/tests/cassettes/TestTraceListenerSetup.test_trace_listener_collects_crew_events.yaml
diff --git a/tests/cassettes/TestTraceListenerSetup.test_trace_listener_disabled_when_env_false.yaml b/lib/crewai/tests/cassettes/TestTraceListenerSetup.test_trace_listener_disabled_when_env_false.yaml
similarity index 100%
rename from tests/cassettes/TestTraceListenerSetup.test_trace_listener_disabled_when_env_false.yaml
rename to lib/crewai/tests/cassettes/TestTraceListenerSetup.test_trace_listener_disabled_when_env_false.yaml
diff --git a/tests/cassettes/TestTraceListenerSetup.test_trace_listener_ephemeral_batch.yaml b/lib/crewai/tests/cassettes/TestTraceListenerSetup.test_trace_listener_ephemeral_batch.yaml
similarity index 100%
rename from tests/cassettes/TestTraceListenerSetup.test_trace_listener_ephemeral_batch.yaml
rename to lib/crewai/tests/cassettes/TestTraceListenerSetup.test_trace_listener_ephemeral_batch.yaml
diff --git a/tests/cassettes/TestTraceListenerSetup.test_trace_listener_setup_correctly_with_tracing_flag.yaml b/lib/crewai/tests/cassettes/TestTraceListenerSetup.test_trace_listener_setup_correctly_with_tracing_flag.yaml
similarity index 100%
rename from tests/cassettes/TestTraceListenerSetup.test_trace_listener_setup_correctly_with_tracing_flag.yaml
rename to lib/crewai/tests/cassettes/TestTraceListenerSetup.test_trace_listener_setup_correctly_with_tracing_flag.yaml
diff --git a/tests/cassettes/TestTraceListenerSetup.test_trace_listener_with_authenticated_user.yaml b/lib/crewai/tests/cassettes/TestTraceListenerSetup.test_trace_listener_with_authenticated_user.yaml
similarity index 100%
rename from tests/cassettes/TestTraceListenerSetup.test_trace_listener_with_authenticated_user.yaml
rename to lib/crewai/tests/cassettes/TestTraceListenerSetup.test_trace_listener_with_authenticated_user.yaml
diff --git a/tests/cassettes/test_after_crew_modification.yaml b/lib/crewai/tests/cassettes/test_after_crew_modification.yaml
similarity index 100%
rename from tests/cassettes/test_after_crew_modification.yaml
rename to lib/crewai/tests/cassettes/test_after_crew_modification.yaml
diff --git a/tests/cassettes/test_after_kickoff_modification.yaml b/lib/crewai/tests/cassettes/test_after_kickoff_modification.yaml
similarity index 100%
rename from tests/cassettes/test_after_kickoff_modification.yaml
rename to lib/crewai/tests/cassettes/test_after_kickoff_modification.yaml
diff --git a/tests/cassettes/test_agent_custom_max_iterations.yaml b/lib/crewai/tests/cassettes/test_agent_custom_max_iterations.yaml
similarity index 100%
rename from tests/cassettes/test_agent_custom_max_iterations.yaml
rename to lib/crewai/tests/cassettes/test_agent_custom_max_iterations.yaml
diff --git a/tests/cassettes/test_agent_error_on_parsing_tool.yaml b/lib/crewai/tests/cassettes/test_agent_error_on_parsing_tool.yaml
similarity index 100%
rename from tests/cassettes/test_agent_error_on_parsing_tool.yaml
rename to lib/crewai/tests/cassettes/test_agent_error_on_parsing_tool.yaml
diff --git a/tests/cassettes/test_agent_execute_task_basic.yaml b/lib/crewai/tests/cassettes/test_agent_execute_task_basic.yaml
similarity index 100%
rename from tests/cassettes/test_agent_execute_task_basic.yaml
rename to lib/crewai/tests/cassettes/test_agent_execute_task_basic.yaml
diff --git a/tests/cassettes/test_agent_execute_task_with_context.yaml b/lib/crewai/tests/cassettes/test_agent_execute_task_with_context.yaml
similarity index 100%
rename from tests/cassettes/test_agent_execute_task_with_context.yaml
rename to lib/crewai/tests/cassettes/test_agent_execute_task_with_context.yaml
diff --git a/tests/cassettes/test_agent_execute_task_with_custom_llm.yaml b/lib/crewai/tests/cassettes/test_agent_execute_task_with_custom_llm.yaml
similarity index 100%
rename from tests/cassettes/test_agent_execute_task_with_custom_llm.yaml
rename to lib/crewai/tests/cassettes/test_agent_execute_task_with_custom_llm.yaml
diff --git a/tests/cassettes/test_agent_execute_task_with_ollama.yaml b/lib/crewai/tests/cassettes/test_agent_execute_task_with_ollama.yaml
similarity index 100%
rename from tests/cassettes/test_agent_execute_task_with_ollama.yaml
rename to lib/crewai/tests/cassettes/test_agent_execute_task_with_ollama.yaml
diff --git a/tests/cassettes/test_agent_execute_task_with_tool.yaml b/lib/crewai/tests/cassettes/test_agent_execute_task_with_tool.yaml
similarity index 100%
rename from tests/cassettes/test_agent_execute_task_with_tool.yaml
rename to lib/crewai/tests/cassettes/test_agent_execute_task_with_tool.yaml
diff --git a/tests/cassettes/test_agent_execution.yaml b/lib/crewai/tests/cassettes/test_agent_execution.yaml
similarity index 100%
rename from tests/cassettes/test_agent_execution.yaml
rename to lib/crewai/tests/cassettes/test_agent_execution.yaml
diff --git a/tests/cassettes/test_agent_execution_with_specific_tools.yaml b/lib/crewai/tests/cassettes/test_agent_execution_with_specific_tools.yaml
similarity index 100%
rename from tests/cassettes/test_agent_execution_with_specific_tools.yaml
rename to lib/crewai/tests/cassettes/test_agent_execution_with_specific_tools.yaml
diff --git a/tests/cassettes/test_agent_execution_with_tools.yaml b/lib/crewai/tests/cassettes/test_agent_execution_with_tools.yaml
similarity index 100%
rename from tests/cassettes/test_agent_execution_with_tools.yaml
rename to lib/crewai/tests/cassettes/test_agent_execution_with_tools.yaml
diff --git a/tests/cassettes/test_agent_function_calling_llm.yaml b/lib/crewai/tests/cassettes/test_agent_function_calling_llm.yaml
similarity index 100%
rename from tests/cassettes/test_agent_function_calling_llm.yaml
rename to lib/crewai/tests/cassettes/test_agent_function_calling_llm.yaml
diff --git a/tests/cassettes/test_agent_knowledege_with_crewai_knowledge.yaml b/lib/crewai/tests/cassettes/test_agent_knowledege_with_crewai_knowledge.yaml
similarity index 100%
rename from tests/cassettes/test_agent_knowledege_with_crewai_knowledge.yaml
rename to lib/crewai/tests/cassettes/test_agent_knowledege_with_crewai_knowledge.yaml
diff --git a/tests/cassettes/test_agent_moved_on_after_max_iterations.yaml b/lib/crewai/tests/cassettes/test_agent_moved_on_after_max_iterations.yaml
similarity index 100%
rename from tests/cassettes/test_agent_moved_on_after_max_iterations.yaml
rename to lib/crewai/tests/cassettes/test_agent_moved_on_after_max_iterations.yaml
diff --git a/tests/cassettes/test_agent_output_when_guardrail_returns_base_model.yaml b/lib/crewai/tests/cassettes/test_agent_output_when_guardrail_returns_base_model.yaml
similarity index 100%
rename from tests/cassettes/test_agent_output_when_guardrail_returns_base_model.yaml
rename to lib/crewai/tests/cassettes/test_agent_output_when_guardrail_returns_base_model.yaml
diff --git a/tests/cassettes/test_agent_powered_by_new_o_model_family_that_allows_skipping_tool.yaml b/lib/crewai/tests/cassettes/test_agent_powered_by_new_o_model_family_that_allows_skipping_tool.yaml
similarity index 100%
rename from tests/cassettes/test_agent_powered_by_new_o_model_family_that_allows_skipping_tool.yaml
rename to lib/crewai/tests/cassettes/test_agent_powered_by_new_o_model_family_that_allows_skipping_tool.yaml
diff --git a/tests/cassettes/test_agent_powered_by_new_o_model_family_that_uses_tool.yaml b/lib/crewai/tests/cassettes/test_agent_powered_by_new_o_model_family_that_uses_tool.yaml
similarity index 100%
rename from tests/cassettes/test_agent_powered_by_new_o_model_family_that_uses_tool.yaml
rename to lib/crewai/tests/cassettes/test_agent_powered_by_new_o_model_family_that_uses_tool.yaml
diff --git a/tests/cassettes/test_agent_remembers_output_format_after_using_tools_too_many_times.yaml b/lib/crewai/tests/cassettes/test_agent_remembers_output_format_after_using_tools_too_many_times.yaml
similarity index 100%
rename from tests/cassettes/test_agent_remembers_output_format_after_using_tools_too_many_times.yaml
rename to lib/crewai/tests/cassettes/test_agent_remembers_output_format_after_using_tools_too_many_times.yaml
diff --git a/tests/cassettes/test_agent_repeated_tool_usage.yaml b/lib/crewai/tests/cassettes/test_agent_repeated_tool_usage.yaml
similarity index 100%
rename from tests/cassettes/test_agent_repeated_tool_usage.yaml
rename to lib/crewai/tests/cassettes/test_agent_repeated_tool_usage.yaml
diff --git a/tests/cassettes/test_agent_repeated_tool_usage_check_even_with_disabled_cache.yaml b/lib/crewai/tests/cassettes/test_agent_repeated_tool_usage_check_even_with_disabled_cache.yaml
similarity index 100%
rename from tests/cassettes/test_agent_repeated_tool_usage_check_even_with_disabled_cache.yaml
rename to lib/crewai/tests/cassettes/test_agent_repeated_tool_usage_check_even_with_disabled_cache.yaml
diff --git a/tests/cassettes/test_agent_respect_the_max_rpm_set.yaml b/lib/crewai/tests/cassettes/test_agent_respect_the_max_rpm_set.yaml
similarity index 100%
rename from tests/cassettes/test_agent_respect_the_max_rpm_set.yaml
rename to lib/crewai/tests/cassettes/test_agent_respect_the_max_rpm_set.yaml
diff --git a/tests/cassettes/test_agent_respect_the_max_rpm_set_over_crew_rpm.yaml b/lib/crewai/tests/cassettes/test_agent_respect_the_max_rpm_set_over_crew_rpm.yaml
similarity index 100%
rename from tests/cassettes/test_agent_respect_the_max_rpm_set_over_crew_rpm.yaml
rename to lib/crewai/tests/cassettes/test_agent_respect_the_max_rpm_set_over_crew_rpm.yaml
diff --git a/tests/cassettes/test_agent_step_callback.yaml b/lib/crewai/tests/cassettes/test_agent_step_callback.yaml
similarity index 100%
rename from tests/cassettes/test_agent_step_callback.yaml
rename to lib/crewai/tests/cassettes/test_agent_step_callback.yaml
diff --git a/tests/cassettes/test_agent_usage_metrics_are_captured_for_hierarchical_process.yaml b/lib/crewai/tests/cassettes/test_agent_usage_metrics_are_captured_for_hierarchical_process.yaml
similarity index 100%
rename from tests/cassettes/test_agent_usage_metrics_are_captured_for_hierarchical_process.yaml
rename to lib/crewai/tests/cassettes/test_agent_usage_metrics_are_captured_for_hierarchical_process.yaml
diff --git a/tests/cassettes/test_agent_use_specific_tasks_output_as_context.yaml b/lib/crewai/tests/cassettes/test_agent_use_specific_tasks_output_as_context.yaml
similarity index 100%
rename from tests/cassettes/test_agent_use_specific_tasks_output_as_context.yaml
rename to lib/crewai/tests/cassettes/test_agent_use_specific_tasks_output_as_context.yaml
diff --git a/tests/cassettes/test_agent_with_knowledge_sources.yaml b/lib/crewai/tests/cassettes/test_agent_with_knowledge_sources.yaml
similarity index 100%
rename from tests/cassettes/test_agent_with_knowledge_sources.yaml
rename to lib/crewai/tests/cassettes/test_agent_with_knowledge_sources.yaml
diff --git a/tests/cassettes/test_agent_with_knowledge_sources_extensive_role.yaml b/lib/crewai/tests/cassettes/test_agent_with_knowledge_sources_extensive_role.yaml
similarity index 100%
rename from tests/cassettes/test_agent_with_knowledge_sources_extensive_role.yaml
rename to lib/crewai/tests/cassettes/test_agent_with_knowledge_sources_extensive_role.yaml
diff --git a/tests/cassettes/test_agent_with_knowledge_sources_generate_search_query.yaml b/lib/crewai/tests/cassettes/test_agent_with_knowledge_sources_generate_search_query.yaml
similarity index 100%
rename from tests/cassettes/test_agent_with_knowledge_sources_generate_search_query.yaml
rename to lib/crewai/tests/cassettes/test_agent_with_knowledge_sources_generate_search_query.yaml
diff --git a/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold.yaml b/lib/crewai/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold.yaml
similarity index 100%
rename from tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold.yaml
rename to lib/crewai/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold.yaml
diff --git a/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold_default.yaml b/lib/crewai/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold_default.yaml
similarity index 100%
rename from tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold_default.yaml
rename to lib/crewai/tests/cassettes/test_agent_with_knowledge_sources_with_query_limit_and_score_threshold_default.yaml
diff --git a/tests/cassettes/test_agent_with_knowledge_sources_works_with_copy.yaml b/lib/crewai/tests/cassettes/test_agent_with_knowledge_sources_works_with_copy.yaml
similarity index 100%
rename from tests/cassettes/test_agent_with_knowledge_sources_works_with_copy.yaml
rename to lib/crewai/tests/cassettes/test_agent_with_knowledge_sources_works_with_copy.yaml
diff --git a/tests/cassettes/test_agent_with_knowledge_with_no_crewai_knowledge.yaml b/lib/crewai/tests/cassettes/test_agent_with_knowledge_with_no_crewai_knowledge.yaml
similarity index 100%
rename from tests/cassettes/test_agent_with_knowledge_with_no_crewai_knowledge.yaml
rename to lib/crewai/tests/cassettes/test_agent_with_knowledge_with_no_crewai_knowledge.yaml
diff --git a/tests/cassettes/test_agent_with_ollama_llama3.yaml b/lib/crewai/tests/cassettes/test_agent_with_ollama_llama3.yaml
similarity index 100%
rename from tests/cassettes/test_agent_with_ollama_llama3.yaml
rename to lib/crewai/tests/cassettes/test_agent_with_ollama_llama3.yaml
diff --git a/tests/cassettes/test_agent_with_only_crewai_knowledge.yaml b/lib/crewai/tests/cassettes/test_agent_with_only_crewai_knowledge.yaml
similarity index 100%
rename from tests/cassettes/test_agent_with_only_crewai_knowledge.yaml
rename to lib/crewai/tests/cassettes/test_agent_with_only_crewai_knowledge.yaml
diff --git a/tests/cassettes/test_agent_without_max_rpm_respects_crew_rpm.yaml b/lib/crewai/tests/cassettes/test_agent_without_max_rpm_respects_crew_rpm.yaml
similarity index 100%
rename from tests/cassettes/test_agent_without_max_rpm_respects_crew_rpm.yaml
rename to lib/crewai/tests/cassettes/test_agent_without_max_rpm_respects_crew_rpm.yaml
diff --git a/tests/cassettes/test_agent_without_max_rpm_respet_crew_rpm.yaml b/lib/crewai/tests/cassettes/test_agent_without_max_rpm_respet_crew_rpm.yaml
similarity index 100%
rename from tests/cassettes/test_agent_without_max_rpm_respet_crew_rpm.yaml
rename to lib/crewai/tests/cassettes/test_agent_without_max_rpm_respet_crew_rpm.yaml
diff --git a/tests/cassettes/test_agents_do_not_get_delegation_tools_with_there_is_only_one_agent.yaml b/lib/crewai/tests/cassettes/test_agents_do_not_get_delegation_tools_with_there_is_only_one_agent.yaml
similarity index 100%
rename from tests/cassettes/test_agents_do_not_get_delegation_tools_with_there_is_only_one_agent.yaml
rename to lib/crewai/tests/cassettes/test_agents_do_not_get_delegation_tools_with_there_is_only_one_agent.yaml
diff --git a/tests/cassettes/test_api_calls_throttling.yaml b/lib/crewai/tests/cassettes/test_api_calls_throttling.yaml
similarity index 100%
rename from tests/cassettes/test_api_calls_throttling.yaml
rename to lib/crewai/tests/cassettes/test_api_calls_throttling.yaml
diff --git a/tests/cassettes/test_async_tool_using_decorator_within_flow.yaml b/lib/crewai/tests/cassettes/test_async_tool_using_decorator_within_flow.yaml
similarity index 100%
rename from tests/cassettes/test_async_tool_using_decorator_within_flow.yaml
rename to lib/crewai/tests/cassettes/test_async_tool_using_decorator_within_flow.yaml
diff --git a/tests/cassettes/test_async_tool_using_decorator_within_isolated_crew.yaml b/lib/crewai/tests/cassettes/test_async_tool_using_decorator_within_isolated_crew.yaml
similarity index 100%
rename from tests/cassettes/test_async_tool_using_decorator_within_isolated_crew.yaml
rename to lib/crewai/tests/cassettes/test_async_tool_using_decorator_within_isolated_crew.yaml
diff --git a/tests/cassettes/test_async_tool_using_within_isolated_crew.yaml b/lib/crewai/tests/cassettes/test_async_tool_using_within_isolated_crew.yaml
similarity index 100%
rename from tests/cassettes/test_async_tool_using_within_isolated_crew.yaml
rename to lib/crewai/tests/cassettes/test_async_tool_using_within_isolated_crew.yaml
diff --git a/tests/cassettes/test_async_tool_within_flow.yaml b/lib/crewai/tests/cassettes/test_async_tool_within_flow.yaml
similarity index 100%
rename from tests/cassettes/test_async_tool_within_flow.yaml
rename to lib/crewai/tests/cassettes/test_async_tool_within_flow.yaml
diff --git a/tests/cassettes/test_before_crew_modification.yaml b/lib/crewai/tests/cassettes/test_before_crew_modification.yaml
similarity index 100%
rename from tests/cassettes/test_before_crew_modification.yaml
rename to lib/crewai/tests/cassettes/test_before_crew_modification.yaml
diff --git a/tests/cassettes/test_before_crew_with_none_input.yaml b/lib/crewai/tests/cassettes/test_before_crew_with_none_input.yaml
similarity index 100%
rename from tests/cassettes/test_before_crew_with_none_input.yaml
rename to lib/crewai/tests/cassettes/test_before_crew_with_none_input.yaml
diff --git a/tests/cassettes/test_before_kickoff_callback.yaml b/lib/crewai/tests/cassettes/test_before_kickoff_callback.yaml
similarity index 100%
rename from tests/cassettes/test_before_kickoff_callback.yaml
rename to lib/crewai/tests/cassettes/test_before_kickoff_callback.yaml
diff --git a/tests/cassettes/test_before_kickoff_modification.yaml b/lib/crewai/tests/cassettes/test_before_kickoff_modification.yaml
similarity index 100%
rename from tests/cassettes/test_before_kickoff_modification.yaml
rename to lib/crewai/tests/cassettes/test_before_kickoff_modification.yaml
diff --git a/tests/cassettes/test_before_kickoff_with_none_input.yaml b/lib/crewai/tests/cassettes/test_before_kickoff_with_none_input.yaml
similarity index 100%
rename from tests/cassettes/test_before_kickoff_with_none_input.yaml
rename to lib/crewai/tests/cassettes/test_before_kickoff_with_none_input.yaml
diff --git a/tests/cassettes/test_before_kickoff_without_inputs.yaml b/lib/crewai/tests/cassettes/test_before_kickoff_without_inputs.yaml
similarity index 100%
rename from tests/cassettes/test_before_kickoff_without_inputs.yaml
rename to lib/crewai/tests/cassettes/test_before_kickoff_without_inputs.yaml
diff --git a/tests/cassettes/test_cache_hitting.yaml b/lib/crewai/tests/cassettes/test_cache_hitting.yaml
similarity index 100%
rename from tests/cassettes/test_cache_hitting.yaml
rename to lib/crewai/tests/cassettes/test_cache_hitting.yaml
diff --git a/tests/cassettes/test_cache_hitting_between_agents.yaml b/lib/crewai/tests/cassettes/test_cache_hitting_between_agents.yaml
similarity index 100%
rename from tests/cassettes/test_cache_hitting_between_agents.yaml
rename to lib/crewai/tests/cassettes/test_cache_hitting_between_agents.yaml
diff --git a/tests/cassettes/test_conditional_task_last_task_when_conditional_is_false.yaml b/lib/crewai/tests/cassettes/test_conditional_task_last_task_when_conditional_is_false.yaml
similarity index 100%
rename from tests/cassettes/test_conditional_task_last_task_when_conditional_is_false.yaml
rename to lib/crewai/tests/cassettes/test_conditional_task_last_task_when_conditional_is_false.yaml
diff --git a/tests/cassettes/test_conditional_task_last_task_when_conditional_is_true.yaml b/lib/crewai/tests/cassettes/test_conditional_task_last_task_when_conditional_is_true.yaml
similarity index 100%
rename from tests/cassettes/test_conditional_task_last_task_when_conditional_is_true.yaml
rename to lib/crewai/tests/cassettes/test_conditional_task_last_task_when_conditional_is_true.yaml
diff --git a/tests/cassettes/test_crew_creation.yaml b/lib/crewai/tests/cassettes/test_crew_creation.yaml
similarity index 100%
rename from tests/cassettes/test_crew_creation.yaml
rename to lib/crewai/tests/cassettes/test_crew_creation.yaml
diff --git a/tests/cassettes/test_crew_does_not_interpolate_without_inputs.yaml b/lib/crewai/tests/cassettes/test_crew_does_not_interpolate_without_inputs.yaml
similarity index 100%
rename from tests/cassettes/test_crew_does_not_interpolate_without_inputs.yaml
rename to lib/crewai/tests/cassettes/test_crew_does_not_interpolate_without_inputs.yaml
diff --git a/tests/cassettes/test_crew_external_memory_save.yaml b/lib/crewai/tests/cassettes/test_crew_external_memory_save.yaml
similarity index 100%
rename from tests/cassettes/test_crew_external_memory_save.yaml
rename to lib/crewai/tests/cassettes/test_crew_external_memory_save.yaml
diff --git a/tests/cassettes/test_crew_external_memory_save_using_crew_without_memory_flag[save].yaml b/lib/crewai/tests/cassettes/test_crew_external_memory_save_using_crew_without_memory_flag[save].yaml
similarity index 100%
rename from tests/cassettes/test_crew_external_memory_save_using_crew_without_memory_flag[save].yaml
rename to lib/crewai/tests/cassettes/test_crew_external_memory_save_using_crew_without_memory_flag[save].yaml
diff --git a/tests/cassettes/test_crew_external_memory_save_using_crew_without_memory_flag[search].yaml b/lib/crewai/tests/cassettes/test_crew_external_memory_save_using_crew_without_memory_flag[search].yaml
similarity index 100%
rename from tests/cassettes/test_crew_external_memory_save_using_crew_without_memory_flag[search].yaml
rename to lib/crewai/tests/cassettes/test_crew_external_memory_save_using_crew_without_memory_flag[search].yaml
diff --git a/tests/cassettes/test_crew_external_memory_save_with_memory_flag[save].yaml b/lib/crewai/tests/cassettes/test_crew_external_memory_save_with_memory_flag[save].yaml
similarity index 100%
rename from tests/cassettes/test_crew_external_memory_save_with_memory_flag[save].yaml
rename to lib/crewai/tests/cassettes/test_crew_external_memory_save_with_memory_flag[save].yaml
diff --git a/tests/cassettes/test_crew_external_memory_save_with_memory_flag[search].yaml b/lib/crewai/tests/cassettes/test_crew_external_memory_save_with_memory_flag[search].yaml
similarity index 100%
rename from tests/cassettes/test_crew_external_memory_save_with_memory_flag[search].yaml
rename to lib/crewai/tests/cassettes/test_crew_external_memory_save_with_memory_flag[search].yaml
diff --git a/tests/cassettes/test_crew_external_memory_search.yaml b/lib/crewai/tests/cassettes/test_crew_external_memory_search.yaml
similarity index 100%
rename from tests/cassettes/test_crew_external_memory_search.yaml
rename to lib/crewai/tests/cassettes/test_crew_external_memory_search.yaml
diff --git a/tests/cassettes/test_crew_function_calling_llm.yaml b/lib/crewai/tests/cassettes/test_crew_function_calling_llm.yaml
similarity index 100%
rename from tests/cassettes/test_crew_function_calling_llm.yaml
rename to lib/crewai/tests/cassettes/test_crew_function_calling_llm.yaml
diff --git a/tests/cassettes/test_crew_kickoff_streaming_usage_metrics.yaml b/lib/crewai/tests/cassettes/test_crew_kickoff_streaming_usage_metrics.yaml
similarity index 100%
rename from tests/cassettes/test_crew_kickoff_streaming_usage_metrics.yaml
rename to lib/crewai/tests/cassettes/test_crew_kickoff_streaming_usage_metrics.yaml
diff --git a/tests/cassettes/test_crew_kickoff_usage_metrics.yaml b/lib/crewai/tests/cassettes/test_crew_kickoff_usage_metrics.yaml
similarity index 100%
rename from tests/cassettes/test_crew_kickoff_usage_metrics.yaml
rename to lib/crewai/tests/cassettes/test_crew_kickoff_usage_metrics.yaml
diff --git a/tests/cassettes/test_crew_log_file_output.yaml b/lib/crewai/tests/cassettes/test_crew_log_file_output.yaml
similarity index 100%
rename from tests/cassettes/test_crew_log_file_output.yaml
rename to lib/crewai/tests/cassettes/test_crew_log_file_output.yaml
diff --git a/tests/cassettes/test_crew_output_file_end_to_end.yaml b/lib/crewai/tests/cassettes/test_crew_output_file_end_to_end.yaml
similarity index 100%
rename from tests/cassettes/test_crew_output_file_end_to_end.yaml
rename to lib/crewai/tests/cassettes/test_crew_output_file_end_to_end.yaml
diff --git a/tests/cassettes/test_crew_verbose_output.yaml b/lib/crewai/tests/cassettes/test_crew_verbose_output.yaml
similarity index 100%
rename from tests/cassettes/test_crew_verbose_output.yaml
rename to lib/crewai/tests/cassettes/test_crew_verbose_output.yaml
diff --git a/tests/cassettes/test_crew_with_delegating_agents.yaml b/lib/crewai/tests/cassettes/test_crew_with_delegating_agents.yaml
similarity index 100%
rename from tests/cassettes/test_crew_with_delegating_agents.yaml
rename to lib/crewai/tests/cassettes/test_crew_with_delegating_agents.yaml
diff --git a/tests/cassettes/test_crew_with_delegating_agents_should_not_override_agent_tools.yaml b/lib/crewai/tests/cassettes/test_crew_with_delegating_agents_should_not_override_agent_tools.yaml
similarity index 100%
rename from tests/cassettes/test_crew_with_delegating_agents_should_not_override_agent_tools.yaml
rename to lib/crewai/tests/cassettes/test_crew_with_delegating_agents_should_not_override_agent_tools.yaml
diff --git a/tests/cassettes/test_crew_with_delegating_agents_should_not_override_task_tools.yaml b/lib/crewai/tests/cassettes/test_crew_with_delegating_agents_should_not_override_task_tools.yaml
similarity index 100%
rename from tests/cassettes/test_crew_with_delegating_agents_should_not_override_task_tools.yaml
rename to lib/crewai/tests/cassettes/test_crew_with_delegating_agents_should_not_override_task_tools.yaml
diff --git a/tests/cassettes/test_crew_with_failing_task_guardrails.yaml b/lib/crewai/tests/cassettes/test_crew_with_failing_task_guardrails.yaml
similarity index 100%
rename from tests/cassettes/test_crew_with_failing_task_guardrails.yaml
rename to lib/crewai/tests/cassettes/test_crew_with_failing_task_guardrails.yaml
diff --git a/tests/cassettes/test_crew_with_knowledge_sources_works_with_copy.yaml b/lib/crewai/tests/cassettes/test_crew_with_knowledge_sources_works_with_copy.yaml
similarity index 100%
rename from tests/cassettes/test_crew_with_knowledge_sources_works_with_copy.yaml
rename to lib/crewai/tests/cassettes/test_crew_with_knowledge_sources_works_with_copy.yaml
diff --git a/tests/cassettes/test_custom_converter_cls.yaml b/lib/crewai/tests/cassettes/test_custom_converter_cls.yaml
similarity index 100%
rename from tests/cassettes/test_custom_converter_cls.yaml
rename to lib/crewai/tests/cassettes/test_custom_converter_cls.yaml
diff --git a/tests/cassettes/test_custom_llm_implementation.yaml b/lib/crewai/tests/cassettes/test_custom_llm_implementation.yaml
similarity index 100%
rename from tests/cassettes/test_custom_llm_implementation.yaml
rename to lib/crewai/tests/cassettes/test_custom_llm_implementation.yaml
diff --git a/tests/cassettes/test_custom_llm_within_crew.yaml b/lib/crewai/tests/cassettes/test_custom_llm_within_crew.yaml
similarity index 100%
rename from tests/cassettes/test_custom_llm_within_crew.yaml
rename to lib/crewai/tests/cassettes/test_custom_llm_within_crew.yaml
diff --git a/tests/cassettes/test_deepseek_r1_with_open_router.yaml b/lib/crewai/tests/cassettes/test_deepseek_r1_with_open_router.yaml
similarity index 100%
rename from tests/cassettes/test_deepseek_r1_with_open_router.yaml
rename to lib/crewai/tests/cassettes/test_deepseek_r1_with_open_router.yaml
diff --git a/tests/cassettes/test_delegation_is_not_enabled_if_there_are_only_one_agent.yaml b/lib/crewai/tests/cassettes/test_delegation_is_not_enabled_if_there_are_only_one_agent.yaml
similarity index 100%
rename from tests/cassettes/test_delegation_is_not_enabled_if_there_are_only_one_agent.yaml
rename to lib/crewai/tests/cassettes/test_delegation_is_not_enabled_if_there_are_only_one_agent.yaml
diff --git a/tests/cassettes/test_disabled_memory_using_contextual_memory.yaml b/lib/crewai/tests/cassettes/test_disabled_memory_using_contextual_memory.yaml
similarity index 100%
rename from tests/cassettes/test_disabled_memory_using_contextual_memory.yaml
rename to lib/crewai/tests/cassettes/test_disabled_memory_using_contextual_memory.yaml
diff --git a/tests/cassettes/test_disabling_cache_for_agent.yaml b/lib/crewai/tests/cassettes/test_disabling_cache_for_agent.yaml
similarity index 100%
rename from tests/cassettes/test_disabling_cache_for_agent.yaml
rename to lib/crewai/tests/cassettes/test_disabling_cache_for_agent.yaml
diff --git a/tests/cassettes/test_do_not_allow_crewai_trigger_context_for_first_task_hierarchical.yaml b/lib/crewai/tests/cassettes/test_do_not_allow_crewai_trigger_context_for_first_task_hierarchical.yaml
similarity index 100%
rename from tests/cassettes/test_do_not_allow_crewai_trigger_context_for_first_task_hierarchical.yaml
rename to lib/crewai/tests/cassettes/test_do_not_allow_crewai_trigger_context_for_first_task_hierarchical.yaml
diff --git a/tests/cassettes/test_docling_source.yaml b/lib/crewai/tests/cassettes/test_docling_source.yaml
similarity index 100%
rename from tests/cassettes/test_docling_source.yaml
rename to lib/crewai/tests/cassettes/test_docling_source.yaml
diff --git a/tests/cassettes/test_ensure_exchanged_messages_are_propagated_to_external_memory.yaml b/lib/crewai/tests/cassettes/test_ensure_exchanged_messages_are_propagated_to_external_memory.yaml
similarity index 100%
rename from tests/cassettes/test_ensure_exchanged_messages_are_propagated_to_external_memory.yaml
rename to lib/crewai/tests/cassettes/test_ensure_exchanged_messages_are_propagated_to_external_memory.yaml
diff --git a/tests/cassettes/test_ensure_first_task_allow_crewai_trigger_context_is_false_does_not_inject.yaml b/lib/crewai/tests/cassettes/test_ensure_first_task_allow_crewai_trigger_context_is_false_does_not_inject.yaml
similarity index 100%
rename from tests/cassettes/test_ensure_first_task_allow_crewai_trigger_context_is_false_does_not_inject.yaml
rename to lib/crewai/tests/cassettes/test_ensure_first_task_allow_crewai_trigger_context_is_false_does_not_inject.yaml
diff --git a/tests/cassettes/test_first_task_auto_inject_trigger.yaml b/lib/crewai/tests/cassettes/test_first_task_auto_inject_trigger.yaml
similarity index 100%
rename from tests/cassettes/test_first_task_auto_inject_trigger.yaml
rename to lib/crewai/tests/cassettes/test_first_task_auto_inject_trigger.yaml
diff --git a/tests/cassettes/test_gemini_models[gemini-gemini-2.0-flash-001].yaml b/lib/crewai/tests/cassettes/test_gemini_models[gemini-gemini-2.0-flash-001].yaml
similarity index 100%
rename from tests/cassettes/test_gemini_models[gemini-gemini-2.0-flash-001].yaml
rename to lib/crewai/tests/cassettes/test_gemini_models[gemini-gemini-2.0-flash-001].yaml
diff --git a/tests/cassettes/test_gemini_models[gemini-gemini-2.0-flash-lite-001].yaml b/lib/crewai/tests/cassettes/test_gemini_models[gemini-gemini-2.0-flash-lite-001].yaml
similarity index 100%
rename from tests/cassettes/test_gemini_models[gemini-gemini-2.0-flash-lite-001].yaml
rename to lib/crewai/tests/cassettes/test_gemini_models[gemini-gemini-2.0-flash-lite-001].yaml
diff --git a/tests/cassettes/test_gemini_models[gemini-gemini-2.0-flash-thinking-exp-01-21].yaml b/lib/crewai/tests/cassettes/test_gemini_models[gemini-gemini-2.0-flash-thinking-exp-01-21].yaml
similarity index 100%
rename from tests/cassettes/test_gemini_models[gemini-gemini-2.0-flash-thinking-exp-01-21].yaml
rename to lib/crewai/tests/cassettes/test_gemini_models[gemini-gemini-2.0-flash-thinking-exp-01-21].yaml
diff --git a/tests/cassettes/test_gemini_models[gemini-gemini-2.5-flash-preview-04-17].yaml b/lib/crewai/tests/cassettes/test_gemini_models[gemini-gemini-2.5-flash-preview-04-17].yaml
similarity index 100%
rename from tests/cassettes/test_gemini_models[gemini-gemini-2.5-flash-preview-04-17].yaml
rename to lib/crewai/tests/cassettes/test_gemini_models[gemini-gemini-2.5-flash-preview-04-17].yaml
diff --git a/tests/cassettes/test_gemini_models[gemini-gemini-2.5-pro-exp-03-25].yaml b/lib/crewai/tests/cassettes/test_gemini_models[gemini-gemini-2.5-pro-exp-03-25].yaml
similarity index 100%
rename from tests/cassettes/test_gemini_models[gemini-gemini-2.5-pro-exp-03-25].yaml
rename to lib/crewai/tests/cassettes/test_gemini_models[gemini-gemini-2.5-pro-exp-03-25].yaml
diff --git a/tests/cassettes/test_gemma3[gemini-gemma-3-27b-it].yaml b/lib/crewai/tests/cassettes/test_gemma3[gemini-gemma-3-27b-it].yaml
similarity index 100%
rename from tests/cassettes/test_gemma3[gemini-gemma-3-27b-it].yaml
rename to lib/crewai/tests/cassettes/test_gemma3[gemini-gemma-3-27b-it].yaml
diff --git a/tests/cassettes/test_get_knowledge_search_query.yaml b/lib/crewai/tests/cassettes/test_get_knowledge_search_query.yaml
similarity index 100%
rename from tests/cassettes/test_get_knowledge_search_query.yaml
rename to lib/crewai/tests/cassettes/test_get_knowledge_search_query.yaml
diff --git a/tests/cassettes/test_gpt_4_1[gpt-4.1-mini-2025-04-14].yaml b/lib/crewai/tests/cassettes/test_gpt_4_1[gpt-4.1-mini-2025-04-14].yaml
similarity index 100%
rename from tests/cassettes/test_gpt_4_1[gpt-4.1-mini-2025-04-14].yaml
rename to lib/crewai/tests/cassettes/test_gpt_4_1[gpt-4.1-mini-2025-04-14].yaml
diff --git a/tests/cassettes/test_gpt_4_1[gpt-4.1-nano-2025-04-14].yaml b/lib/crewai/tests/cassettes/test_gpt_4_1[gpt-4.1-nano-2025-04-14].yaml
similarity index 100%
rename from tests/cassettes/test_gpt_4_1[gpt-4.1-nano-2025-04-14].yaml
rename to lib/crewai/tests/cassettes/test_gpt_4_1[gpt-4.1-nano-2025-04-14].yaml
diff --git a/tests/cassettes/test_gpt_4_1[gpt-4.1].yaml b/lib/crewai/tests/cassettes/test_gpt_4_1[gpt-4.1].yaml
similarity index 100%
rename from tests/cassettes/test_gpt_4_1[gpt-4.1].yaml
rename to lib/crewai/tests/cassettes/test_gpt_4_1[gpt-4.1].yaml
diff --git a/tests/cassettes/test_guardrail_emits_events.yaml b/lib/crewai/tests/cassettes/test_guardrail_emits_events.yaml
similarity index 100%
rename from tests/cassettes/test_guardrail_emits_events.yaml
rename to lib/crewai/tests/cassettes/test_guardrail_emits_events.yaml
diff --git a/tests/cassettes/test_guardrail_is_called_using_callable.yaml b/lib/crewai/tests/cassettes/test_guardrail_is_called_using_callable.yaml
similarity index 100%
rename from tests/cassettes/test_guardrail_is_called_using_callable.yaml
rename to lib/crewai/tests/cassettes/test_guardrail_is_called_using_callable.yaml
diff --git a/tests/cassettes/test_guardrail_is_called_using_string.yaml b/lib/crewai/tests/cassettes/test_guardrail_is_called_using_string.yaml
similarity index 100%
rename from tests/cassettes/test_guardrail_is_called_using_string.yaml
rename to lib/crewai/tests/cassettes/test_guardrail_is_called_using_string.yaml
diff --git a/tests/cassettes/test_guardrail_reached_attempt_limit.yaml b/lib/crewai/tests/cassettes/test_guardrail_reached_attempt_limit.yaml
similarity index 100%
rename from tests/cassettes/test_guardrail_reached_attempt_limit.yaml
rename to lib/crewai/tests/cassettes/test_guardrail_reached_attempt_limit.yaml
diff --git a/tests/cassettes/test_guardrail_when_an_error_occurs.yaml b/lib/crewai/tests/cassettes/test_guardrail_when_an_error_occurs.yaml
similarity index 100%
rename from tests/cassettes/test_guardrail_when_an_error_occurs.yaml
rename to lib/crewai/tests/cassettes/test_guardrail_when_an_error_occurs.yaml
diff --git a/tests/cassettes/test_handle_context_length_exceeds_limit.yaml b/lib/crewai/tests/cassettes/test_handle_context_length_exceeds_limit.yaml
similarity index 100%
rename from tests/cassettes/test_handle_context_length_exceeds_limit.yaml
rename to lib/crewai/tests/cassettes/test_handle_context_length_exceeds_limit.yaml
diff --git a/tests/cassettes/test_handle_context_length_exceeds_limit_cli_no.yaml b/lib/crewai/tests/cassettes/test_handle_context_length_exceeds_limit_cli_no.yaml
similarity index 100%
rename from tests/cassettes/test_handle_context_length_exceeds_limit_cli_no.yaml
rename to lib/crewai/tests/cassettes/test_handle_context_length_exceeds_limit_cli_no.yaml
diff --git a/tests/cassettes/test_handle_streaming_tool_calls.yaml b/lib/crewai/tests/cassettes/test_handle_streaming_tool_calls.yaml
similarity index 100%
rename from tests/cassettes/test_handle_streaming_tool_calls.yaml
rename to lib/crewai/tests/cassettes/test_handle_streaming_tool_calls.yaml
diff --git a/tests/cassettes/test_handle_streaming_tool_calls_no_available_functions.yaml b/lib/crewai/tests/cassettes/test_handle_streaming_tool_calls_no_available_functions.yaml
similarity index 100%
rename from tests/cassettes/test_handle_streaming_tool_calls_no_available_functions.yaml
rename to lib/crewai/tests/cassettes/test_handle_streaming_tool_calls_no_available_functions.yaml
diff --git a/tests/cassettes/test_handle_streaming_tool_calls_no_tools.yaml b/lib/crewai/tests/cassettes/test_handle_streaming_tool_calls_no_tools.yaml
similarity index 100%
rename from tests/cassettes/test_handle_streaming_tool_calls_no_tools.yaml
rename to lib/crewai/tests/cassettes/test_handle_streaming_tool_calls_no_tools.yaml
diff --git a/tests/cassettes/test_handle_streaming_tool_calls_with_error.yaml b/lib/crewai/tests/cassettes/test_handle_streaming_tool_calls_with_error.yaml
similarity index 100%
rename from tests/cassettes/test_handle_streaming_tool_calls_with_error.yaml
rename to lib/crewai/tests/cassettes/test_handle_streaming_tool_calls_with_error.yaml
diff --git a/tests/cassettes/test_hierarchical_crew_creation_tasks_with_agents.yaml b/lib/crewai/tests/cassettes/test_hierarchical_crew_creation_tasks_with_agents.yaml
similarity index 100%
rename from tests/cassettes/test_hierarchical_crew_creation_tasks_with_agents.yaml
rename to lib/crewai/tests/cassettes/test_hierarchical_crew_creation_tasks_with_agents.yaml
diff --git a/tests/cassettes/test_hierarchical_crew_creation_tasks_with_async_execution.yaml b/lib/crewai/tests/cassettes/test_hierarchical_crew_creation_tasks_with_async_execution.yaml
similarity index 100%
rename from tests/cassettes/test_hierarchical_crew_creation_tasks_with_async_execution.yaml
rename to lib/crewai/tests/cassettes/test_hierarchical_crew_creation_tasks_with_async_execution.yaml
diff --git a/tests/cassettes/test_hierarchical_crew_creation_tasks_with_sync_last.yaml b/lib/crewai/tests/cassettes/test_hierarchical_crew_creation_tasks_with_sync_last.yaml
similarity index 100%
rename from tests/cassettes/test_hierarchical_crew_creation_tasks_with_sync_last.yaml
rename to lib/crewai/tests/cassettes/test_hierarchical_crew_creation_tasks_with_sync_last.yaml
diff --git a/tests/cassettes/test_hierarchical_process.yaml b/lib/crewai/tests/cassettes/test_hierarchical_process.yaml
similarity index 100%
rename from tests/cassettes/test_hierarchical_process.yaml
rename to lib/crewai/tests/cassettes/test_hierarchical_process.yaml
diff --git a/tests/cassettes/test_hierarchical_verbose_false_manager_agent.yaml b/lib/crewai/tests/cassettes/test_hierarchical_verbose_false_manager_agent.yaml
similarity index 100%
rename from tests/cassettes/test_hierarchical_verbose_false_manager_agent.yaml
rename to lib/crewai/tests/cassettes/test_hierarchical_verbose_false_manager_agent.yaml
diff --git a/tests/cassettes/test_hierarchical_verbose_manager_agent.yaml b/lib/crewai/tests/cassettes/test_hierarchical_verbose_manager_agent.yaml
similarity index 100%
rename from tests/cassettes/test_hierarchical_verbose_manager_agent.yaml
rename to lib/crewai/tests/cassettes/test_hierarchical_verbose_manager_agent.yaml
diff --git a/tests/cassettes/test_increment_delegations_for_hierarchical_process.yaml b/lib/crewai/tests/cassettes/test_increment_delegations_for_hierarchical_process.yaml
similarity index 100%
rename from tests/cassettes/test_increment_delegations_for_hierarchical_process.yaml
rename to lib/crewai/tests/cassettes/test_increment_delegations_for_hierarchical_process.yaml
diff --git a/tests/cassettes/test_increment_delegations_for_sequential_process.yaml b/lib/crewai/tests/cassettes/test_increment_delegations_for_sequential_process.yaml
similarity index 100%
rename from tests/cassettes/test_increment_delegations_for_sequential_process.yaml
rename to lib/crewai/tests/cassettes/test_increment_delegations_for_sequential_process.yaml
diff --git a/tests/cassettes/test_increment_tool_errors.yaml b/lib/crewai/tests/cassettes/test_increment_tool_errors.yaml
similarity index 100%
rename from tests/cassettes/test_increment_tool_errors.yaml
rename to lib/crewai/tests/cassettes/test_increment_tool_errors.yaml
diff --git a/tests/cassettes/test_inject_date.yaml b/lib/crewai/tests/cassettes/test_inject_date.yaml
similarity index 100%
rename from tests/cassettes/test_inject_date.yaml
rename to lib/crewai/tests/cassettes/test_inject_date.yaml
diff --git a/tests/cassettes/test_inject_date_custom_format.yaml b/lib/crewai/tests/cassettes/test_inject_date_custom_format.yaml
similarity index 100%
rename from tests/cassettes/test_inject_date_custom_format.yaml
rename to lib/crewai/tests/cassettes/test_inject_date_custom_format.yaml
diff --git a/tests/cassettes/test_json_property_without_output_json.yaml b/lib/crewai/tests/cassettes/test_json_property_without_output_json.yaml
similarity index 100%
rename from tests/cassettes/test_json_property_without_output_json.yaml
rename to lib/crewai/tests/cassettes/test_json_property_without_output_json.yaml
diff --git a/tests/cassettes/test_kickoff_for_each_error_handling.yaml b/lib/crewai/tests/cassettes/test_kickoff_for_each_error_handling.yaml
similarity index 100%
rename from tests/cassettes/test_kickoff_for_each_error_handling.yaml
rename to lib/crewai/tests/cassettes/test_kickoff_for_each_error_handling.yaml
diff --git a/tests/cassettes/test_kickoff_for_each_multiple_inputs.yaml b/lib/crewai/tests/cassettes/test_kickoff_for_each_multiple_inputs.yaml
similarity index 100%
rename from tests/cassettes/test_kickoff_for_each_multiple_inputs.yaml
rename to lib/crewai/tests/cassettes/test_kickoff_for_each_multiple_inputs.yaml
diff --git a/tests/cassettes/test_kickoff_for_each_single_input.yaml b/lib/crewai/tests/cassettes/test_kickoff_for_each_single_input.yaml
similarity index 100%
rename from tests/cassettes/test_kickoff_for_each_single_input.yaml
rename to lib/crewai/tests/cassettes/test_kickoff_for_each_single_input.yaml
diff --git a/tests/cassettes/test_lite_agent_created_with_correct_parameters[False].yaml b/lib/crewai/tests/cassettes/test_lite_agent_created_with_correct_parameters[False].yaml
similarity index 100%
rename from tests/cassettes/test_lite_agent_created_with_correct_parameters[False].yaml
rename to lib/crewai/tests/cassettes/test_lite_agent_created_with_correct_parameters[False].yaml
diff --git a/tests/cassettes/test_lite_agent_created_with_correct_parameters[True].yaml b/lib/crewai/tests/cassettes/test_lite_agent_created_with_correct_parameters[True].yaml
similarity index 100%
rename from tests/cassettes/test_lite_agent_created_with_correct_parameters[True].yaml
rename to lib/crewai/tests/cassettes/test_lite_agent_created_with_correct_parameters[True].yaml
diff --git a/tests/cassettes/test_lite_agent_returns_usage_metrics.yaml b/lib/crewai/tests/cassettes/test_lite_agent_returns_usage_metrics.yaml
similarity index 100%
rename from tests/cassettes/test_lite_agent_returns_usage_metrics.yaml
rename to lib/crewai/tests/cassettes/test_lite_agent_returns_usage_metrics.yaml
diff --git a/tests/cassettes/test_lite_agent_returns_usage_metrics_async.yaml b/lib/crewai/tests/cassettes/test_lite_agent_returns_usage_metrics_async.yaml
similarity index 100%
rename from tests/cassettes/test_lite_agent_returns_usage_metrics_async.yaml
rename to lib/crewai/tests/cassettes/test_lite_agent_returns_usage_metrics_async.yaml
diff --git a/tests/cassettes/test_lite_agent_structured_output.yaml b/lib/crewai/tests/cassettes/test_lite_agent_structured_output.yaml
similarity index 100%
rename from tests/cassettes/test_lite_agent_structured_output.yaml
rename to lib/crewai/tests/cassettes/test_lite_agent_structured_output.yaml
diff --git a/tests/cassettes/test_lite_agent_with_tools.yaml b/lib/crewai/tests/cassettes/test_lite_agent_with_tools.yaml
similarity index 100%
rename from tests/cassettes/test_lite_agent_with_tools.yaml
rename to lib/crewai/tests/cassettes/test_lite_agent_with_tools.yaml
diff --git a/tests/cassettes/test_llm_call.yaml b/lib/crewai/tests/cassettes/test_llm_call.yaml
similarity index 100%
rename from tests/cassettes/test_llm_call.yaml
rename to lib/crewai/tests/cassettes/test_llm_call.yaml
diff --git a/tests/cassettes/test_llm_call_when_stop_is_unsupported.yaml b/lib/crewai/tests/cassettes/test_llm_call_when_stop_is_unsupported.yaml
similarity index 100%
rename from tests/cassettes/test_llm_call_when_stop_is_unsupported.yaml
rename to lib/crewai/tests/cassettes/test_llm_call_when_stop_is_unsupported.yaml
diff --git a/tests/cassettes/test_llm_call_when_stop_is_unsupported_when_additional_drop_params_is_provided.yaml b/lib/crewai/tests/cassettes/test_llm_call_when_stop_is_unsupported_when_additional_drop_params_is_provided.yaml
similarity index 100%
rename from tests/cassettes/test_llm_call_when_stop_is_unsupported_when_additional_drop_params_is_provided.yaml
rename to lib/crewai/tests/cassettes/test_llm_call_when_stop_is_unsupported_when_additional_drop_params_is_provided.yaml
diff --git a/tests/cassettes/test_llm_call_with_all_attributes.yaml b/lib/crewai/tests/cassettes/test_llm_call_with_all_attributes.yaml
similarity index 100%
rename from tests/cassettes/test_llm_call_with_all_attributes.yaml
rename to lib/crewai/tests/cassettes/test_llm_call_with_all_attributes.yaml
diff --git a/tests/cassettes/test_llm_call_with_message_list.yaml b/lib/crewai/tests/cassettes/test_llm_call_with_message_list.yaml
similarity index 100%
rename from tests/cassettes/test_llm_call_with_message_list.yaml
rename to lib/crewai/tests/cassettes/test_llm_call_with_message_list.yaml
diff --git a/tests/cassettes/test_llm_call_with_ollama_llama3.yaml b/lib/crewai/tests/cassettes/test_llm_call_with_ollama_llama3.yaml
similarity index 100%
rename from tests/cassettes/test_llm_call_with_ollama_llama3.yaml
rename to lib/crewai/tests/cassettes/test_llm_call_with_ollama_llama3.yaml
diff --git a/tests/cassettes/test_llm_call_with_string_input.yaml b/lib/crewai/tests/cassettes/test_llm_call_with_string_input.yaml
similarity index 100%
rename from tests/cassettes/test_llm_call_with_string_input.yaml
rename to lib/crewai/tests/cassettes/test_llm_call_with_string_input.yaml
diff --git a/tests/cassettes/test_llm_call_with_string_input_and_callbacks.yaml b/lib/crewai/tests/cassettes/test_llm_call_with_string_input_and_callbacks.yaml
similarity index 100%
rename from tests/cassettes/test_llm_call_with_string_input_and_callbacks.yaml
rename to lib/crewai/tests/cassettes/test_llm_call_with_string_input_and_callbacks.yaml
diff --git a/tests/cassettes/test_llm_call_with_tool_and_message_list.yaml b/lib/crewai/tests/cassettes/test_llm_call_with_tool_and_message_list.yaml
similarity index 100%
rename from tests/cassettes/test_llm_call_with_tool_and_message_list.yaml
rename to lib/crewai/tests/cassettes/test_llm_call_with_tool_and_message_list.yaml
diff --git a/tests/cassettes/test_llm_call_with_tool_and_string_input.yaml b/lib/crewai/tests/cassettes/test_llm_call_with_tool_and_string_input.yaml
similarity index 100%
rename from tests/cassettes/test_llm_call_with_tool_and_string_input.yaml
rename to lib/crewai/tests/cassettes/test_llm_call_with_tool_and_string_input.yaml
diff --git a/tests/cassettes/test_llm_callback_replacement.yaml b/lib/crewai/tests/cassettes/test_llm_callback_replacement.yaml
similarity index 100%
rename from tests/cassettes/test_llm_callback_replacement.yaml
rename to lib/crewai/tests/cassettes/test_llm_callback_replacement.yaml
diff --git a/tests/cassettes/test_logging_tool_usage.yaml b/lib/crewai/tests/cassettes/test_logging_tool_usage.yaml
similarity index 100%
rename from tests/cassettes/test_logging_tool_usage.yaml
rename to lib/crewai/tests/cassettes/test_logging_tool_usage.yaml
diff --git a/tests/cassettes/test_long_term_memory_with_memory_flag.yaml b/lib/crewai/tests/cassettes/test_long_term_memory_with_memory_flag.yaml
similarity index 100%
rename from tests/cassettes/test_long_term_memory_with_memory_flag.yaml
rename to lib/crewai/tests/cassettes/test_long_term_memory_with_memory_flag.yaml
diff --git a/tests/cassettes/test_manager_agent_delegating_to_all_agents.yaml b/lib/crewai/tests/cassettes/test_manager_agent_delegating_to_all_agents.yaml
similarity index 100%
rename from tests/cassettes/test_manager_agent_delegating_to_all_agents.yaml
rename to lib/crewai/tests/cassettes/test_manager_agent_delegating_to_all_agents.yaml
diff --git a/tests/cassettes/test_manager_agent_delegating_to_assigned_task_agent.yaml b/lib/crewai/tests/cassettes/test_manager_agent_delegating_to_assigned_task_agent.yaml
similarity index 100%
rename from tests/cassettes/test_manager_agent_delegating_to_assigned_task_agent.yaml
rename to lib/crewai/tests/cassettes/test_manager_agent_delegating_to_assigned_task_agent.yaml
diff --git a/tests/cassettes/test_max_usage_count_is_respected.yaml b/lib/crewai/tests/cassettes/test_max_usage_count_is_respected.yaml
similarity index 100%
rename from tests/cassettes/test_max_usage_count_is_respected.yaml
rename to lib/crewai/tests/cassettes/test_max_usage_count_is_respected.yaml
diff --git a/tests/cassettes/test_memory_events_are_emitted.yaml b/lib/crewai/tests/cassettes/test_memory_events_are_emitted.yaml
similarity index 100%
rename from tests/cassettes/test_memory_events_are_emitted.yaml
rename to lib/crewai/tests/cassettes/test_memory_events_are_emitted.yaml
diff --git a/tests/cassettes/test_multimodal_agent_describing_image_successfully.yaml b/lib/crewai/tests/cassettes/test_multimodal_agent_describing_image_successfully.yaml
similarity index 100%
rename from tests/cassettes/test_multimodal_agent_describing_image_successfully.yaml
rename to lib/crewai/tests/cassettes/test_multimodal_agent_describing_image_successfully.yaml
diff --git a/tests/cassettes/test_multimodal_agent_live_image_analysis.yaml b/lib/crewai/tests/cassettes/test_multimodal_agent_live_image_analysis.yaml
similarity index 100%
rename from tests/cassettes/test_multimodal_agent_live_image_analysis.yaml
rename to lib/crewai/tests/cassettes/test_multimodal_agent_live_image_analysis.yaml
diff --git a/tests/cassettes/test_multiple_before_after_crew.yaml b/lib/crewai/tests/cassettes/test_multiple_before_after_crew.yaml
similarity index 100%
rename from tests/cassettes/test_multiple_before_after_crew.yaml
rename to lib/crewai/tests/cassettes/test_multiple_before_after_crew.yaml
diff --git a/tests/cassettes/test_multiple_before_after_kickoff.yaml b/lib/crewai/tests/cassettes/test_multiple_before_after_kickoff.yaml
similarity index 100%
rename from tests/cassettes/test_multiple_before_after_kickoff.yaml
rename to lib/crewai/tests/cassettes/test_multiple_before_after_kickoff.yaml
diff --git a/tests/cassettes/test_multiple_docling_sources.yaml b/lib/crewai/tests/cassettes/test_multiple_docling_sources.yaml
similarity index 100%
rename from tests/cassettes/test_multiple_docling_sources.yaml
rename to lib/crewai/tests/cassettes/test_multiple_docling_sources.yaml
diff --git a/tests/cassettes/test_no_inject_date.yaml b/lib/crewai/tests/cassettes/test_no_inject_date.yaml
similarity index 100%
rename from tests/cassettes/test_no_inject_date.yaml
rename to lib/crewai/tests/cassettes/test_no_inject_date.yaml
diff --git a/tests/cassettes/test_o3_mini_reasoning_effort_high.yaml b/lib/crewai/tests/cassettes/test_o3_mini_reasoning_effort_high.yaml
similarity index 100%
rename from tests/cassettes/test_o3_mini_reasoning_effort_high.yaml
rename to lib/crewai/tests/cassettes/test_o3_mini_reasoning_effort_high.yaml
diff --git a/tests/cassettes/test_o3_mini_reasoning_effort_low.yaml b/lib/crewai/tests/cassettes/test_o3_mini_reasoning_effort_low.yaml
similarity index 100%
rename from tests/cassettes/test_o3_mini_reasoning_effort_low.yaml
rename to lib/crewai/tests/cassettes/test_o3_mini_reasoning_effort_low.yaml
diff --git a/tests/cassettes/test_o3_mini_reasoning_effort_medium.yaml b/lib/crewai/tests/cassettes/test_o3_mini_reasoning_effort_medium.yaml
similarity index 100%
rename from tests/cassettes/test_o3_mini_reasoning_effort_medium.yaml
rename to lib/crewai/tests/cassettes/test_o3_mini_reasoning_effort_medium.yaml
diff --git a/tests/cassettes/test_output_json_dict_hierarchical.yaml b/lib/crewai/tests/cassettes/test_output_json_dict_hierarchical.yaml
similarity index 100%
rename from tests/cassettes/test_output_json_dict_hierarchical.yaml
rename to lib/crewai/tests/cassettes/test_output_json_dict_hierarchical.yaml
diff --git a/tests/cassettes/test_output_json_dict_sequential.yaml b/lib/crewai/tests/cassettes/test_output_json_dict_sequential.yaml
similarity index 100%
rename from tests/cassettes/test_output_json_dict_sequential.yaml
rename to lib/crewai/tests/cassettes/test_output_json_dict_sequential.yaml
diff --git a/tests/cassettes/test_output_json_hierarchical.yaml b/lib/crewai/tests/cassettes/test_output_json_hierarchical.yaml
similarity index 100%
rename from tests/cassettes/test_output_json_hierarchical.yaml
rename to lib/crewai/tests/cassettes/test_output_json_hierarchical.yaml
diff --git a/tests/cassettes/test_output_json_sequential.yaml b/lib/crewai/tests/cassettes/test_output_json_sequential.yaml
similarity index 100%
rename from tests/cassettes/test_output_json_sequential.yaml
rename to lib/crewai/tests/cassettes/test_output_json_sequential.yaml
diff --git a/tests/cassettes/test_output_json_to_another_task.yaml b/lib/crewai/tests/cassettes/test_output_json_to_another_task.yaml
similarity index 100%
rename from tests/cassettes/test_output_json_to_another_task.yaml
rename to lib/crewai/tests/cassettes/test_output_json_to_another_task.yaml
diff --git a/tests/cassettes/test_output_pydantic_hierarchical.yaml b/lib/crewai/tests/cassettes/test_output_pydantic_hierarchical.yaml
similarity index 100%
rename from tests/cassettes/test_output_pydantic_hierarchical.yaml
rename to lib/crewai/tests/cassettes/test_output_pydantic_hierarchical.yaml
diff --git a/tests/cassettes/test_output_pydantic_sequential.yaml b/lib/crewai/tests/cassettes/test_output_pydantic_sequential.yaml
similarity index 100%
rename from tests/cassettes/test_output_pydantic_sequential.yaml
rename to lib/crewai/tests/cassettes/test_output_pydantic_sequential.yaml
diff --git a/tests/cassettes/test_output_pydantic_to_another_task.yaml b/lib/crewai/tests/cassettes/test_output_pydantic_to_another_task.yaml
similarity index 100%
rename from tests/cassettes/test_output_pydantic_to_another_task.yaml
rename to lib/crewai/tests/cassettes/test_output_pydantic_to_another_task.yaml
diff --git a/tests/cassettes/test_replay_interpolates_inputs_properly.yaml b/lib/crewai/tests/cassettes/test_replay_interpolates_inputs_properly.yaml
similarity index 100%
rename from tests/cassettes/test_replay_interpolates_inputs_properly.yaml
rename to lib/crewai/tests/cassettes/test_replay_interpolates_inputs_properly.yaml
diff --git a/tests/cassettes/test_replay_setup_context.yaml b/lib/crewai/tests/cassettes/test_replay_setup_context.yaml
similarity index 100%
rename from tests/cassettes/test_replay_setup_context.yaml
rename to lib/crewai/tests/cassettes/test_replay_setup_context.yaml
diff --git a/tests/cassettes/test_replay_with_context.yaml b/lib/crewai/tests/cassettes/test_replay_with_context.yaml
similarity index 100%
rename from tests/cassettes/test_replay_with_context.yaml
rename to lib/crewai/tests/cassettes/test_replay_with_context.yaml
diff --git a/tests/cassettes/test_save_task_json_output.yaml b/lib/crewai/tests/cassettes/test_save_task_json_output.yaml
similarity index 100%
rename from tests/cassettes/test_save_task_json_output.yaml
rename to lib/crewai/tests/cassettes/test_save_task_json_output.yaml
diff --git a/tests/cassettes/test_save_task_output.yaml b/lib/crewai/tests/cassettes/test_save_task_output.yaml
similarity index 100%
rename from tests/cassettes/test_save_task_output.yaml
rename to lib/crewai/tests/cassettes/test_save_task_output.yaml
diff --git a/tests/cassettes/test_save_task_pydantic_output.yaml b/lib/crewai/tests/cassettes/test_save_task_pydantic_output.yaml
similarity index 100%
rename from tests/cassettes/test_save_task_pydantic_output.yaml
rename to lib/crewai/tests/cassettes/test_save_task_pydantic_output.yaml
diff --git a/tests/cassettes/test_sequential_async_task_execution_completion.yaml b/lib/crewai/tests/cassettes/test_sequential_async_task_execution_completion.yaml
similarity index 100%
rename from tests/cassettes/test_sequential_async_task_execution_completion.yaml
rename to lib/crewai/tests/cassettes/test_sequential_async_task_execution_completion.yaml
diff --git a/tests/cassettes/test_single_task_with_async_execution.yaml b/lib/crewai/tests/cassettes/test_single_task_with_async_execution.yaml
similarity index 100%
rename from tests/cassettes/test_single_task_with_async_execution.yaml
rename to lib/crewai/tests/cassettes/test_single_task_with_async_execution.yaml
diff --git a/tests/cassettes/test_task_allow_crewai_trigger_context.yaml b/lib/crewai/tests/cassettes/test_task_allow_crewai_trigger_context.yaml
similarity index 100%
rename from tests/cassettes/test_task_allow_crewai_trigger_context.yaml
rename to lib/crewai/tests/cassettes/test_task_allow_crewai_trigger_context.yaml
diff --git a/tests/cassettes/test_task_allow_crewai_trigger_context_no_payload.yaml b/lib/crewai/tests/cassettes/test_task_allow_crewai_trigger_context_no_payload.yaml
similarity index 100%
rename from tests/cassettes/test_task_allow_crewai_trigger_context_no_payload.yaml
rename to lib/crewai/tests/cassettes/test_task_allow_crewai_trigger_context_no_payload.yaml
diff --git a/tests/cassettes/test_task_execution_times.yaml b/lib/crewai/tests/cassettes/test_task_execution_times.yaml
similarity index 100%
rename from tests/cassettes/test_task_execution_times.yaml
rename to lib/crewai/tests/cassettes/test_task_execution_times.yaml
diff --git a/tests/cassettes/test_task_guardrail_process_output.yaml b/lib/crewai/tests/cassettes/test_task_guardrail_process_output.yaml
similarity index 100%
rename from tests/cassettes/test_task_guardrail_process_output.yaml
rename to lib/crewai/tests/cassettes/test_task_guardrail_process_output.yaml
diff --git a/tests/cassettes/test_task_interpolation_with_hyphens.yaml b/lib/crewai/tests/cassettes/test_task_interpolation_with_hyphens.yaml
similarity index 100%
rename from tests/cassettes/test_task_interpolation_with_hyphens.yaml
rename to lib/crewai/tests/cassettes/test_task_interpolation_with_hyphens.yaml
diff --git a/tests/cassettes/test_task_tools_override_agent_tools.yaml b/lib/crewai/tests/cassettes/test_task_tools_override_agent_tools.yaml
similarity index 100%
rename from tests/cassettes/test_task_tools_override_agent_tools.yaml
rename to lib/crewai/tests/cassettes/test_task_tools_override_agent_tools.yaml
diff --git a/tests/cassettes/test_task_with_max_execution_time.yaml b/lib/crewai/tests/cassettes/test_task_with_max_execution_time.yaml
similarity index 100%
rename from tests/cassettes/test_task_with_max_execution_time.yaml
rename to lib/crewai/tests/cassettes/test_task_with_max_execution_time.yaml
diff --git a/tests/cassettes/test_task_with_max_execution_time_exceeded.yaml b/lib/crewai/tests/cassettes/test_task_with_max_execution_time_exceeded.yaml
similarity index 100%
rename from tests/cassettes/test_task_with_max_execution_time_exceeded.yaml
rename to lib/crewai/tests/cassettes/test_task_with_max_execution_time_exceeded.yaml
diff --git a/tests/cassettes/test_task_with_no_arguments.yaml b/lib/crewai/tests/cassettes/test_task_with_no_arguments.yaml
similarity index 100%
rename from tests/cassettes/test_task_with_no_arguments.yaml
rename to lib/crewai/tests/cassettes/test_task_with_no_arguments.yaml
diff --git a/tests/cassettes/test_task_without_allow_crewai_trigger_context.yaml b/lib/crewai/tests/cassettes/test_task_without_allow_crewai_trigger_context.yaml
similarity index 100%
rename from tests/cassettes/test_task_without_allow_crewai_trigger_context.yaml
rename to lib/crewai/tests/cassettes/test_task_without_allow_crewai_trigger_context.yaml
diff --git a/tests/cassettes/test_telemetry_fails_due_connect_timeout.yaml b/lib/crewai/tests/cassettes/test_telemetry_fails_due_connect_timeout.yaml
similarity index 100%
rename from tests/cassettes/test_telemetry_fails_due_connect_timeout.yaml
rename to lib/crewai/tests/cassettes/test_telemetry_fails_due_connect_timeout.yaml
diff --git a/tests/cassettes/test_tool_result_as_answer_is_the_final_answer_for_the_agent.yaml b/lib/crewai/tests/cassettes/test_tool_result_as_answer_is_the_final_answer_for_the_agent.yaml
similarity index 100%
rename from tests/cassettes/test_tool_result_as_answer_is_the_final_answer_for_the_agent.yaml
rename to lib/crewai/tests/cassettes/test_tool_result_as_answer_is_the_final_answer_for_the_agent.yaml
diff --git a/tests/cassettes/test_tool_usage_information_is_appended_to_agent.yaml b/lib/crewai/tests/cassettes/test_tool_usage_information_is_appended_to_agent.yaml
similarity index 100%
rename from tests/cassettes/test_tool_usage_information_is_appended_to_agent.yaml
rename to lib/crewai/tests/cassettes/test_tool_usage_information_is_appended_to_agent.yaml
diff --git a/tests/cassettes/test_tools_with_custom_caching.yaml b/lib/crewai/tests/cassettes/test_tools_with_custom_caching.yaml
similarity index 100%
rename from tests/cassettes/test_tools_with_custom_caching.yaml
rename to lib/crewai/tests/cassettes/test_tools_with_custom_caching.yaml
diff --git a/tests/cassettes/test_using_contextual_memory.yaml b/lib/crewai/tests/cassettes/test_using_contextual_memory.yaml
similarity index 100%
rename from tests/cassettes/test_using_contextual_memory.yaml
rename to lib/crewai/tests/cassettes/test_using_contextual_memory.yaml
diff --git a/tests/cassettes/test_using_contextual_memory_with_long_term_memory.yaml b/lib/crewai/tests/cassettes/test_using_contextual_memory_with_long_term_memory.yaml
similarity index 100%
rename from tests/cassettes/test_using_contextual_memory_with_long_term_memory.yaml
rename to lib/crewai/tests/cassettes/test_using_contextual_memory_with_long_term_memory.yaml
diff --git a/tests/cassettes/test_using_contextual_memory_with_short_term_memory.yaml b/lib/crewai/tests/cassettes/test_using_contextual_memory_with_short_term_memory.yaml
similarity index 100%
rename from tests/cassettes/test_using_contextual_memory_with_short_term_memory.yaml
rename to lib/crewai/tests/cassettes/test_using_contextual_memory_with_short_term_memory.yaml
diff --git a/tests/cassettes/test_warning_long_term_memory_without_entity_memory.yaml b/lib/crewai/tests/cassettes/test_warning_long_term_memory_without_entity_memory.yaml
similarity index 100%
rename from tests/cassettes/test_warning_long_term_memory_without_entity_memory.yaml
rename to lib/crewai/tests/cassettes/test_warning_long_term_memory_without_entity_memory.yaml
diff --git a/tests/cli/authentication/providers/__init__.py b/lib/crewai/tests/cli/__init__.py
similarity index 100%
rename from tests/cli/authentication/providers/__init__.py
rename to lib/crewai/tests/cli/__init__.py
diff --git a/tests/cli/enterprise/__init__.py b/lib/crewai/tests/cli/authentication/__init__.py
similarity index 100%
rename from tests/cli/enterprise/__init__.py
rename to lib/crewai/tests/cli/authentication/__init__.py
diff --git a/tests/cli/tools/__init__.py b/lib/crewai/tests/cli/authentication/providers/__init__.py
similarity index 100%
rename from tests/cli/tools/__init__.py
rename to lib/crewai/tests/cli/authentication/providers/__init__.py
diff --git a/tests/cli/authentication/providers/test_auth0.py b/lib/crewai/tests/cli/authentication/providers/test_auth0.py
similarity index 100%
rename from tests/cli/authentication/providers/test_auth0.py
rename to lib/crewai/tests/cli/authentication/providers/test_auth0.py
diff --git a/tests/cli/authentication/providers/test_okta.py b/lib/crewai/tests/cli/authentication/providers/test_okta.py
similarity index 100%
rename from tests/cli/authentication/providers/test_okta.py
rename to lib/crewai/tests/cli/authentication/providers/test_okta.py
diff --git a/tests/cli/authentication/providers/test_workos.py b/lib/crewai/tests/cli/authentication/providers/test_workos.py
similarity index 100%
rename from tests/cli/authentication/providers/test_workos.py
rename to lib/crewai/tests/cli/authentication/providers/test_workos.py
diff --git a/tests/cli/authentication/test_auth_main.py b/lib/crewai/tests/cli/authentication/test_auth_main.py
similarity index 99%
rename from tests/cli/authentication/test_auth_main.py
rename to lib/crewai/tests/cli/authentication/test_auth_main.py
index ca8a0cf2b..fafbc7edd 100644
--- a/tests/cli/authentication/test_auth_main.py
+++ b/lib/crewai/tests/cli/authentication/test_auth_main.py
@@ -1,12 +1,13 @@
-import pytest
from datetime import datetime, timedelta
+from unittest.mock import MagicMock, call, patch
+
+import pytest
import requests
-from unittest.mock import MagicMock, patch, call
from crewai.cli.authentication.main import AuthenticationCommand
from crewai.cli.constants import (
- CREWAI_ENTERPRISE_DEFAULT_OAUTH2_DOMAIN,
- CREWAI_ENTERPRISE_DEFAULT_OAUTH2_CLIENT_ID,
CREWAI_ENTERPRISE_DEFAULT_OAUTH2_AUDIENCE,
+ CREWAI_ENTERPRISE_DEFAULT_OAUTH2_CLIENT_ID,
+ CREWAI_ENTERPRISE_DEFAULT_OAUTH2_DOMAIN,
)
@@ -114,8 +115,8 @@ class TestAuthenticationCommand:
jwt_config,
has_expiration,
):
- from crewai.cli.authentication.providers.workos import WorkosProvider
from crewai.cli.authentication.main import Oauth2Settings
+ from crewai.cli.authentication.providers.workos import WorkosProvider
if user_provider == "workos":
self.auth_command.oauth2_provider = WorkosProvider(
diff --git a/tests/cli/authentication/test_utils.py b/lib/crewai/tests/cli/authentication/test_utils.py
similarity index 99%
rename from tests/cli/authentication/test_utils.py
rename to lib/crewai/tests/cli/authentication/test_utils.py
index 860ec7aae..247174c78 100644
--- a/tests/cli/authentication/test_utils.py
+++ b/lib/crewai/tests/cli/authentication/test_utils.py
@@ -1,8 +1,7 @@
-import jwt
import unittest
from unittest.mock import MagicMock, patch
-
+import jwt
from crewai.cli.authentication.utils import validate_jwt_token
diff --git a/tests/cli/deploy/__init__.py b/lib/crewai/tests/cli/deploy/__init__.py
similarity index 100%
rename from tests/cli/deploy/__init__.py
rename to lib/crewai/tests/cli/deploy/__init__.py
diff --git a/tests/cli/deploy/test_deploy_main.py b/lib/crewai/tests/cli/deploy/test_deploy_main.py
similarity index 99%
rename from tests/cli/deploy/test_deploy_main.py
rename to lib/crewai/tests/cli/deploy/test_deploy_main.py
index 8a8799ca9..272e8521c 100644
--- a/tests/cli/deploy/test_deploy_main.py
+++ b/lib/crewai/tests/cli/deploy/test_deploy_main.py
@@ -5,10 +5,9 @@ from unittest.mock import MagicMock, Mock, patch
import pytest
import requests
-from requests.exceptions import JSONDecodeError
-
from crewai.cli.deploy.main import DeployCommand
from crewai.cli.utils import parse_toml
+from requests.exceptions import JSONDecodeError
class TestDeployCommand(unittest.TestCase):
diff --git a/tests/experimental/__init__.py b/lib/crewai/tests/cli/enterprise/__init__.py
similarity index 100%
rename from tests/experimental/__init__.py
rename to lib/crewai/tests/cli/enterprise/__init__.py
diff --git a/tests/cli/enterprise/test_main.py b/lib/crewai/tests/cli/enterprise/test_main.py
similarity index 100%
rename from tests/cli/enterprise/test_main.py
rename to lib/crewai/tests/cli/enterprise/test_main.py
diff --git a/tests/cli/organization/__init__.py b/lib/crewai/tests/cli/organization/__init__.py
similarity index 100%
rename from tests/cli/organization/__init__.py
rename to lib/crewai/tests/cli/organization/__init__.py
diff --git a/tests/cli/organization/test_main.py b/lib/crewai/tests/cli/organization/test_main.py
similarity index 100%
rename from tests/cli/organization/test_main.py
rename to lib/crewai/tests/cli/organization/test_main.py
diff --git a/tests/cli/test_cli.py b/lib/crewai/tests/cli/test_cli.py
similarity index 99%
rename from tests/cli/test_cli.py
rename to lib/crewai/tests/cli/test_cli.py
index 60e3208b1..4f4141269 100644
--- a/tests/cli/test_cli.py
+++ b/lib/crewai/tests/cli/test_cli.py
@@ -3,7 +3,6 @@ from unittest import mock
import pytest
from click.testing import CliRunner
-
from crewai.cli.cli import (
deploy_create,
deploy_list,
@@ -12,8 +11,8 @@ from crewai.cli.cli import (
deploy_remove,
deply_status,
flow_add_crew,
- reset_memories,
login,
+ reset_memories,
test,
train,
version,
diff --git a/tests/cli/test_config.py b/lib/crewai/tests/cli/test_config.py
similarity index 99%
rename from tests/cli/test_config.py
rename to lib/crewai/tests/cli/test_config.py
index 09690c470..4db005e78 100644
--- a/tests/cli/test_config.py
+++ b/lib/crewai/tests/cli/test_config.py
@@ -2,17 +2,17 @@ import json
import shutil
import tempfile
import unittest
+from datetime import datetime, timedelta
from pathlib import Path
-from unittest.mock import patch, MagicMock
+from unittest.mock import MagicMock, patch
from crewai.cli.config import (
- Settings,
- USER_SETTINGS_KEYS,
CLI_SETTINGS_KEYS,
DEFAULT_CLI_SETTINGS,
+ USER_SETTINGS_KEYS,
+ Settings,
)
from crewai.cli.shared.token_manager import TokenManager
-from datetime import datetime, timedelta
class TestSettings(unittest.TestCase):
diff --git a/tests/cli/test_constants.py b/lib/crewai/tests/cli/test_constants.py
similarity index 83%
rename from tests/cli/test_constants.py
rename to lib/crewai/tests/cli/test_constants.py
index 61d8e069b..013d8ff8c 100644
--- a/tests/cli/test_constants.py
+++ b/lib/crewai/tests/cli/test_constants.py
@@ -1,5 +1,3 @@
-import pytest
-
from crewai.cli.constants import ENV_VARS, MODELS, PROVIDERS
@@ -12,8 +10,7 @@ def test_huggingface_env_vars():
"""Test that Huggingface environment variables are properly configured."""
assert "huggingface" in ENV_VARS
assert any(
- detail.get("key_name") == "HF_TOKEN"
- for detail in ENV_VARS["huggingface"]
+ detail.get("key_name") == "HF_TOKEN" for detail in ENV_VARS["huggingface"]
)
diff --git a/tests/cli/test_create_crew.py b/lib/crewai/tests/cli/test_create_crew.py
similarity index 76%
rename from tests/cli/test_create_crew.py
rename to lib/crewai/tests/cli/test_create_crew.py
index 323b7aa18..638be9b5d 100644
--- a/tests/cli/test_create_crew.py
+++ b/lib/crewai/tests/cli/test_create_crew.py
@@ -6,9 +6,9 @@ from unittest import mock
import pytest
from click.testing import CliRunner
-
from crewai.cli.create_crew import create_crew, create_folder_structure
+
@pytest.fixture
def runner():
return CliRunner()
@@ -23,7 +23,9 @@ def temp_dir():
def test_create_folder_structure_strips_single_trailing_slash():
with tempfile.TemporaryDirectory() as temp_dir:
- folder_path, folder_name, class_name = create_folder_structure("hello/", parent_folder=temp_dir)
+ folder_path, folder_name, class_name = create_folder_structure(
+ "hello/", parent_folder=temp_dir
+ )
assert folder_name == "hello"
assert class_name == "Hello"
@@ -34,7 +36,9 @@ def test_create_folder_structure_strips_single_trailing_slash():
def test_create_folder_structure_strips_multiple_trailing_slashes():
with tempfile.TemporaryDirectory() as temp_dir:
- folder_path, folder_name, class_name = create_folder_structure("hello///", parent_folder=temp_dir)
+ folder_path, folder_name, class_name = create_folder_structure(
+ "hello///", parent_folder=temp_dir
+ )
assert folder_name == "hello"
assert class_name == "Hello"
@@ -45,7 +49,9 @@ def test_create_folder_structure_strips_multiple_trailing_slashes():
def test_create_folder_structure_handles_complex_name_with_trailing_slash():
with tempfile.TemporaryDirectory() as temp_dir:
- folder_path, folder_name, class_name = create_folder_structure("my-awesome_project/", parent_folder=temp_dir)
+ folder_path, folder_name, class_name = create_folder_structure(
+ "my-awesome_project/", parent_folder=temp_dir
+ )
assert folder_name == "my_awesome_project"
assert class_name == "MyAwesomeProject"
@@ -56,7 +62,9 @@ def test_create_folder_structure_handles_complex_name_with_trailing_slash():
def test_create_folder_structure_normal_name_unchanged():
with tempfile.TemporaryDirectory() as temp_dir:
- folder_path, folder_name, class_name = create_folder_structure("hello", parent_folder=temp_dir)
+ folder_path, folder_name, class_name = create_folder_structure(
+ "hello", parent_folder=temp_dir
+ )
assert folder_name == "hello"
assert class_name == "Hello"
@@ -65,15 +73,14 @@ def test_create_folder_structure_normal_name_unchanged():
assert folder_path.parent == Path(temp_dir)
-
-
-
def test_create_folder_structure_with_parent_folder():
with tempfile.TemporaryDirectory() as temp_dir:
parent_path = Path(temp_dir) / "parent"
parent_path.mkdir()
- folder_path, folder_name, class_name = create_folder_structure("child/", parent_folder=parent_path)
+ folder_path, folder_name, class_name = create_folder_structure(
+ "child/", parent_folder=parent_path
+ )
assert folder_name == "child"
assert class_name == "Child"
@@ -85,13 +92,21 @@ def test_create_folder_structure_with_parent_folder():
@mock.patch("crewai.cli.create_crew.copy_template")
@mock.patch("crewai.cli.create_crew.write_env_file")
@mock.patch("crewai.cli.create_crew.load_env_vars")
-def test_create_crew_with_trailing_slash_creates_valid_project(mock_load_env, mock_write_env, mock_copy_template, temp_dir):
+def test_create_crew_with_trailing_slash_creates_valid_project(
+ mock_load_env, mock_write_env, mock_copy_template, temp_dir
+):
mock_load_env.return_value = {}
with tempfile.TemporaryDirectory() as work_dir:
- with mock.patch("crewai.cli.create_crew.create_folder_structure") as mock_create_folder:
+ with mock.patch(
+ "crewai.cli.create_crew.create_folder_structure"
+ ) as mock_create_folder:
mock_folder_path = Path(work_dir) / "test_project"
- mock_create_folder.return_value = (mock_folder_path, "test_project", "TestProject")
+ mock_create_folder.return_value = (
+ mock_folder_path,
+ "test_project",
+ "TestProject",
+ )
create_crew("test-project/", skip_provider=True)
@@ -103,19 +118,29 @@ def test_create_crew_with_trailing_slash_creates_valid_project(mock_load_env, mo
args = call[0]
if len(args) >= 5:
folder_name_arg = args[4]
- assert not folder_name_arg.endswith("/"), f"folder_name should not end with slash: {folder_name_arg}"
+ assert not folder_name_arg.endswith("/"), (
+ f"folder_name should not end with slash: {folder_name_arg}"
+ )
@mock.patch("crewai.cli.create_crew.copy_template")
@mock.patch("crewai.cli.create_crew.write_env_file")
@mock.patch("crewai.cli.create_crew.load_env_vars")
-def test_create_crew_with_multiple_trailing_slashes(mock_load_env, mock_write_env, mock_copy_template, temp_dir):
+def test_create_crew_with_multiple_trailing_slashes(
+ mock_load_env, mock_write_env, mock_copy_template, temp_dir
+):
mock_load_env.return_value = {}
with tempfile.TemporaryDirectory() as work_dir:
- with mock.patch("crewai.cli.create_crew.create_folder_structure") as mock_create_folder:
+ with mock.patch(
+ "crewai.cli.create_crew.create_folder_structure"
+ ) as mock_create_folder:
mock_folder_path = Path(work_dir) / "test_project"
- mock_create_folder.return_value = (mock_folder_path, "test_project", "TestProject")
+ mock_create_folder.return_value = (
+ mock_folder_path,
+ "test_project",
+ "TestProject",
+ )
create_crew("test-project///", skip_provider=True)
@@ -125,13 +150,21 @@ def test_create_crew_with_multiple_trailing_slashes(mock_load_env, mock_write_en
@mock.patch("crewai.cli.create_crew.copy_template")
@mock.patch("crewai.cli.create_crew.write_env_file")
@mock.patch("crewai.cli.create_crew.load_env_vars")
-def test_create_crew_normal_name_still_works(mock_load_env, mock_write_env, mock_copy_template, temp_dir):
+def test_create_crew_normal_name_still_works(
+ mock_load_env, mock_write_env, mock_copy_template, temp_dir
+):
mock_load_env.return_value = {}
with tempfile.TemporaryDirectory() as work_dir:
- with mock.patch("crewai.cli.create_crew.create_folder_structure") as mock_create_folder:
+ with mock.patch(
+ "crewai.cli.create_crew.create_folder_structure"
+ ) as mock_create_folder:
mock_folder_path = Path(work_dir) / "normal_project"
- mock_create_folder.return_value = (mock_folder_path, "normal_project", "NormalProject")
+ mock_create_folder.return_value = (
+ mock_folder_path,
+ "normal_project",
+ "NormalProject",
+ )
create_crew("normal-project", skip_provider=True)
@@ -140,7 +173,9 @@ def test_create_crew_normal_name_still_works(mock_load_env, mock_write_env, mock
def test_create_folder_structure_handles_spaces_and_dashes_with_slash():
with tempfile.TemporaryDirectory() as temp_dir:
- folder_path, folder_name, class_name = create_folder_structure("My Cool-Project/", parent_folder=temp_dir)
+ folder_path, folder_name, class_name = create_folder_structure(
+ "My Cool-Project/", parent_folder=temp_dir
+ )
assert folder_name == "my_cool_project"
assert class_name == "MyCoolProject"
@@ -180,16 +215,28 @@ def test_create_folder_structure_validates_names():
]
for valid_name, expected_folder, expected_class in valid_cases:
- folder_path, folder_name, class_name = create_folder_structure(valid_name, parent_folder=temp_dir)
+ folder_path, folder_name, class_name = create_folder_structure(
+ valid_name, parent_folder=temp_dir
+ )
assert folder_name == expected_folder
assert class_name == expected_class
- assert folder_name.isidentifier(), f"folder_name '{folder_name}' should be valid Python identifier"
- assert not keyword.iskeyword(folder_name), f"folder_name '{folder_name}' should not be Python keyword"
- assert not folder_name[0].isdigit(), f"folder_name '{folder_name}' should not start with digit"
+ assert folder_name.isidentifier(), (
+ f"folder_name '{folder_name}' should be valid Python identifier"
+ )
+ assert not keyword.iskeyword(folder_name), (
+ f"folder_name '{folder_name}' should not be Python keyword"
+ )
+ assert not folder_name[0].isdigit(), (
+ f"folder_name '{folder_name}' should not start with digit"
+ )
- assert class_name.isidentifier(), f"class_name '{class_name}' should be valid Python identifier"
- assert not keyword.iskeyword(class_name), f"class_name '{class_name}' should not be Python keyword"
+ assert class_name.isidentifier(), (
+ f"class_name '{class_name}' should be valid Python identifier"
+ )
+ assert not keyword.iskeyword(class_name), (
+ f"class_name '{class_name}' should not be Python keyword"
+ )
assert folder_path.parent == Path(temp_dir)
if folder_path.exists():
@@ -199,7 +246,9 @@ def test_create_folder_structure_validates_names():
@mock.patch("crewai.cli.create_crew.copy_template")
@mock.patch("crewai.cli.create_crew.write_env_file")
@mock.patch("crewai.cli.create_crew.load_env_vars")
-def test_create_crew_with_parent_folder_and_trailing_slash(mock_load_env, mock_write_env, mock_copy_template, temp_dir):
+def test_create_crew_with_parent_folder_and_trailing_slash(
+ mock_load_env, mock_write_env, mock_copy_template, temp_dir
+):
mock_load_env.return_value = {}
with tempfile.TemporaryDirectory() as work_dir:
@@ -236,7 +285,9 @@ def test_create_folder_structure_folder_name_validation():
]
for valid_name, expected_folder in valid_cases:
- folder_path, folder_name, class_name = create_folder_structure(valid_name, parent_folder=temp_dir)
+ folder_path, folder_name, class_name = create_folder_structure(
+ valid_name, parent_folder=temp_dir
+ )
assert folder_name == expected_folder
assert folder_name.isidentifier()
assert not keyword.iskeyword(folder_name)
@@ -244,6 +295,7 @@ def test_create_folder_structure_folder_name_validation():
if folder_path.exists():
shutil.rmtree(folder_path)
+
@mock.patch("crewai.cli.create_crew.create_folder_structure")
@mock.patch("crewai.cli.create_crew.copy_template")
@mock.patch("crewai.cli.create_crew.load_env_vars")
@@ -259,7 +311,7 @@ def test_env_vars_are_uppercased_in_env_file(
mock_load_env_vars,
mock_copy_template,
mock_create_folder_structure,
- tmp_path
+ tmp_path,
):
crew_path = tmp_path / "test_crew"
crew_path.mkdir()
@@ -275,4 +327,4 @@ def test_env_vars_are_uppercased_in_env_file(
env_file_path = crew_path / ".env"
content = env_file_path.read_text()
- assert "MODEL=" in content
\ No newline at end of file
+ assert "MODEL=" in content
diff --git a/tests/cli/test_crew_test.py b/lib/crewai/tests/cli/test_crew_test.py
similarity index 100%
rename from tests/cli/test_crew_test.py
rename to lib/crewai/tests/cli/test_crew_test.py
diff --git a/tests/cli/test_git.py b/lib/crewai/tests/cli/test_git.py
similarity index 99%
rename from tests/cli/test_git.py
rename to lib/crewai/tests/cli/test_git.py
index ccf8f0539..b77106d3f 100644
--- a/tests/cli/test_git.py
+++ b/lib/crewai/tests/cli/test_git.py
@@ -1,5 +1,4 @@
import pytest
-
from crewai.cli.git import Repository
diff --git a/tests/cli/test_plus_api.py b/lib/crewai/tests/cli/test_plus_api.py
similarity index 99%
rename from tests/cli/test_plus_api.py
rename to lib/crewai/tests/cli/test_plus_api.py
index 0bc4278e8..937d023a7 100644
--- a/tests/cli/test_plus_api.py
+++ b/lib/crewai/tests/cli/test_plus_api.py
@@ -1,8 +1,8 @@
import unittest
-from unittest.mock import MagicMock, patch, ANY
+from unittest.mock import ANY, MagicMock, patch
-from crewai.cli.plus_api import PlusAPI
from crewai.cli.constants import DEFAULT_CREWAI_ENTERPRISE_URL
+from crewai.cli.plus_api import PlusAPI
class TestPlusAPI(unittest.TestCase):
diff --git a/tests/cli/test_settings_command.py b/lib/crewai/tests/cli/test_settings_command.py
similarity index 100%
rename from tests/cli/test_settings_command.py
rename to lib/crewai/tests/cli/test_settings_command.py
diff --git a/tests/cli/test_token_manager.py b/lib/crewai/tests/cli/test_token_manager.py
similarity index 100%
rename from tests/cli/test_token_manager.py
rename to lib/crewai/tests/cli/test_token_manager.py
diff --git a/tests/cli/test_train_crew.py b/lib/crewai/tests/cli/test_train_crew.py
similarity index 100%
rename from tests/cli/test_train_crew.py
rename to lib/crewai/tests/cli/test_train_crew.py
diff --git a/tests/cli/test_utils.py b/lib/crewai/tests/cli/test_utils.py
similarity index 99%
rename from tests/cli/test_utils.py
rename to lib/crewai/tests/cli/test_utils.py
index 517a1c236..5baf1cffe 100644
--- a/tests/cli/test_utils.py
+++ b/lib/crewai/tests/cli/test_utils.py
@@ -4,7 +4,6 @@ import tempfile
from pathlib import Path
import pytest
-
from crewai.cli import utils
@@ -348,7 +347,9 @@ def test_get_crews_with_invalid_module(temp_crew_project, capsys):
assert "Error" in captured.out
-def test_get_crews_ignores_template_directories(temp_crew_project, monkeypatch, mock_crew):
+def test_get_crews_ignores_template_directories(
+ temp_crew_project, monkeypatch, mock_crew
+):
template_crew_detected = False
def mock_fetch_crews(module_attr):
diff --git a/tests/cli/test_version.py b/lib/crewai/tests/cli/test_version.py
similarity index 100%
rename from tests/cli/test_version.py
rename to lib/crewai/tests/cli/test_version.py
diff --git a/tests/experimental/evaluation/__init__.py b/lib/crewai/tests/cli/tools/__init__.py
similarity index 100%
rename from tests/experimental/evaluation/__init__.py
rename to lib/crewai/tests/cli/tools/__init__.py
diff --git a/tests/cli/tools/test_main.py b/lib/crewai/tests/cli/tools/test_main.py
similarity index 99%
rename from tests/cli/tools/test_main.py
rename to lib/crewai/tests/cli/tools/test_main.py
index 117526487..fa1c5fa44 100644
--- a/tests/cli/tools/test_main.py
+++ b/lib/crewai/tests/cli/tools/test_main.py
@@ -2,17 +2,16 @@ import os
import tempfile
import unittest
import unittest.mock
-from datetime import datetime, timedelta
from contextlib import contextmanager
+from datetime import datetime, timedelta
from pathlib import Path
from unittest import mock
from unittest.mock import MagicMock, patch
import pytest
-from pytest import raises
-
from crewai.cli.shared.token_manager import TokenManager
from crewai.cli.tools.main import ToolCommand
+from pytest import raises
@contextmanager
diff --git a/tests/config/agents.yaml b/lib/crewai/tests/config/agents.yaml
similarity index 100%
rename from tests/config/agents.yaml
rename to lib/crewai/tests/config/agents.yaml
diff --git a/tests/config/tasks.yaml b/lib/crewai/tests/config/tasks.yaml
similarity index 100%
rename from tests/config/tasks.yaml
rename to lib/crewai/tests/config/tasks.yaml
diff --git a/tests/conftest.py b/lib/crewai/tests/conftest.py
similarity index 98%
rename from tests/conftest.py
rename to lib/crewai/tests/conftest.py
index 8ddfae82f..b8b005308 100644
--- a/tests/conftest.py
+++ b/lib/crewai/tests/conftest.py
@@ -161,8 +161,9 @@ def mock_opentelemetry_components():
@pytest.fixture(scope="module")
def vcr_config(request) -> dict:
+ import os
return {
- "cassette_library_dir": "tests/cassettes",
+ "cassette_library_dir": os.path.join(os.path.dirname(__file__), "cassettes"),
"record_mode": "new_episodes",
"filter_headers": [("authorization", "AUTHORIZATION-XXX")],
}
diff --git a/tests/events/test_tracing_utils_machine_id.py b/lib/crewai/tests/events/test_tracing_utils_machine_id.py
similarity index 100%
rename from tests/events/test_tracing_utils_machine_id.py
rename to lib/crewai/tests/events/test_tracing_utils_machine_id.py
diff --git a/tests/experimental/evaluation/metrics/__init__.py b/lib/crewai/tests/experimental/__init__.py
similarity index 100%
rename from tests/experimental/evaluation/metrics/__init__.py
rename to lib/crewai/tests/experimental/__init__.py
diff --git a/tests/knowledge/__init__.py b/lib/crewai/tests/experimental/evaluation/__init__.py
similarity index 100%
rename from tests/knowledge/__init__.py
rename to lib/crewai/tests/experimental/evaluation/__init__.py
diff --git a/tests/pipeline/__init__.py b/lib/crewai/tests/experimental/evaluation/metrics/__init__.py
similarity index 100%
rename from tests/pipeline/__init__.py
rename to lib/crewai/tests/experimental/evaluation/metrics/__init__.py
diff --git a/tests/experimental/evaluation/metrics/test_base_evaluation_metrics.py b/lib/crewai/tests/experimental/evaluation/metrics/test_base_evaluation_metrics.py
similarity index 99%
rename from tests/experimental/evaluation/metrics/test_base_evaluation_metrics.py
rename to lib/crewai/tests/experimental/evaluation/metrics/test_base_evaluation_metrics.py
index c1a371fb8..5f1772905 100644
--- a/tests/experimental/evaluation/metrics/test_base_evaluation_metrics.py
+++ b/lib/crewai/tests/experimental/evaluation/metrics/test_base_evaluation_metrics.py
@@ -1,5 +1,6 @@
-import pytest
from unittest.mock import MagicMock
+
+import pytest
from crewai.agent import Agent
from crewai.task import Task
diff --git a/tests/experimental/evaluation/metrics/test_goal_metrics.py b/lib/crewai/tests/experimental/evaluation/metrics/test_goal_metrics.py
similarity index 98%
rename from tests/experimental/evaluation/metrics/test_goal_metrics.py
rename to lib/crewai/tests/experimental/evaluation/metrics/test_goal_metrics.py
index 1d71f9159..e6beab9ba 100644
--- a/tests/experimental/evaluation/metrics/test_goal_metrics.py
+++ b/lib/crewai/tests/experimental/evaluation/metrics/test_goal_metrics.py
@@ -1,12 +1,13 @@
-from unittest.mock import patch, MagicMock
-from tests.experimental.evaluation.metrics.test_base_evaluation_metrics import (
- BaseEvaluationMetricsTest,
-)
+from unittest.mock import MagicMock, patch
from crewai.experimental.evaluation.base_evaluator import EvaluationScore
from crewai.experimental.evaluation.metrics.goal_metrics import GoalAlignmentEvaluator
from crewai.utilities.llm_utils import LLM
+from tests.experimental.evaluation.metrics.test_base_evaluation_metrics import (
+ BaseEvaluationMetricsTest,
+)
+
class TestGoalAlignmentEvaluator(BaseEvaluationMetricsTest):
@patch("crewai.utilities.llm_utils.create_llm")
diff --git a/tests/experimental/evaluation/metrics/test_reasoning_metrics.py b/lib/crewai/tests/experimental/evaluation/metrics/test_reasoning_metrics.py
similarity index 98%
rename from tests/experimental/evaluation/metrics/test_reasoning_metrics.py
rename to lib/crewai/tests/experimental/evaluation/metrics/test_reasoning_metrics.py
index 2153640e3..0c89d9f67 100644
--- a/tests/experimental/evaluation/metrics/test_reasoning_metrics.py
+++ b/lib/crewai/tests/experimental/evaluation/metrics/test_reasoning_metrics.py
@@ -1,16 +1,17 @@
-import pytest
-from unittest.mock import patch, MagicMock
-from typing import List, Dict, Any
+from typing import Any, Dict, List
+from unittest.mock import MagicMock, patch
-from crewai.tasks.task_output import TaskOutput
+import pytest
+from crewai.experimental.evaluation.base_evaluator import EvaluationScore
from crewai.experimental.evaluation.metrics.reasoning_metrics import (
ReasoningEfficiencyEvaluator,
)
+from crewai.tasks.task_output import TaskOutput
+from crewai.utilities.llm_utils import LLM
+
from tests.experimental.evaluation.metrics.test_base_evaluation_metrics import (
BaseEvaluationMetricsTest,
)
-from crewai.utilities.llm_utils import LLM
-from crewai.experimental.evaluation.base_evaluator import EvaluationScore
class TestReasoningEfficiencyEvaluator(BaseEvaluationMetricsTest):
diff --git a/tests/experimental/evaluation/metrics/test_semantic_quality_metrics.py b/lib/crewai/tests/experimental/evaluation/metrics/test_semantic_quality_metrics.py
similarity index 100%
rename from tests/experimental/evaluation/metrics/test_semantic_quality_metrics.py
rename to lib/crewai/tests/experimental/evaluation/metrics/test_semantic_quality_metrics.py
diff --git a/tests/experimental/evaluation/metrics/test_tools_metrics.py b/lib/crewai/tests/experimental/evaluation/metrics/test_tools_metrics.py
similarity index 99%
rename from tests/experimental/evaluation/metrics/test_tools_metrics.py
rename to lib/crewai/tests/experimental/evaluation/metrics/test_tools_metrics.py
index bda3eb687..ee9732422 100644
--- a/tests/experimental/evaluation/metrics/test_tools_metrics.py
+++ b/lib/crewai/tests/experimental/evaluation/metrics/test_tools_metrics.py
@@ -1,11 +1,12 @@
-from unittest.mock import patch, MagicMock
+from unittest.mock import MagicMock, patch
from crewai.experimental.evaluation.metrics.tools_metrics import (
- ToolSelectionEvaluator,
ParameterExtractionEvaluator,
ToolInvocationEvaluator,
+ ToolSelectionEvaluator,
)
from crewai.utilities.llm_utils import LLM
+
from tests.experimental.evaluation.metrics.test_base_evaluation_metrics import (
BaseEvaluationMetricsTest,
)
diff --git a/tests/experimental/evaluation/test_agent_evaluator.py b/lib/crewai/tests/experimental/evaluation/test_agent_evaluator.py
similarity index 99%
rename from tests/experimental/evaluation/test_agent_evaluator.py
rename to lib/crewai/tests/experimental/evaluation/test_agent_evaluator.py
index cb89bd4d1..3bb5c5e90 100644
--- a/tests/experimental/evaluation/test_agent_evaluator.py
+++ b/lib/crewai/tests/experimental/evaluation/test_agent_evaluator.py
@@ -1,28 +1,26 @@
import pytest
-
from crewai.agent import Agent
-from crewai.task import Task
from crewai.crew import Crew
-from crewai.experimental.evaluation.agent_evaluator import AgentEvaluator
-from crewai.experimental.evaluation.base_evaluator import AgentEvaluationResult
-from crewai.experimental.evaluation import (
- GoalAlignmentEvaluator,
- SemanticQualityEvaluator,
- ToolSelectionEvaluator,
- ParameterExtractionEvaluator,
- ToolInvocationEvaluator,
- ReasoningEfficiencyEvaluator,
- MetricCategory,
- EvaluationScore,
-)
-
+from crewai.events.event_bus import crewai_event_bus
from crewai.events.types.agent_events import (
- AgentEvaluationStartedEvent,
AgentEvaluationCompletedEvent,
AgentEvaluationFailedEvent,
+ AgentEvaluationStartedEvent,
)
-from crewai.events.event_bus import crewai_event_bus
-from crewai.experimental.evaluation import create_default_evaluator
+from crewai.experimental.evaluation import (
+ EvaluationScore,
+ GoalAlignmentEvaluator,
+ MetricCategory,
+ ParameterExtractionEvaluator,
+ ReasoningEfficiencyEvaluator,
+ SemanticQualityEvaluator,
+ ToolInvocationEvaluator,
+ ToolSelectionEvaluator,
+ create_default_evaluator,
+)
+from crewai.experimental.evaluation.agent_evaluator import AgentEvaluator
+from crewai.experimental.evaluation.base_evaluator import AgentEvaluationResult
+from crewai.task import Task
class TestAgentEvaluator:
@@ -254,8 +252,8 @@ class TestAgentEvaluator:
events["failed"] = event
# Create a mock evaluator that will raise an exception
- from crewai.experimental.evaluation.base_evaluator import BaseEvaluator
from crewai.experimental.evaluation import MetricCategory
+ from crewai.experimental.evaluation.base_evaluator import BaseEvaluator
class FailingEvaluator(BaseEvaluator):
metric_category = MetricCategory.GOAL_ALIGNMENT
diff --git a/tests/experimental/evaluation/test_experiment_result.py b/lib/crewai/tests/experimental/evaluation/test_experiment_result.py
similarity index 100%
rename from tests/experimental/evaluation/test_experiment_result.py
rename to lib/crewai/tests/experimental/evaluation/test_experiment_result.py
diff --git a/tests/experimental/evaluation/test_experiment_runner.py b/lib/crewai/tests/experimental/evaluation/test_experiment_runner.py
similarity index 77%
rename from tests/experimental/evaluation/test_experiment_runner.py
rename to lib/crewai/tests/experimental/evaluation/test_experiment_runner.py
index 58382fa65..f15af56de 100644
--- a/tests/experimental/evaluation/test_experiment_runner.py
+++ b/lib/crewai/tests/experimental/evaluation/test_experiment_runner.py
@@ -1,11 +1,16 @@
-import pytest
from unittest.mock import MagicMock, patch
+import pytest
from crewai.crew import Crew
-from crewai.experimental.evaluation.experiment.runner import ExperimentRunner
+from crewai.experimental.evaluation.base_evaluator import (
+ EvaluationScore,
+ MetricCategory,
+)
+from crewai.experimental.evaluation.evaluation_display import (
+ AgentAggregatedEvaluationResult,
+)
from crewai.experimental.evaluation.experiment.result import ExperimentResults
-from crewai.experimental.evaluation.evaluation_display import AgentAggregatedEvaluationResult
-from crewai.experimental.evaluation.base_evaluator import MetricCategory, EvaluationScore
+from crewai.experimental.evaluation.experiment.runner import ExperimentRunner
class TestExperimentRunner:
@@ -22,45 +27,47 @@ class TestExperimentRunner:
MetricCategory.GOAL_ALIGNMENT: EvaluationScore(
score=9,
feedback="Test feedback for goal alignment",
- raw_response="Test raw response for goal alignment"
+ raw_response="Test raw response for goal alignment",
),
MetricCategory.REASONING_EFFICIENCY: EvaluationScore(
score=None,
feedback="Reasoning efficiency not applicable",
- raw_response="Reasoning efficiency not applicable"
+ raw_response="Reasoning efficiency not applicable",
),
MetricCategory.PARAMETER_EXTRACTION: EvaluationScore(
score=7,
feedback="Test parameter extraction explanation",
- raw_response="Test raw output"
+ raw_response="Test raw output",
),
MetricCategory.TOOL_SELECTION: EvaluationScore(
score=8,
feedback="Test tool selection explanation",
- raw_response="Test raw output"
- )
- }
+ raw_response="Test raw output",
+ ),
+ },
)
return {"Test Agent": agent_evaluation}
- @patch('crewai.experimental.evaluation.experiment.runner.create_default_evaluator')
- def test_run_success(self, mock_create_evaluator, mock_crew, mock_evaluator_results):
+ @patch("crewai.experimental.evaluation.experiment.runner.create_default_evaluator")
+ def test_run_success(
+ self, mock_create_evaluator, mock_crew, mock_evaluator_results
+ ):
dataset = [
{
"identifier": "test-case-1",
"inputs": {"query": "Test query 1"},
- "expected_score": 8
+ "expected_score": 8,
},
{
"identifier": "test-case-2",
"inputs": {"query": "Test query 2"},
- "expected_score": {"goal_alignment": 7}
+ "expected_score": {"goal_alignment": 7},
},
{
"inputs": {"query": "Test query 3"},
- "expected_score": {"tool_selection": 9}
- }
+ "expected_score": {"tool_selection": 9},
+ },
]
mock_evaluator = MagicMock()
@@ -101,14 +108,15 @@ class TestExperimentRunner:
assert mock_evaluator.reset_iterations_results.call_count == 3
assert mock_evaluator.get_agent_evaluation.call_count == 3
-
- @patch('crewai.experimental.evaluation.experiment.runner.create_default_evaluator')
- def test_run_success_with_unknown_metric(self, mock_create_evaluator, mock_crew, mock_evaluator_results):
+ @patch("crewai.experimental.evaluation.experiment.runner.create_default_evaluator")
+ def test_run_success_with_unknown_metric(
+ self, mock_create_evaluator, mock_crew, mock_evaluator_results
+ ):
dataset = [
{
"identifier": "test-case-2",
"inputs": {"query": "Test query 2"},
- "expected_score": {"goal_alignment": 7, "unknown_metric": 8}
+ "expected_score": {"goal_alignment": 7, "unknown_metric": 8},
}
]
@@ -121,7 +129,7 @@ class TestExperimentRunner:
results = runner.run(crew=mock_crew)
- result, = results.results
+ (result,) = results.results
assert result.identifier == "test-case-2"
assert result.inputs == {"query": "Test query 2"}
@@ -130,55 +138,24 @@ class TestExperimentRunner:
assert "unknown_metric" in result.expected_score.keys()
assert result.passed is True
- @patch('crewai.experimental.evaluation.experiment.runner.create_default_evaluator')
- def test_run_success_with_single_metric_evaluator_and_expected_specific_metric(self, mock_create_evaluator, mock_crew, mock_evaluator_results):
+ @patch("crewai.experimental.evaluation.experiment.runner.create_default_evaluator")
+ def test_run_success_with_single_metric_evaluator_and_expected_specific_metric(
+ self, mock_create_evaluator, mock_crew, mock_evaluator_results
+ ):
dataset = [
{
"identifier": "test-case-2",
"inputs": {"query": "Test query 2"},
- "expected_score": {"goal_alignment": 7}
+ "expected_score": {"goal_alignment": 7},
}
]
mock_evaluator = MagicMock()
mock_create_evaluator["Test Agent"].metrics = {
MetricCategory.GOAL_ALIGNMENT: EvaluationScore(
- score=9,
- feedback="Test feedback for goal alignment",
- raw_response="Test raw response for goal alignment"
- )
- }
- mock_evaluator.get_agent_evaluation.return_value = mock_evaluator_results
- mock_evaluator.reset_iterations_results = MagicMock()
- mock_create_evaluator.return_value = mock_evaluator
-
- runner = ExperimentRunner(dataset=dataset)
-
- results = runner.run(crew=mock_crew)
- result, = results.results
-
- assert result.identifier == "test-case-2"
- assert result.inputs == {"query": "Test query 2"}
- assert isinstance(result.expected_score, dict)
- assert "goal_alignment" in result.expected_score.keys()
- assert result.passed is True
-
- @patch('crewai.experimental.evaluation.experiment.runner.create_default_evaluator')
- def test_run_success_when_expected_metric_is_not_available(self, mock_create_evaluator, mock_crew, mock_evaluator_results):
- dataset = [
- {
- "identifier": "test-case-2",
- "inputs": {"query": "Test query 2"},
- "expected_score": {"unknown_metric": 7}
- }
- ]
-
- mock_evaluator = MagicMock()
- mock_create_evaluator["Test Agent"].metrics = {
- MetricCategory.GOAL_ALIGNMENT: EvaluationScore(
- score=5,
+ score=9,
feedback="Test feedback for goal alignment",
- raw_response="Test raw response for goal alignment"
+ raw_response="Test raw response for goal alignment",
)
}
mock_evaluator.get_agent_evaluation.return_value = mock_evaluator_results
@@ -188,10 +165,45 @@ class TestExperimentRunner:
runner = ExperimentRunner(dataset=dataset)
results = runner.run(crew=mock_crew)
- result, = results.results
+ (result,) = results.results
+
+ assert result.identifier == "test-case-2"
+ assert result.inputs == {"query": "Test query 2"}
+ assert isinstance(result.expected_score, dict)
+ assert "goal_alignment" in result.expected_score.keys()
+ assert result.passed is True
+
+ @patch("crewai.experimental.evaluation.experiment.runner.create_default_evaluator")
+ def test_run_success_when_expected_metric_is_not_available(
+ self, mock_create_evaluator, mock_crew, mock_evaluator_results
+ ):
+ dataset = [
+ {
+ "identifier": "test-case-2",
+ "inputs": {"query": "Test query 2"},
+ "expected_score": {"unknown_metric": 7},
+ }
+ ]
+
+ mock_evaluator = MagicMock()
+ mock_create_evaluator["Test Agent"].metrics = {
+ MetricCategory.GOAL_ALIGNMENT: EvaluationScore(
+ score=5,
+ feedback="Test feedback for goal alignment",
+ raw_response="Test raw response for goal alignment",
+ )
+ }
+ mock_evaluator.get_agent_evaluation.return_value = mock_evaluator_results
+ mock_evaluator.reset_iterations_results = MagicMock()
+ mock_create_evaluator.return_value = mock_evaluator
+
+ runner = ExperimentRunner(dataset=dataset)
+
+ results = runner.run(crew=mock_crew)
+ (result,) = results.results
assert result.identifier == "test-case-2"
assert result.inputs == {"query": "Test query 2"}
assert isinstance(result.expected_score, dict)
assert "unknown_metric" in result.expected_score.keys()
- assert result.passed is False
\ No newline at end of file
+ assert result.passed is False
diff --git a/tests/rag/__init__.py b/lib/crewai/tests/knowledge/__init__.py
similarity index 100%
rename from tests/rag/__init__.py
rename to lib/crewai/tests/knowledge/__init__.py
diff --git a/tests/knowledge/crewai_quickstart.pdf b/lib/crewai/tests/knowledge/crewai_quickstart.pdf
similarity index 100%
rename from tests/knowledge/crewai_quickstart.pdf
rename to lib/crewai/tests/knowledge/crewai_quickstart.pdf
diff --git a/tests/knowledge/test_knowledge.py b/lib/crewai/tests/knowledge/test_knowledge.py
similarity index 99%
rename from tests/knowledge/test_knowledge.py
rename to lib/crewai/tests/knowledge/test_knowledge.py
index 67c2d68b0..a6f253fb1 100644
--- a/tests/knowledge/test_knowledge.py
+++ b/lib/crewai/tests/knowledge/test_knowledge.py
@@ -4,7 +4,6 @@ from pathlib import Path
from unittest.mock import patch
import pytest
-
from crewai.knowledge.source.crew_docling_source import CrewDoclingSource
from crewai.knowledge.source.csv_knowledge_source import CSVKnowledgeSource
from crewai.knowledge.source.excel_knowledge_source import ExcelKnowledgeSource
diff --git a/tests/knowledge/test_knowledge_searchresult.py b/lib/crewai/tests/knowledge/test_knowledge_searchresult.py
similarity index 99%
rename from tests/knowledge/test_knowledge_searchresult.py
rename to lib/crewai/tests/knowledge/test_knowledge_searchresult.py
index cea7c0367..6f3db84de 100644
--- a/tests/knowledge/test_knowledge_searchresult.py
+++ b/lib/crewai/tests/knowledge/test_knowledge_searchresult.py
@@ -4,7 +4,6 @@ from typing import Any
from unittest.mock import MagicMock, patch
import pytest
-
from crewai.knowledge.knowledge import Knowledge # type: ignore[import-untyped]
from crewai.knowledge.source.string_knowledge_source import ( # type: ignore[import-untyped]
StringKnowledgeSource,
diff --git a/tests/knowledge/test_knowledge_storage_integration.py b/lib/crewai/tests/knowledge/test_knowledge_storage_integration.py
similarity index 99%
rename from tests/knowledge/test_knowledge_storage_integration.py
rename to lib/crewai/tests/knowledge/test_knowledge_storage_integration.py
index 0c457d5d2..a58dcb2fc 100644
--- a/tests/knowledge/test_knowledge_storage_integration.py
+++ b/lib/crewai/tests/knowledge/test_knowledge_storage_integration.py
@@ -3,7 +3,6 @@
from unittest.mock import MagicMock, patch
import pytest
-
from crewai.knowledge.storage.knowledge_storage import ( # type: ignore[import-untyped]
KnowledgeStorage,
)
diff --git a/tests/memory/__init__.py b/lib/crewai/tests/memory/__init__.py
similarity index 100%
rename from tests/memory/__init__.py
rename to lib/crewai/tests/memory/__init__.py
diff --git a/tests/memory/test_external_memory.py b/lib/crewai/tests/memory/test_external_memory.py
similarity index 100%
rename from tests/memory/test_external_memory.py
rename to lib/crewai/tests/memory/test_external_memory.py
diff --git a/tests/memory/test_long_term_memory.py b/lib/crewai/tests/memory/test_long_term_memory.py
similarity index 99%
rename from tests/memory/test_long_term_memory.py
rename to lib/crewai/tests/memory/test_long_term_memory.py
index bf4c9285f..5b5a714d6 100644
--- a/tests/memory/test_long_term_memory.py
+++ b/lib/crewai/tests/memory/test_long_term_memory.py
@@ -1,15 +1,16 @@
-import pytest
-from unittest.mock import ANY
from collections import defaultdict
+from unittest.mock import ANY
+
+import pytest
from crewai.events.event_bus import crewai_event_bus
+from crewai.events.types.memory_events import (
+ MemoryQueryCompletedEvent,
+ MemoryQueryStartedEvent,
+ MemorySaveCompletedEvent,
+ MemorySaveStartedEvent,
+)
from crewai.memory.long_term.long_term_memory import LongTermMemory
from crewai.memory.long_term.long_term_memory_item import LongTermMemoryItem
-from crewai.events.types.memory_events import (
- MemorySaveStartedEvent,
- MemorySaveCompletedEvent,
- MemoryQueryStartedEvent,
- MemoryQueryCompletedEvent,
-)
@pytest.fixture
diff --git a/tests/memory/test_short_term_memory.py b/lib/crewai/tests/memory/test_short_term_memory.py
similarity index 99%
rename from tests/memory/test_short_term_memory.py
rename to lib/crewai/tests/memory/test_short_term_memory.py
index b50f6d2fe..29da93405 100644
--- a/tests/memory/test_short_term_memory.py
+++ b/lib/crewai/tests/memory/test_short_term_memory.py
@@ -2,7 +2,6 @@ from collections import defaultdict
from unittest.mock import ANY, patch
import pytest
-
from crewai.agent import Agent
from crewai.crew import Crew
from crewai.events.event_bus import crewai_event_bus
diff --git a/tests/rag/chromadb/__init__.py b/lib/crewai/tests/pipeline/__init__.py
similarity index 100%
rename from tests/rag/chromadb/__init__.py
rename to lib/crewai/tests/pipeline/__init__.py
diff --git a/tests/pipeline/cassettes/test_router_with_empty_input.yaml b/lib/crewai/tests/pipeline/cassettes/test_router_with_empty_input.yaml
similarity index 100%
rename from tests/pipeline/cassettes/test_router_with_empty_input.yaml
rename to lib/crewai/tests/pipeline/cassettes/test_router_with_empty_input.yaml
diff --git a/tests/security/__init__.py b/lib/crewai/tests/rag/__init__.py
similarity index 100%
rename from tests/security/__init__.py
rename to lib/crewai/tests/rag/__init__.py
diff --git a/tests/telemetry/__init__.py b/lib/crewai/tests/rag/chromadb/__init__.py
similarity index 100%
rename from tests/telemetry/__init__.py
rename to lib/crewai/tests/rag/chromadb/__init__.py
diff --git a/tests/rag/chromadb/test_client.py b/lib/crewai/tests/rag/chromadb/test_client.py
similarity index 99%
rename from tests/rag/chromadb/test_client.py
rename to lib/crewai/tests/rag/chromadb/test_client.py
index ab31549e7..e8af7655b 100644
--- a/tests/rag/chromadb/test_client.py
+++ b/lib/crewai/tests/rag/chromadb/test_client.py
@@ -3,7 +3,6 @@
from unittest.mock import AsyncMock, Mock
import pytest
-
from crewai.rag.chromadb.client import ChromaDBClient
from crewai.rag.types import BaseRecord
diff --git a/tests/rag/chromadb/test_utils.py b/lib/crewai/tests/rag/chromadb/test_utils.py
similarity index 100%
rename from tests/rag/chromadb/test_utils.py
rename to lib/crewai/tests/rag/chromadb/test_utils.py
diff --git a/tests/rag/config/test_factory.py b/lib/crewai/tests/rag/config/test_factory.py
similarity index 99%
rename from tests/rag/config/test_factory.py
rename to lib/crewai/tests/rag/config/test_factory.py
index e23dfbbd0..47c02aadd 100644
--- a/tests/rag/config/test_factory.py
+++ b/lib/crewai/tests/rag/config/test_factory.py
@@ -3,7 +3,6 @@
from unittest.mock import Mock, patch
import pytest
-
from crewai.rag.factory import create_client
diff --git a/tests/rag/config/test_optional_imports.py b/lib/crewai/tests/rag/config/test_optional_imports.py
similarity index 99%
rename from tests/rag/config/test_optional_imports.py
rename to lib/crewai/tests/rag/config/test_optional_imports.py
index 11dad9855..cf0217a3c 100644
--- a/tests/rag/config/test_optional_imports.py
+++ b/lib/crewai/tests/rag/config/test_optional_imports.py
@@ -1,7 +1,6 @@
"""Tests for optional imports."""
import pytest
-
from crewai.rag.config.optional_imports.base import _MissingProvider
from crewai.rag.config.optional_imports.providers import MissingChromaDBConfig
diff --git a/tests/rag/embeddings/test_embedding_factory.py b/lib/crewai/tests/rag/embeddings/test_embedding_factory.py
similarity index 100%
rename from tests/rag/embeddings/test_embedding_factory.py
rename to lib/crewai/tests/rag/embeddings/test_embedding_factory.py
diff --git a/tests/rag/embeddings/test_factory_azure.py b/lib/crewai/tests/rag/embeddings/test_factory_azure.py
similarity index 100%
rename from tests/rag/embeddings/test_factory_azure.py
rename to lib/crewai/tests/rag/embeddings/test_factory_azure.py
diff --git a/tests/rag/qdrant/test_client.py b/lib/crewai/tests/rag/qdrant/test_client.py
similarity index 99%
rename from tests/rag/qdrant/test_client.py
rename to lib/crewai/tests/rag/qdrant/test_client.py
index 9984dce8a..03a4e62dc 100644
--- a/tests/rag/qdrant/test_client.py
+++ b/lib/crewai/tests/rag/qdrant/test_client.py
@@ -3,12 +3,11 @@
from unittest.mock import AsyncMock, Mock
import pytest
-from qdrant_client import AsyncQdrantClient
-from qdrant_client import QdrantClient as SyncQdrantClient
-
from crewai.rag.core.exceptions import ClientMethodMismatchError
from crewai.rag.qdrant.client import QdrantClient
from crewai.rag.types import BaseRecord
+from qdrant_client import AsyncQdrantClient
+from qdrant_client import QdrantClient as SyncQdrantClient
@pytest.fixture
diff --git a/tests/rag/test_error_handling.py b/lib/crewai/tests/rag/test_error_handling.py
similarity index 99%
rename from tests/rag/test_error_handling.py
rename to lib/crewai/tests/rag/test_error_handling.py
index 0cf033c52..1bbab292c 100644
--- a/tests/rag/test_error_handling.py
+++ b/lib/crewai/tests/rag/test_error_handling.py
@@ -3,7 +3,6 @@
from unittest.mock import MagicMock, patch
import pytest
-
from crewai.knowledge.storage.knowledge_storage import ( # type: ignore[import-untyped]
KnowledgeStorage,
)
diff --git a/tests/tools/agent_tools/__init__.py b/lib/crewai/tests/security/__init__.py
similarity index 100%
rename from tests/tools/agent_tools/__init__.py
rename to lib/crewai/tests/security/__init__.py
diff --git a/tests/security/test_deterministic_fingerprints.py b/lib/crewai/tests/security/test_deterministic_fingerprints.py
similarity index 100%
rename from tests/security/test_deterministic_fingerprints.py
rename to lib/crewai/tests/security/test_deterministic_fingerprints.py
diff --git a/tests/security/test_examples.py b/lib/crewai/tests/security/test_examples.py
similarity index 97%
rename from tests/security/test_examples.py
rename to lib/crewai/tests/security/test_examples.py
index 895b19900..0a6dbe59b 100644
--- a/tests/security/test_examples.py
+++ b/lib/crewai/tests/security/test_examples.py
@@ -1,7 +1,5 @@
"""Test for the examples in the fingerprinting documentation."""
-import pytest
-
from crewai import Agent, Crew, Task
from crewai.security import Fingerprint, SecurityConfig
@@ -74,9 +72,9 @@ def test_accessing_fingerprints_example():
crew_fingerprint.uuid_str,
task_fingerprint.uuid_str,
]
- assert len(fingerprints) == len(
- set(fingerprints)
- ), "All fingerprints should be unique"
+ assert len(fingerprints) == len(set(fingerprints)), (
+ "All fingerprints should be unique"
+ )
def test_fingerprint_metadata_example():
@@ -169,9 +167,9 @@ def test_complete_workflow_example():
writing_task.fingerprint.uuid_str,
content_crew.fingerprint.uuid_str,
]
- assert len(fingerprints) == len(
- set(fingerprints)
- ), "All fingerprints should be unique"
+ assert len(fingerprints) == len(set(fingerprints)), (
+ "All fingerprints should be unique"
+ )
def test_security_preservation_during_copy():
diff --git a/tests/security/test_fingerprint.py b/lib/crewai/tests/security/test_fingerprint.py
similarity index 96%
rename from tests/security/test_fingerprint.py
rename to lib/crewai/tests/security/test_fingerprint.py
index 8444556bf..1ce7e8370 100644
--- a/tests/security/test_fingerprint.py
+++ b/lib/crewai/tests/security/test_fingerprint.py
@@ -5,8 +5,6 @@ import uuid
from datetime import datetime, timedelta
import pytest
-from pydantic import ValidationError
-
from crewai.security import Fingerprint
@@ -170,7 +168,7 @@ def test_fingerprint_from_dict():
fingerprint_dict = {
"uuid_str": uuid_str,
"created_at": created_at_iso,
- "metadata": metadata
+ "metadata": metadata,
}
fingerprint = Fingerprint.from_dict(fingerprint_dict)
@@ -207,11 +205,7 @@ def test_invalid_uuid_str():
uuid_str = "not-a-valid-uuid"
created_at = datetime.now().isoformat()
- fingerprint_dict = {
- "uuid_str": uuid_str,
- "created_at": created_at,
- "metadata": {}
- }
+ fingerprint_dict = {"uuid_str": uuid_str, "created_at": created_at, "metadata": {}}
# The Fingerprint.from_dict method accepts even invalid UUIDs
# This seems to be the current behavior
@@ -243,7 +237,7 @@ def test_fingerprint_metadata_mutation():
expected_metadata = {
"version": "1.0",
"status": "published",
- "author": "Test Author"
+ "author": "Test Author",
}
assert fingerprint.metadata == expected_metadata
@@ -260,4 +254,4 @@ def test_fingerprint_metadata_mutation():
# Ensure immutable fields remain unchanged
assert fingerprint.uuid_str == uuid_str
- assert fingerprint.created_at == created_at
\ No newline at end of file
+ assert fingerprint.created_at == created_at
diff --git a/tests/security/test_integration.py b/lib/crewai/tests/security/test_integration.py
similarity index 71%
rename from tests/security/test_integration.py
rename to lib/crewai/tests/security/test_integration.py
index a4dbc0c23..8dd0617fb 100644
--- a/tests/security/test_integration.py
+++ b/lib/crewai/tests/security/test_integration.py
@@ -1,7 +1,5 @@
"""Test integration of fingerprinting with Agent, Crew, and Task classes."""
-import pytest
-
from crewai import Agent, Crew, Task
from crewai.security import Fingerprint, SecurityConfig
@@ -15,7 +13,7 @@ def test_agent_with_security_config():
role="Tester",
goal="Test fingerprinting",
backstory="Testing fingerprinting",
- security_config=security_config
+ security_config=security_config,
)
assert agent.security_config is not None
@@ -28,9 +26,7 @@ def test_agent_fingerprint_property():
"""Test the fingerprint property on Agent."""
# Create agent without security_config
agent = Agent(
- role="Tester",
- goal="Test fingerprinting",
- backstory="Testing fingerprinting"
+ role="Tester", goal="Test fingerprinting", backstory="Testing fingerprinting"
)
# Fingerprint should be automatically generated
@@ -45,21 +41,14 @@ def test_crew_with_security_config():
security_config = SecurityConfig()
agent1 = Agent(
- role="Tester1",
- goal="Test fingerprinting",
- backstory="Testing fingerprinting"
+ role="Tester1", goal="Test fingerprinting", backstory="Testing fingerprinting"
)
agent2 = Agent(
- role="Tester2",
- goal="Test fingerprinting",
- backstory="Testing fingerprinting"
+ role="Tester2", goal="Test fingerprinting", backstory="Testing fingerprinting"
)
- crew = Crew(
- agents=[agent1, agent2],
- security_config=security_config
- )
+ crew = Crew(agents=[agent1, agent2], security_config=security_config)
assert crew.security_config is not None
assert crew.security_config == security_config
@@ -71,15 +60,11 @@ def test_crew_fingerprint_property():
"""Test the fingerprint property on Crew."""
# Create crew without security_config
agent1 = Agent(
- role="Tester1",
- goal="Test fingerprinting",
- backstory="Testing fingerprinting"
+ role="Tester1", goal="Test fingerprinting", backstory="Testing fingerprinting"
)
agent2 = Agent(
- role="Tester2",
- goal="Test fingerprinting",
- backstory="Testing fingerprinting"
+ role="Tester2", goal="Test fingerprinting", backstory="Testing fingerprinting"
)
crew = Crew(agents=[agent1, agent2])
@@ -96,16 +81,14 @@ def test_task_with_security_config():
security_config = SecurityConfig()
agent = Agent(
- role="Tester",
- goal="Test fingerprinting",
- backstory="Testing fingerprinting"
+ role="Tester", goal="Test fingerprinting", backstory="Testing fingerprinting"
)
task = Task(
description="Test task",
expected_output="Testing output",
agent=agent,
- security_config=security_config
+ security_config=security_config,
)
assert task.security_config is not None
@@ -118,16 +101,10 @@ def test_task_fingerprint_property():
"""Test the fingerprint property on Task."""
# Create task without security_config
agent = Agent(
- role="Tester",
- goal="Test fingerprinting",
- backstory="Testing fingerprinting"
+ role="Tester", goal="Test fingerprinting", backstory="Testing fingerprinting"
)
- task = Task(
- description="Test task",
- expected_output="Testing output",
- agent=agent
- )
+ task = Task(description="Test task", expected_output="Testing output", agent=agent)
# Fingerprint should be automatically generated
assert task.fingerprint is not None
@@ -139,33 +116,20 @@ def test_end_to_end_fingerprinting():
"""Test end-to-end fingerprinting across Agent, Crew, and Task."""
# Create components with auto-generated fingerprints
agent1 = Agent(
- role="Researcher",
- goal="Research information",
- backstory="Expert researcher"
+ role="Researcher", goal="Research information", backstory="Expert researcher"
)
- agent2 = Agent(
- role="Writer",
- goal="Write content",
- backstory="Expert writer"
- )
+ agent2 = Agent(role="Writer", goal="Write content", backstory="Expert writer")
task1 = Task(
- description="Research topic",
- expected_output="Research findings",
- agent=agent1
+ description="Research topic", expected_output="Research findings", agent=agent1
)
task2 = Task(
- description="Write article",
- expected_output="Written article",
- agent=agent2
+ description="Write article", expected_output="Written article", agent=agent2
)
- crew = Crew(
- agents=[agent1, agent2],
- tasks=[task1, task2]
- )
+ crew = Crew(agents=[agent1, agent2], tasks=[task1, task2])
# Verify all fingerprints were automatically generated
assert agent1.fingerprint is not None
@@ -180,18 +144,18 @@ def test_end_to_end_fingerprinting():
agent2.fingerprint.uuid_str,
task1.fingerprint.uuid_str,
task2.fingerprint.uuid_str,
- crew.fingerprint.uuid_str
+ crew.fingerprint.uuid_str,
]
- assert len(fingerprints) == len(set(fingerprints)), "All fingerprints should be unique"
+ assert len(fingerprints) == len(set(fingerprints)), (
+ "All fingerprints should be unique"
+ )
def test_fingerprint_persistence():
"""Test that fingerprints persist and don't change."""
# Create an agent and check its fingerprint
agent = Agent(
- role="Tester",
- goal="Test fingerprinting",
- backstory="Testing fingerprinting"
+ role="Tester", goal="Test fingerprinting", backstory="Testing fingerprinting"
)
# Get initial fingerprint
@@ -201,11 +165,7 @@ def test_fingerprint_persistence():
assert agent.fingerprint.uuid_str == initial_fingerprint
# Create a task with the agent
- task = Task(
- description="Test task",
- expected_output="Testing output",
- agent=agent
- )
+ task = Task(description="Test task", expected_output="Testing output", agent=agent)
# Check that task has its own unique fingerprint
assert task.fingerprint is not None
@@ -223,27 +183,25 @@ def test_shared_security_config_fingerprints():
role="Researcher",
goal="Research information",
backstory="Expert researcher",
- security_config=shared_security_config
+ security_config=shared_security_config,
)
agent2 = Agent(
role="Writer",
goal="Write content",
backstory="Expert writer",
- security_config=shared_security_config
+ security_config=shared_security_config,
)
task = Task(
description="Write article",
expected_output="Written article",
agent=agent1,
- security_config=shared_security_config
+ security_config=shared_security_config,
)
crew = Crew(
- agents=[agent1, agent2],
- tasks=[task],
- security_config=shared_security_config
+ agents=[agent1, agent2], tasks=[task], security_config=shared_security_config
)
# Verify all components have the same fingerprint UUID
@@ -256,4 +214,4 @@ def test_shared_security_config_fingerprints():
assert agent1.fingerprint is shared_security_config.fingerprint
assert agent2.fingerprint is shared_security_config.fingerprint
assert task.fingerprint is shared_security_config.fingerprint
- assert crew.fingerprint is shared_security_config.fingerprint
\ No newline at end of file
+ assert crew.fingerprint is shared_security_config.fingerprint
diff --git a/tests/security/test_security_config.py b/lib/crewai/tests/security/test_security_config.py
similarity index 97%
rename from tests/security/test_security_config.py
rename to lib/crewai/tests/security/test_security_config.py
index 39f43218b..70885a6bb 100644
--- a/tests/security/test_security_config.py
+++ b/lib/crewai/tests/security/test_security_config.py
@@ -63,13 +63,11 @@ def test_security_config_from_dict():
fingerprint_dict = {
"uuid_str": "b723c6ff-95de-5e87-860b-467b72282bd8",
"created_at": datetime.now().isoformat(),
- "metadata": {"version": "1.0"}
+ "metadata": {"version": "1.0"},
}
# Create a config dict with just the fingerprint
- config_dict = {
- "fingerprint": fingerprint_dict
- }
+ config_dict = {"fingerprint": fingerprint_dict}
# Create config manually since from_dict has a specific implementation
config = SecurityConfig()
@@ -115,4 +113,4 @@ def test_security_config_json_serialization():
new_config.fingerprint = new_fingerprint
# Check the new config has the same fingerprint metadata
- assert new_config.fingerprint.metadata == {"version": "1.0"}
\ No newline at end of file
+ assert new_config.fingerprint.metadata == {"version": "1.0"}
diff --git a/tests/storage/__init__.py b/lib/crewai/tests/storage/__init__.py
similarity index 100%
rename from tests/storage/__init__.py
rename to lib/crewai/tests/storage/__init__.py
diff --git a/tests/storage/test_mem0_storage.py b/lib/crewai/tests/storage/test_mem0_storage.py
similarity index 99%
rename from tests/storage/test_mem0_storage.py
rename to lib/crewai/tests/storage/test_mem0_storage.py
index 11cfddb3a..f219f0b45 100644
--- a/tests/storage/test_mem0_storage.py
+++ b/lib/crewai/tests/storage/test_mem0_storage.py
@@ -1,9 +1,8 @@
from unittest.mock import MagicMock, patch
import pytest
-from mem0 import Memory, MemoryClient
-
from crewai.memory.storage.mem0_storage import Mem0Storage
+from mem0 import Memory, MemoryClient
# Define the class (if not already defined)
diff --git a/tests/tracing/__init__.py b/lib/crewai/tests/telemetry/__init__.py
similarity index 100%
rename from tests/tracing/__init__.py
rename to lib/crewai/tests/telemetry/__init__.py
diff --git a/tests/telemetry/test_telemetry.py b/lib/crewai/tests/telemetry/test_telemetry.py
similarity index 96%
rename from tests/telemetry/test_telemetry.py
rename to lib/crewai/tests/telemetry/test_telemetry.py
index f7c19008a..2429a4ade 100644
--- a/tests/telemetry/test_telemetry.py
+++ b/lib/crewai/tests/telemetry/test_telemetry.py
@@ -3,10 +3,8 @@ import threading
from unittest.mock import patch
import pytest
-
from crewai import Agent, Crew, Task
from crewai.telemetry import Telemetry
-
from opentelemetry import trace
@@ -95,9 +93,9 @@ def test_telemetry_singleton_pattern():
assert telemetry1 is telemetry2
- setattr(telemetry1, "test_attribute", "test_value")
+ telemetry1.test_attribute = "test_value"
assert hasattr(telemetry2, "test_attribute")
- assert getattr(telemetry2, "test_attribute") == "test_value"
+ assert telemetry2.test_attribute == "test_value"
import threading
diff --git a/tests/telemetry/test_telemetry_disable.py b/lib/crewai/tests/telemetry/test_telemetry_disable.py
similarity index 98%
rename from tests/telemetry/test_telemetry_disable.py
rename to lib/crewai/tests/telemetry/test_telemetry_disable.py
index 2168bc8c2..5e4e9d3c1 100644
--- a/tests/telemetry/test_telemetry_disable.py
+++ b/lib/crewai/tests/telemetry/test_telemetry_disable.py
@@ -1,8 +1,7 @@
import os
-from unittest.mock import patch, MagicMock
+from unittest.mock import MagicMock, patch
import pytest
-
from crewai.telemetry import Telemetry
diff --git a/tests/test_context.py b/lib/crewai/tests/test_context.py
similarity index 99%
rename from tests/test_context.py
rename to lib/crewai/tests/test_context.py
index ea4ae3f98..a1255a162 100644
--- a/tests/test_context.py
+++ b/lib/crewai/tests/test_context.py
@@ -1,14 +1,14 @@
# ruff: noqa: S105
import os
-import pytest
from unittest.mock import patch
+import pytest
from crewai.context import (
- set_platform_integration_token,
+ _platform_integration_token,
get_platform_integration_token,
platform_context,
- _platform_integration_token,
+ set_platform_integration_token,
)
@@ -187,7 +187,7 @@ class TestPlatformIntegrationToken:
assert _platform_integration_token.get() is None
assert get_platform_integration_token() == ""
- @patch('crewai.context.os.getenv')
+ @patch("crewai.context.os.getenv")
def test_env_var_access_error_handling(self, mock_getenv):
mock_getenv.side_effect = OSError("Environment access error")
@@ -203,7 +203,6 @@ class TestPlatformIntegrationToken:
set_platform_integration_token(test_token)
assert get_platform_integration_token() == test_token
-
def test_context_manager_return_value(self):
"""Test that platform_context can be used in with statement with return value."""
test_token = "return-value-token"
diff --git a/tests/test_crew.py b/lib/crewai/tests/test_crew.py
similarity index 99%
rename from tests/test_crew.py
rename to lib/crewai/tests/test_crew.py
index 0a9b94695..1a4c2eeee 100644
--- a/tests/test_crew.py
+++ b/lib/crewai/tests/test_crew.py
@@ -9,7 +9,6 @@ from unittest.mock import ANY, MagicMock, patch
import pydantic_core
import pytest
-
from crewai.agent import Agent
from crewai.agents import CacheHandler
from crewai.crew import Crew
@@ -569,9 +568,8 @@ def test_crew_with_delegating_agents(ceo, writer):
@pytest.mark.vcr(filter_headers=["authorization"])
def test_crew_with_delegating_agents_should_not_override_task_tools(ceo, writer):
- from pydantic import BaseModel, Field
-
from crewai.tools import BaseTool
+ from pydantic import BaseModel, Field
class TestToolInput(BaseModel):
"""Input schema for TestTool."""
@@ -629,9 +627,8 @@ def test_crew_with_delegating_agents_should_not_override_task_tools(ceo, writer)
@pytest.mark.vcr(filter_headers=["authorization"])
def test_crew_with_delegating_agents_should_not_override_agent_tools(ceo, writer):
- from pydantic import BaseModel, Field
-
from crewai.tools import BaseTool
+ from pydantic import BaseModel, Field
class TestToolInput(BaseModel):
"""Input schema for TestTool."""
@@ -691,9 +688,8 @@ def test_crew_with_delegating_agents_should_not_override_agent_tools(ceo, writer
@pytest.mark.vcr(filter_headers=["authorization"])
def test_task_tools_override_agent_tools(researcher):
- from pydantic import BaseModel, Field
-
from crewai.tools import BaseTool
+ from pydantic import BaseModel, Field
class TestToolInput(BaseModel):
"""Input schema for TestTool."""
@@ -748,9 +744,8 @@ def test_task_tools_override_agent_tools_with_allow_delegation(researcher, write
Test that task tools override agent tools while preserving delegation tools when allow_delegation=True
"""
- from pydantic import BaseModel, Field
-
from crewai.tools import BaseTool
+ from pydantic import BaseModel, Field
class TestToolInput(BaseModel):
query: str = Field(..., description="Query to process")
@@ -3818,11 +3813,10 @@ def test_task_tools_preserve_code_execution_tools():
"""
Test that task tools don't override code execution tools when allow_code_execution=True
"""
+ from crewai.tools import BaseTool
from crewai_tools import CodeInterpreterTool
from pydantic import BaseModel, Field
- from crewai.tools import BaseTool
-
class TestToolInput(BaseModel):
"""Input schema for TestTool."""
diff --git a/tests/test_crew_thread_safety.py b/lib/crewai/tests/test_crew_thread_safety.py
similarity index 87%
rename from tests/test_crew_thread_safety.py
rename to lib/crewai/tests/test_crew_thread_safety.py
index 145a0405c..d7d612f2a 100644
--- a/tests/test_crew_thread_safety.py
+++ b/lib/crewai/tests/test_crew_thread_safety.py
@@ -1,11 +1,10 @@
import asyncio
import threading
from concurrent.futures import ThreadPoolExecutor
-from typing import Dict, Any, Callable
+from typing import Any, Callable, Dict
from unittest.mock import patch
import pytest
-
from crewai import Agent, Crew, Task
from crewai.utilities.crew.crew_context import get_crew_context
@@ -105,28 +104,28 @@ class TestCrewThreadSafety:
before_ctx = next(
ctx for ctx in result["contexts"] if ctx["stage"] == "before_kickoff"
)
- assert (
- before_ctx["crew_id"] is None
- ), f"Context should be None before kickoff for {result['crew_id']}"
+ assert before_ctx["crew_id"] is None, (
+ f"Context should be None before kickoff for {result['crew_id']}"
+ )
task_ctx = next(
ctx for ctx in result["contexts"] if ctx["stage"] == "task_callback"
)
- assert (
- task_ctx["crew_id"] == crew_uuid
- ), f"Context mismatch during task for {result['crew_id']}"
+ assert task_ctx["crew_id"] == crew_uuid, (
+ f"Context mismatch during task for {result['crew_id']}"
+ )
after_ctx = next(
ctx for ctx in result["contexts"] if ctx["stage"] == "after_kickoff"
)
- assert (
- after_ctx["crew_id"] is None
- ), f"Context should be None after kickoff for {result['crew_id']}"
+ assert after_ctx["crew_id"] is None, (
+ f"Context should be None after kickoff for {result['crew_id']}"
+ )
thread_name = before_ctx["thread"]
- assert (
- "ThreadPoolExecutor" in thread_name
- ), f"Should run in thread pool for {result['crew_id']}"
+ assert "ThreadPoolExecutor" in thread_name, (
+ f"Should run in thread pool for {result['crew_id']}"
+ )
@pytest.mark.asyncio
@patch("crewai.Agent.execute_task")
@@ -162,12 +161,12 @@ class TestCrewThreadSafety:
crew_uuid = result["crew_uuid"]
task_ctx = result["task_context"]["context"]
- assert (
- task_ctx is not None
- ), f"Context should exist during task for {result['crew_id']}"
- assert (
- task_ctx["crew_id"] == crew_uuid
- ), f"Context mismatch for {result['crew_id']}"
+ assert task_ctx is not None, (
+ f"Context should exist during task for {result['crew_id']}"
+ )
+ assert task_ctx["crew_id"] == crew_uuid, (
+ f"Context mismatch for {result['crew_id']}"
+ )
@patch("crewai.Agent.execute_task")
def test_concurrent_kickoff_for_each(self, mock_execute_task, crew_factory):
@@ -193,9 +192,9 @@ class TestCrewThreadSafety:
assert len(contexts_captured) == len(inputs)
context_ids = [ctx["context_id"] for ctx in contexts_captured]
- assert len(set(context_ids)) == len(
- inputs
- ), "Each execution should have unique context"
+ assert len(set(context_ids)) == len(inputs), (
+ "Each execution should have unique context"
+ )
@patch("crewai.Agent.execute_task")
def test_no_context_leakage_between_crews(self, mock_execute_task, crew_factory):
diff --git a/tests/test_custom_llm.py b/lib/crewai/tests/test_custom_llm.py
similarity index 89%
rename from tests/test_custom_llm.py
rename to lib/crewai/tests/test_custom_llm.py
index 85a4b2e64..441ee0e54 100644
--- a/tests/test_custom_llm.py
+++ b/lib/crewai/tests/test_custom_llm.py
@@ -1,7 +1,6 @@
from typing import Any, Dict, List, Optional, Union
import pytest
-
from crewai import Agent, Crew, Process, Task
from crewai.llms.base_llm import BaseLLM
from crewai.utilities.llm_utils import create_llm
@@ -282,35 +281,32 @@ class TimeoutHandlingLLM(BaseLLM):
)
# Otherwise, continue to the next attempt (simulating backoff)
continue
- else:
- # Success on first attempt
- return "First attempt response"
- else:
- # This is a retry attempt (attempt > 0)
- # Always record retry attempts
- self.calls.append(
- {
- "retry_attempt": attempt,
- "messages": messages,
- "tools": tools,
- "callbacks": callbacks,
- "available_functions": available_functions,
- }
- )
+ # Success on first attempt
+ return "First attempt response"
+ # This is a retry attempt (attempt > 0)
+ # Always record retry attempts
+ self.calls.append(
+ {
+ "retry_attempt": attempt,
+ "messages": messages,
+ "tools": tools,
+ "callbacks": callbacks,
+ "available_functions": available_functions,
+ }
+ )
- # Simulate a failure if fail_count > 0
- if self.fail_count > 0:
- self.fail_count -= 1
- # If we've used all retries, raise an error
- if attempt == self.max_retries - 1:
- raise TimeoutError(
- f"LLM request failed after {self.max_retries} attempts"
- )
- # Otherwise, continue to the next attempt (simulating backoff)
- continue
- else:
- # Success on retry
- return "Response after retry"
+ # Simulate a failure if fail_count > 0
+ if self.fail_count > 0:
+ self.fail_count -= 1
+ # If we've used all retries, raise an error
+ if attempt == self.max_retries - 1:
+ raise TimeoutError(
+ f"LLM request failed after {self.max_retries} attempts"
+ )
+ # Otherwise, continue to the next attempt (simulating backoff)
+ continue
+ # Success on retry
+ return "Response after retry"
def supports_function_calling(self) -> bool:
"""Return True to indicate that function calling is supported.
diff --git a/tests/test_flow.py b/lib/crewai/tests/test_flow.py
similarity index 99%
rename from tests/test_flow.py
rename to lib/crewai/tests/test_flow.py
index 504cf8e6e..f95a1fce1 100644
--- a/tests/test_flow.py
+++ b/lib/crewai/tests/test_flow.py
@@ -4,17 +4,16 @@ import asyncio
from datetime import datetime
import pytest
-from pydantic import BaseModel
-
-from crewai.flow.flow import Flow, and_, listen, or_, router, start
from crewai.events.event_bus import crewai_event_bus
from crewai.events.types.flow_events import (
FlowFinishedEvent,
- FlowStartedEvent,
FlowPlotEvent,
+ FlowStartedEvent,
MethodExecutionFinishedEvent,
MethodExecutionStartedEvent,
)
+from crewai.flow.flow import Flow, and_, listen, or_, router, start
+from pydantic import BaseModel
def test_simple_sequential_flow():
@@ -679,11 +678,11 @@ def test_structured_flow_event_emission():
assert isinstance(received_events[3], MethodExecutionStartedEvent)
assert received_events[3].method_name == "send_welcome_message"
assert received_events[3].params == {}
- assert getattr(received_events[3].state, "sent") is False
+ assert received_events[3].state.sent is False
assert isinstance(received_events[4], MethodExecutionFinishedEvent)
assert received_events[4].method_name == "send_welcome_message"
- assert getattr(received_events[4].state, "sent") is True
+ assert received_events[4].state.sent is True
assert received_events[4].result == "Welcome, Anakin!"
assert isinstance(received_events[5], FlowFinishedEvent)
diff --git a/tests/test_flow_default_override.py b/lib/crewai/tests/test_flow_default_override.py
similarity index 100%
rename from tests/test_flow_default_override.py
rename to lib/crewai/tests/test_flow_default_override.py
diff --git a/tests/test_flow_human_input_integration.py b/lib/crewai/tests/test_flow_human_input_integration.py
similarity index 99%
rename from tests/test_flow_human_input_integration.py
rename to lib/crewai/tests/test_flow_human_input_integration.py
index 398840ad3..63f6308ed 100644
--- a/tests/test_flow_human_input_integration.py
+++ b/lib/crewai/tests/test_flow_human_input_integration.py
@@ -1,5 +1,6 @@
+from unittest.mock import MagicMock, patch
+
import pytest
-from unittest.mock import patch, MagicMock
from crewai.events.event_listener import event_listener
diff --git a/tests/test_flow_persistence.py b/lib/crewai/tests/test_flow_persistence.py
similarity index 97%
rename from tests/test_flow_persistence.py
rename to lib/crewai/tests/test_flow_persistence.py
index 667a1f058..53e059b52 100644
--- a/tests/test_flow_persistence.py
+++ b/lib/crewai/tests/test_flow_persistence.py
@@ -3,11 +3,10 @@
import os
from typing import Dict, List
-from pydantic import BaseModel
-
from crewai.flow.flow import Flow, FlowState, listen, start
from crewai.flow.persistence import persist
from crewai.flow.persistence.sqlite import SQLiteFlowPersistence
+from pydantic import BaseModel
class TestState(FlowState):
@@ -209,7 +208,6 @@ def test_persist_decorator_verbose_logging(tmp_path, caplog):
assert "Saving flow state" in caplog.text
-
def test_persistence_with_base_model(tmp_path):
db_path = os.path.join(tmp_path, "test_flows.db")
persistence = SQLiteFlowPersistence(db_path)
@@ -229,14 +227,16 @@ def test_persistence_with_base_model(tmp_path):
@start()
def init_step(self):
- self.state.latest_message = Message(role="user", type="text", content="Hello, World!")
+ self.state.latest_message = Message(
+ role="user", type="text", content="Hello, World!"
+ )
self.state.history.append(self.state.latest_message)
flow = BaseModelFlow(persistence=persistence)
flow.kickoff()
latest_message = flow.state.latest_message
- message, = flow.state.history
+ (message,) = flow.state.history
assert latest_message is not None
assert latest_message.role == "user"
diff --git a/tests/test_flow_resumability_regression.py b/lib/crewai/tests/test_flow_resumability_regression.py
similarity index 99%
rename from tests/test_flow_resumability_regression.py
rename to lib/crewai/tests/test_flow_resumability_regression.py
index 87f67173d..588cee8e7 100644
--- a/tests/test_flow_resumability_regression.py
+++ b/lib/crewai/tests/test_flow_resumability_regression.py
@@ -6,6 +6,7 @@ These tests ensure that:
"""
from typing import Dict
+
from crewai.flow.flow import Flow, listen, router, start
from crewai.flow.persistence.sqlite import SQLiteFlowPersistence
diff --git a/tests/test_hallucination_guardrail.py b/lib/crewai/tests/test_hallucination_guardrail.py
similarity index 99%
rename from tests/test_hallucination_guardrail.py
rename to lib/crewai/tests/test_hallucination_guardrail.py
index af08a3924..659931822 100644
--- a/tests/test_hallucination_guardrail.py
+++ b/lib/crewai/tests/test_hallucination_guardrail.py
@@ -1,7 +1,6 @@
from unittest.mock import Mock
import pytest
-
from crewai.llm import LLM
from crewai.tasks.hallucination_guardrail import HallucinationGuardrail
from crewai.tasks.task_output import TaskOutput
diff --git a/tests/test_imports.py b/lib/crewai/tests/test_imports.py
similarity index 100%
rename from tests/test_imports.py
rename to lib/crewai/tests/test_imports.py
diff --git a/tests/test_llm.py b/lib/crewai/tests/test_llm.py
similarity index 99%
rename from tests/test_llm.py
rename to lib/crewai/tests/test_llm.py
index 065687565..fab3f7bf7 100644
--- a/tests/test_llm.py
+++ b/lib/crewai/tests/test_llm.py
@@ -4,8 +4,6 @@ from time import sleep
from unittest.mock import MagicMock, patch
import pytest
-from pydantic import BaseModel
-
from crewai.agents.agent_builder.utilities.base_token_process import TokenProcess
from crewai.events.event_types import (
LLMCallCompletedEvent,
@@ -16,6 +14,7 @@ from crewai.events.event_types import (
)
from crewai.llm import CONTEXT_WINDOW_USAGE_RATIO, LLM
from crewai.utilities.token_counter_callback import TokenCalcHandler
+from pydantic import BaseModel
# TODO: This test fails without print statement, which makes me think that something is happening asynchronously that we need to eventually fix and dive deeper into at a later date
@@ -376,11 +375,10 @@ def get_weather_tool_schema():
def test_context_window_exceeded_error_handling():
"""Test that litellm.ContextWindowExceededError is converted to LLMContextLengthExceededError."""
- from litellm.exceptions import ContextWindowExceededError
-
from crewai.utilities.exceptions.context_window_exceeding_exception import (
LLMContextLengthExceededError,
)
+ from litellm.exceptions import ContextWindowExceededError
llm = LLM(model="gpt-4")
diff --git a/tests/test_markdown_task.py b/lib/crewai/tests/test_markdown_task.py
similarity index 100%
rename from tests/test_markdown_task.py
rename to lib/crewai/tests/test_markdown_task.py
diff --git a/tests/test_multimodal_validation.py b/lib/crewai/tests/test_multimodal_validation.py
similarity index 94%
rename from tests/test_multimodal_validation.py
rename to lib/crewai/tests/test_multimodal_validation.py
index 3b0817bf2..e71e148c0 100644
--- a/tests/test_multimodal_validation.py
+++ b/lib/crewai/tests/test_multimodal_validation.py
@@ -1,7 +1,6 @@
import os
import pytest
-
from crewai import LLM, Agent, Crew, Task
@@ -18,7 +17,7 @@ def test_multimodal_agent_with_image_url():
llm = LLM(
model="openai/gpt-4o", # model with vision capabilities
api_key=OPENAI_API_KEY,
- temperature=0.7
+ temperature=0.7,
)
expert_analyst = Agent(
@@ -28,7 +27,7 @@ def test_multimodal_agent_with_image_url():
llm=llm,
verbose=True,
allow_delegation=False,
- multimodal=True
+ multimodal=True,
)
inspection_task = Task(
@@ -40,7 +39,7 @@ def test_multimodal_agent_with_image_url():
Provide a detailed report highlighting any issues found.
""",
expected_output="A detailed report highlighting any issues found",
- agent=expert_analyst
+ agent=expert_analyst,
)
crew = Crew(agents=[expert_analyst], tasks=[inspection_task])
diff --git a/tests/test_project.py b/lib/crewai/tests/test_project.py
similarity index 99%
rename from tests/test_project.py
rename to lib/crewai/tests/test_project.py
index c6708d92f..5106aae6e 100644
--- a/tests/test_project.py
+++ b/lib/crewai/tests/test_project.py
@@ -2,7 +2,6 @@ from typing import Any, ClassVar
from unittest.mock import Mock, patch
import pytest
-
from crewai.agent import Agent
from crewai.agents.agent_builder.base_agent import BaseAgent
from crewai.crew import Crew
diff --git a/tests/test_task.py b/lib/crewai/tests/test_task.py
similarity index 100%
rename from tests/test_task.py
rename to lib/crewai/tests/test_task.py
diff --git a/tests/test_task_guardrails.py b/lib/crewai/tests/test_task_guardrails.py
similarity index 99%
rename from tests/test_task_guardrails.py
rename to lib/crewai/tests/test_task_guardrails.py
index b4f9f71e2..67c59f26d 100644
--- a/tests/test_task_guardrails.py
+++ b/lib/crewai/tests/test_task_guardrails.py
@@ -1,7 +1,6 @@
from unittest.mock import Mock, patch
import pytest
-
from crewai import Agent, Task
from crewai.events.event_bus import crewai_event_bus
from crewai.events.event_types import (
diff --git a/tests/tools/__init__.py b/lib/crewai/tests/tools/__init__.py
similarity index 100%
rename from tests/tools/__init__.py
rename to lib/crewai/tests/tools/__init__.py
diff --git a/tests/utilities/crew/__init__.py b/lib/crewai/tests/tools/agent_tools/__init__.py
similarity index 100%
rename from tests/utilities/crew/__init__.py
rename to lib/crewai/tests/tools/agent_tools/__init__.py
diff --git a/tests/tools/agent_tools/cassettes/test_ask_question.yaml b/lib/crewai/tests/tools/agent_tools/cassettes/test_ask_question.yaml
similarity index 100%
rename from tests/tools/agent_tools/cassettes/test_ask_question.yaml
rename to lib/crewai/tests/tools/agent_tools/cassettes/test_ask_question.yaml
diff --git a/tests/tools/agent_tools/cassettes/test_ask_question_with_coworker_as_array.yaml b/lib/crewai/tests/tools/agent_tools/cassettes/test_ask_question_with_coworker_as_array.yaml
similarity index 100%
rename from tests/tools/agent_tools/cassettes/test_ask_question_with_coworker_as_array.yaml
rename to lib/crewai/tests/tools/agent_tools/cassettes/test_ask_question_with_coworker_as_array.yaml
diff --git a/tests/tools/agent_tools/cassettes/test_ask_question_with_wrong_co_worker_variable.yaml b/lib/crewai/tests/tools/agent_tools/cassettes/test_ask_question_with_wrong_co_worker_variable.yaml
similarity index 100%
rename from tests/tools/agent_tools/cassettes/test_ask_question_with_wrong_co_worker_variable.yaml
rename to lib/crewai/tests/tools/agent_tools/cassettes/test_ask_question_with_wrong_co_worker_variable.yaml
diff --git a/tests/tools/agent_tools/cassettes/test_delegate_work.yaml b/lib/crewai/tests/tools/agent_tools/cassettes/test_delegate_work.yaml
similarity index 100%
rename from tests/tools/agent_tools/cassettes/test_delegate_work.yaml
rename to lib/crewai/tests/tools/agent_tools/cassettes/test_delegate_work.yaml
diff --git a/tests/tools/agent_tools/cassettes/test_delegate_work_with_wrong_co_worker_variable.yaml b/lib/crewai/tests/tools/agent_tools/cassettes/test_delegate_work_with_wrong_co_worker_variable.yaml
similarity index 100%
rename from tests/tools/agent_tools/cassettes/test_delegate_work_with_wrong_co_worker_variable.yaml
rename to lib/crewai/tests/tools/agent_tools/cassettes/test_delegate_work_with_wrong_co_worker_variable.yaml
diff --git a/tests/tools/agent_tools/cassettes/test_delegate_work_withwith_coworker_as_array.yaml b/lib/crewai/tests/tools/agent_tools/cassettes/test_delegate_work_withwith_coworker_as_array.yaml
similarity index 100%
rename from tests/tools/agent_tools/cassettes/test_delegate_work_withwith_coworker_as_array.yaml
rename to lib/crewai/tests/tools/agent_tools/cassettes/test_delegate_work_withwith_coworker_as_array.yaml
diff --git a/tests/tools/agent_tools/test_agent_tools.py b/lib/crewai/tests/tools/agent_tools/test_agent_tools.py
similarity index 99%
rename from tests/tools/agent_tools/test_agent_tools.py
rename to lib/crewai/tests/tools/agent_tools/test_agent_tools.py
index 6cb5d26e7..89d2798d6 100644
--- a/tests/tools/agent_tools/test_agent_tools.py
+++ b/lib/crewai/tests/tools/agent_tools/test_agent_tools.py
@@ -1,7 +1,7 @@
"""Test Agent creation and execution basic functionality."""
+import os
import pytest
-
from crewai.agent import Agent
from crewai.tools.agent_tools.agent_tools import AgentTools
@@ -19,7 +19,7 @@ ask_tool = tools[1]
@pytest.fixture(scope="module")
def vcr_config(request) -> dict:
return {
- "cassette_library_dir": "tests/tools/agent_tools/cassettes",
+ "cassette_library_dir": os.path.join(os.path.dirname(__file__), "cassettes"),
}
diff --git a/tests/tools/test_base_tool.py b/lib/crewai/tests/tools/test_base_tool.py
similarity index 99%
rename from tests/tools/test_base_tool.py
rename to lib/crewai/tests/tools/test_base_tool.py
index 0c11e1e09..2aa9ac8bf 100644
--- a/tests/tools/test_base_tool.py
+++ b/lib/crewai/tests/tools/test_base_tool.py
@@ -3,7 +3,6 @@ from typing import Callable
from unittest.mock import patch
import pytest
-
from crewai.agent import Agent
from crewai.crew import Crew
from crewai.task import Task
diff --git a/tests/tools/test_structured_tool.py b/lib/crewai/tests/tools/test_structured_tool.py
similarity index 100%
rename from tests/tools/test_structured_tool.py
rename to lib/crewai/tests/tools/test_structured_tool.py
diff --git a/tests/tools/test_tool_usage.py b/lib/crewai/tests/tools/test_tool_usage.py
similarity index 99%
rename from tests/tools/test_tool_usage.py
rename to lib/crewai/tests/tools/test_tool_usage.py
index 66e2bb616..fe0753187 100644
--- a/tests/tools/test_tool_usage.py
+++ b/lib/crewai/tests/tools/test_tool_usage.py
@@ -5,17 +5,16 @@ import time
from unittest.mock import MagicMock, patch
import pytest
-from pydantic import BaseModel, Field
-
from crewai import Agent, Task
-from crewai.tools import BaseTool
-from crewai.tools.tool_usage import ToolUsage
from crewai.events.event_bus import crewai_event_bus
from crewai.events.types.tool_usage_events import (
ToolSelectionErrorEvent,
ToolUsageFinishedEvent,
ToolValidateInputErrorEvent,
)
+from crewai.tools import BaseTool
+from crewai.tools.tool_usage import ToolUsage
+from pydantic import BaseModel, Field
class RandomNumberToolInput(BaseModel):
diff --git a/tests/tools/test_tool_usage_limit.py b/lib/crewai/tests/tools/test_tool_usage_limit.py
similarity index 100%
rename from tests/tools/test_tool_usage_limit.py
rename to lib/crewai/tests/tools/test_tool_usage_limit.py
diff --git a/lib/crewai/tests/tracing/__init__.py b/lib/crewai/tests/tracing/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/tests/tracing/test_tracing.py b/lib/crewai/tests/tracing/test_tracing.py
similarity index 99%
rename from tests/tracing/test_tracing.py
rename to lib/crewai/tests/tracing/test_tracing.py
index 629fb7a87..8cb307a74 100644
--- a/tests/tracing/test_tracing.py
+++ b/lib/crewai/tests/tracing/test_tracing.py
@@ -2,7 +2,6 @@ import os
from unittest.mock import MagicMock, Mock, patch
import pytest
-
from crewai import Agent, Crew, Task
from crewai.events.listeners.tracing.first_time_trace_handler import (
FirstTimeTraceHandler,
diff --git a/tests/utilities/__init__.py b/lib/crewai/tests/utilities/__init__.py
similarity index 100%
rename from tests/utilities/__init__.py
rename to lib/crewai/tests/utilities/__init__.py
diff --git a/tests/utilities/cassettes/test_agent_emits_execution_started_and_completed_events.yaml b/lib/crewai/tests/utilities/cassettes/test_agent_emits_execution_started_and_completed_events.yaml
similarity index 100%
rename from tests/utilities/cassettes/test_agent_emits_execution_started_and_completed_events.yaml
rename to lib/crewai/tests/utilities/cassettes/test_agent_emits_execution_started_and_completed_events.yaml
diff --git a/tests/utilities/cassettes/test_convert_with_instructions.yaml b/lib/crewai/tests/utilities/cassettes/test_convert_with_instructions.yaml
similarity index 100%
rename from tests/utilities/cassettes/test_convert_with_instructions.yaml
rename to lib/crewai/tests/utilities/cassettes/test_convert_with_instructions.yaml
diff --git a/tests/utilities/cassettes/test_converter_with_llama3_1_model.yaml b/lib/crewai/tests/utilities/cassettes/test_converter_with_llama3_1_model.yaml
similarity index 100%
rename from tests/utilities/cassettes/test_converter_with_llama3_1_model.yaml
rename to lib/crewai/tests/utilities/cassettes/test_converter_with_llama3_1_model.yaml
diff --git a/tests/utilities/cassettes/test_converter_with_llama3_2_model.yaml b/lib/crewai/tests/utilities/cassettes/test_converter_with_llama3_2_model.yaml
similarity index 100%
rename from tests/utilities/cassettes/test_converter_with_llama3_2_model.yaml
rename to lib/crewai/tests/utilities/cassettes/test_converter_with_llama3_2_model.yaml
diff --git a/tests/utilities/cassettes/test_converter_with_nested_model.yaml b/lib/crewai/tests/utilities/cassettes/test_converter_with_nested_model.yaml
similarity index 100%
rename from tests/utilities/cassettes/test_converter_with_nested_model.yaml
rename to lib/crewai/tests/utilities/cassettes/test_converter_with_nested_model.yaml
diff --git a/tests/utilities/cassettes/test_crew_emits_end_kickoff_event.yaml b/lib/crewai/tests/utilities/cassettes/test_crew_emits_end_kickoff_event.yaml
similarity index 100%
rename from tests/utilities/cassettes/test_crew_emits_end_kickoff_event.yaml
rename to lib/crewai/tests/utilities/cassettes/test_crew_emits_end_kickoff_event.yaml
diff --git a/tests/utilities/cassettes/test_crew_emits_end_task_event.yaml b/lib/crewai/tests/utilities/cassettes/test_crew_emits_end_task_event.yaml
similarity index 100%
rename from tests/utilities/cassettes/test_crew_emits_end_task_event.yaml
rename to lib/crewai/tests/utilities/cassettes/test_crew_emits_end_task_event.yaml
diff --git a/tests/utilities/cassettes/test_crew_emits_kickoff_events.yaml b/lib/crewai/tests/utilities/cassettes/test_crew_emits_kickoff_events.yaml
similarity index 100%
rename from tests/utilities/cassettes/test_crew_emits_kickoff_events.yaml
rename to lib/crewai/tests/utilities/cassettes/test_crew_emits_kickoff_events.yaml
diff --git a/tests/utilities/cassettes/test_crew_emits_start_kickoff_event.yaml b/lib/crewai/tests/utilities/cassettes/test_crew_emits_start_kickoff_event.yaml
similarity index 100%
rename from tests/utilities/cassettes/test_crew_emits_start_kickoff_event.yaml
rename to lib/crewai/tests/utilities/cassettes/test_crew_emits_start_kickoff_event.yaml
diff --git a/tests/utilities/cassettes/test_crew_emits_start_task_event.yaml b/lib/crewai/tests/utilities/cassettes/test_crew_emits_start_task_event.yaml
similarity index 100%
rename from tests/utilities/cassettes/test_crew_emits_start_task_event.yaml
rename to lib/crewai/tests/utilities/cassettes/test_crew_emits_start_task_event.yaml
diff --git a/tests/utilities/cassettes/test_crew_emits_task_failed_event.yaml b/lib/crewai/tests/utilities/cassettes/test_crew_emits_task_failed_event.yaml
similarity index 100%
rename from tests/utilities/cassettes/test_crew_emits_task_failed_event.yaml
rename to lib/crewai/tests/utilities/cassettes/test_crew_emits_task_failed_event.yaml
diff --git a/tests/utilities/cassettes/test_crew_emits_test_kickoff_type_event.yaml b/lib/crewai/tests/utilities/cassettes/test_crew_emits_test_kickoff_type_event.yaml
similarity index 100%
rename from tests/utilities/cassettes/test_crew_emits_test_kickoff_type_event.yaml
rename to lib/crewai/tests/utilities/cassettes/test_crew_emits_test_kickoff_type_event.yaml
diff --git a/tests/utilities/cassettes/test_llm_emits_call_failed_event.yaml b/lib/crewai/tests/utilities/cassettes/test_llm_emits_call_failed_event.yaml
similarity index 100%
rename from tests/utilities/cassettes/test_llm_emits_call_failed_event.yaml
rename to lib/crewai/tests/utilities/cassettes/test_llm_emits_call_failed_event.yaml
diff --git a/tests/utilities/cassettes/test_llm_emits_call_started_event.yaml b/lib/crewai/tests/utilities/cassettes/test_llm_emits_call_started_event.yaml
similarity index 100%
rename from tests/utilities/cassettes/test_llm_emits_call_started_event.yaml
rename to lib/crewai/tests/utilities/cassettes/test_llm_emits_call_started_event.yaml
diff --git a/tests/utilities/cassettes/test_llm_emits_event_with_lite_agent.yaml b/lib/crewai/tests/utilities/cassettes/test_llm_emits_event_with_lite_agent.yaml
similarity index 100%
rename from tests/utilities/cassettes/test_llm_emits_event_with_lite_agent.yaml
rename to lib/crewai/tests/utilities/cassettes/test_llm_emits_event_with_lite_agent.yaml
diff --git a/tests/utilities/cassettes/test_llm_emits_event_with_task_and_agent_info.yaml b/lib/crewai/tests/utilities/cassettes/test_llm_emits_event_with_task_and_agent_info.yaml
similarity index 100%
rename from tests/utilities/cassettes/test_llm_emits_event_with_task_and_agent_info.yaml
rename to lib/crewai/tests/utilities/cassettes/test_llm_emits_event_with_task_and_agent_info.yaml
diff --git a/tests/utilities/cassettes/test_llm_emits_stream_chunk_events.yaml b/lib/crewai/tests/utilities/cassettes/test_llm_emits_stream_chunk_events.yaml
similarity index 100%
rename from tests/utilities/cassettes/test_llm_emits_stream_chunk_events.yaml
rename to lib/crewai/tests/utilities/cassettes/test_llm_emits_stream_chunk_events.yaml
diff --git a/tests/utilities/cassettes/test_llm_no_stream_chunks_when_streaming_disabled.yaml b/lib/crewai/tests/utilities/cassettes/test_llm_no_stream_chunks_when_streaming_disabled.yaml
similarity index 100%
rename from tests/utilities/cassettes/test_llm_no_stream_chunks_when_streaming_disabled.yaml
rename to lib/crewai/tests/utilities/cassettes/test_llm_no_stream_chunks_when_streaming_disabled.yaml
diff --git a/tests/utilities/cassettes/test_multiple_handlers_for_same_event.yaml b/lib/crewai/tests/utilities/cassettes/test_multiple_handlers_for_same_event.yaml
similarity index 100%
rename from tests/utilities/cassettes/test_multiple_handlers_for_same_event.yaml
rename to lib/crewai/tests/utilities/cassettes/test_multiple_handlers_for_same_event.yaml
diff --git a/tests/utilities/cassettes/test_register_handler_adds_new_handler.yaml b/lib/crewai/tests/utilities/cassettes/test_register_handler_adds_new_handler.yaml
similarity index 100%
rename from tests/utilities/cassettes/test_register_handler_adds_new_handler.yaml
rename to lib/crewai/tests/utilities/cassettes/test_register_handler_adds_new_handler.yaml
diff --git a/tests/utilities/cassettes/test_stream_llm_emits_event_with_task_and_agent_info.yaml b/lib/crewai/tests/utilities/cassettes/test_stream_llm_emits_event_with_task_and_agent_info.yaml
similarity index 100%
rename from tests/utilities/cassettes/test_stream_llm_emits_event_with_task_and_agent_info.yaml
rename to lib/crewai/tests/utilities/cassettes/test_stream_llm_emits_event_with_task_and_agent_info.yaml
diff --git a/tests/utilities/cassettes/test_task_emits_failed_event_on_execution_error.yaml b/lib/crewai/tests/utilities/cassettes/test_task_emits_failed_event_on_execution_error.yaml
similarity index 100%
rename from tests/utilities/cassettes/test_task_emits_failed_event_on_execution_error.yaml
rename to lib/crewai/tests/utilities/cassettes/test_task_emits_failed_event_on_execution_error.yaml
diff --git a/tests/utilities/cassettes/test_tools_emits_error_events.yaml b/lib/crewai/tests/utilities/cassettes/test_tools_emits_error_events.yaml
similarity index 100%
rename from tests/utilities/cassettes/test_tools_emits_error_events.yaml
rename to lib/crewai/tests/utilities/cassettes/test_tools_emits_error_events.yaml
diff --git a/tests/utilities/cassettes/test_tools_emits_finished_events.yaml b/lib/crewai/tests/utilities/cassettes/test_tools_emits_finished_events.yaml
similarity index 100%
rename from tests/utilities/cassettes/test_tools_emits_finished_events.yaml
rename to lib/crewai/tests/utilities/cassettes/test_tools_emits_finished_events.yaml
diff --git a/lib/crewai/tests/utilities/crew/__init__.py b/lib/crewai/tests/utilities/crew/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/tests/utilities/crew/test_crew_context.py b/lib/crewai/tests/utilities/crew/test_crew_context.py
similarity index 99%
rename from tests/utilities/crew/test_crew_context.py
rename to lib/crewai/tests/utilities/crew/test_crew_context.py
index 29ce5a356..c16647641 100644
--- a/tests/utilities/crew/test_crew_context.py
+++ b/lib/crewai/tests/utilities/crew/test_crew_context.py
@@ -1,11 +1,10 @@
import uuid
import pytest
-from opentelemetry import baggage
-from opentelemetry.context import attach, detach
-
from crewai.utilities.crew.crew_context import get_crew_context
from crewai.utilities.crew.models import CrewContext
+from opentelemetry import baggage
+from opentelemetry.context import attach, detach
def test_crew_context_creation():
diff --git a/tests/utilities/evaluators/__init__.py b/lib/crewai/tests/utilities/evaluators/__init__.py
similarity index 100%
rename from tests/utilities/evaluators/__init__.py
rename to lib/crewai/tests/utilities/evaluators/__init__.py
diff --git a/tests/utilities/evaluators/test_crew_evaluator_handler.py b/lib/crewai/tests/utilities/evaluators/test_crew_evaluator_handler.py
similarity index 99%
rename from tests/utilities/evaluators/test_crew_evaluator_handler.py
rename to lib/crewai/tests/utilities/evaluators/test_crew_evaluator_handler.py
index 4fbe2b2d4..ededb89d2 100644
--- a/tests/utilities/evaluators/test_crew_evaluator_handler.py
+++ b/lib/crewai/tests/utilities/evaluators/test_crew_evaluator_handler.py
@@ -1,7 +1,6 @@
from unittest import mock
import pytest
-
from crewai.agent import Agent
from crewai.crew import Crew
from crewai.task import Task
diff --git a/tests/utilities/evaluators/test_task_evaluator.py b/lib/crewai/tests/utilities/evaluators/test_task_evaluator.py
similarity index 97%
rename from tests/utilities/evaluators/test_task_evaluator.py
rename to lib/crewai/tests/utilities/evaluators/test_task_evaluator.py
index 70a39c7b1..f933f9571 100644
--- a/tests/utilities/evaluators/test_task_evaluator.py
+++ b/lib/crewai/tests/utilities/evaluators/test_task_evaluator.py
@@ -1,12 +1,11 @@
from unittest import mock
from unittest.mock import MagicMock, patch
-
+from crewai.utilities.converter import ConverterError
from crewai.utilities.evaluators.task_evaluator import (
TaskEvaluator,
TrainingTaskEvaluation,
)
-from crewai.utilities.converter import ConverterError
@patch("crewai.utilities.evaluators.task_evaluator.TrainingConverter")
@@ -66,9 +65,12 @@ def test_evaluate_training_data(converter_mock):
]
)
+
@patch("crewai.utilities.converter.Converter.to_pydantic")
@patch("crewai.utilities.training_converter.TrainingConverter._convert_field_by_field")
-def test_training_converter_fallback_mechanism(convert_field_by_field_mock, to_pydantic_mock):
+def test_training_converter_fallback_mechanism(
+ convert_field_by_field_mock, to_pydantic_mock
+):
training_data = {
"agent_id": {
"data1": {
@@ -89,7 +91,7 @@ def test_training_converter_fallback_mechanism(convert_field_by_field_mock, to_p
expected_result = TrainingTaskEvaluation(
suggestions=["Fallback suggestion"],
quality=6.5,
- final_summary="Fallback summary"
+ final_summary="Fallback summary",
)
convert_field_by_field_mock.return_value = expected_result
diff --git a/tests/utilities/events/__init__.py b/lib/crewai/tests/utilities/events/__init__.py
similarity index 100%
rename from tests/utilities/events/__init__.py
rename to lib/crewai/tests/utilities/events/__init__.py
diff --git a/tests/utilities/events/test_crewai_event_bus.py b/lib/crewai/tests/utilities/events/test_crewai_event_bus.py
similarity index 100%
rename from tests/utilities/events/test_crewai_event_bus.py
rename to lib/crewai/tests/utilities/events/test_crewai_event_bus.py
diff --git a/tests/utilities/prompts.json b/lib/crewai/tests/utilities/prompts.json
similarity index 100%
rename from tests/utilities/prompts.json
rename to lib/crewai/tests/utilities/prompts.json
diff --git a/tests/utilities/test_console_formatter_pause_resume.py b/lib/crewai/tests/utilities/test_console_formatter_pause_resume.py
similarity index 100%
rename from tests/utilities/test_console_formatter_pause_resume.py
rename to lib/crewai/tests/utilities/test_console_formatter_pause_resume.py
diff --git a/tests/utilities/test_converter.py b/lib/crewai/tests/utilities/test_converter.py
similarity index 99%
rename from tests/utilities/test_converter.py
rename to lib/crewai/tests/utilities/test_converter.py
index 7ebc52bed..40f4fe036 100644
--- a/tests/utilities/test_converter.py
+++ b/lib/crewai/tests/utilities/test_converter.py
@@ -1,10 +1,12 @@
import json
+import os
+
+# Tests for enums
+from enum import Enum
from typing import Dict, List, Optional
from unittest.mock import MagicMock, Mock, patch
import pytest
-from pydantic import BaseModel
-
from crewai.llm import LLM
from crewai.utilities.converter import (
Converter,
@@ -18,14 +20,13 @@ from crewai.utilities.converter import (
validate_model,
)
from crewai.utilities.pydantic_schema_parser import PydanticSchemaParser
-# Tests for enums
-from enum import Enum
+from pydantic import BaseModel
@pytest.fixture(scope="module")
def vcr_config(request) -> dict:
return {
- "cassette_library_dir": "tests/utilities/cassettes",
+ "cassette_library_dir": os.path.join(os.path.dirname(__file__), "cassettes"),
}
diff --git a/tests/utilities/test_events.py b/lib/crewai/tests/utilities/test_events.py
similarity index 99%
rename from tests/utilities/test_events.py
rename to lib/crewai/tests/utilities/test_events.py
index 505504c8e..2c6f78770 100644
--- a/tests/utilities/test_events.py
+++ b/lib/crewai/tests/utilities/test_events.py
@@ -1,3 +1,4 @@
+import os
from datetime import datetime
from unittest.mock import Mock, patch
@@ -53,7 +54,7 @@ from crewai.events.types.tool_usage_events import (
@pytest.fixture(scope="module")
def vcr_config(request) -> dict:
return {
- "cassette_library_dir": "tests/utilities/cassettes",
+ "cassette_library_dir": os.path.join(os.path.dirname(__file__), "cassettes"),
}
diff --git a/tests/utilities/test_file_handler.py b/lib/crewai/tests/utilities/test_file_handler.py
similarity index 99%
rename from tests/utilities/test_file_handler.py
rename to lib/crewai/tests/utilities/test_file_handler.py
index 7d3073a03..1e1cbfba8 100644
--- a/tests/utilities/test_file_handler.py
+++ b/lib/crewai/tests/utilities/test_file_handler.py
@@ -3,7 +3,6 @@ import unittest
import uuid
import pytest
-
from crewai.utilities.file_handler import PickleHandler
diff --git a/tests/utilities/test_i18n.py b/lib/crewai/tests/utilities/test_i18n.py
similarity index 99%
rename from tests/utilities/test_i18n.py
rename to lib/crewai/tests/utilities/test_i18n.py
index 8627b0bec..10c403edf 100644
--- a/tests/utilities/test_i18n.py
+++ b/lib/crewai/tests/utilities/test_i18n.py
@@ -1,5 +1,4 @@
import pytest
-
from crewai.utilities.i18n import I18N
diff --git a/tests/utilities/test_import_utils.py b/lib/crewai/tests/utilities/test_import_utils.py
similarity index 99%
rename from tests/utilities/test_import_utils.py
rename to lib/crewai/tests/utilities/test_import_utils.py
index 29738172c..c156a61bd 100644
--- a/tests/utilities/test_import_utils.py
+++ b/lib/crewai/tests/utilities/test_import_utils.py
@@ -4,7 +4,6 @@ import sys
from unittest.mock import MagicMock, patch
import pytest
-
from crewai.utilities.import_utils import (
OptionalDependencyError,
import_and_validate_definition,
diff --git a/tests/utilities/test_knowledge_planning.py b/lib/crewai/tests/utilities/test_knowledge_planning.py
similarity index 99%
rename from tests/utilities/test_knowledge_planning.py
rename to lib/crewai/tests/utilities/test_knowledge_planning.py
index 9ff29c573..2b3874529 100644
--- a/tests/utilities/test_knowledge_planning.py
+++ b/lib/crewai/tests/utilities/test_knowledge_planning.py
@@ -6,7 +6,6 @@ This module ensures that agent knowledge is properly included during task planni
from unittest.mock import patch
import pytest
-
from crewai.agent import Agent
from crewai.knowledge.source.string_knowledge_source import StringKnowledgeSource
from crewai.task import Task
diff --git a/tests/utilities/test_llm_utils.py b/lib/crewai/tests/utilities/test_llm_utils.py
similarity index 99%
rename from tests/utilities/test_llm_utils.py
rename to lib/crewai/tests/utilities/test_llm_utils.py
index 5aa4f1a1a..e1a37aa3d 100644
--- a/tests/utilities/test_llm_utils.py
+++ b/lib/crewai/tests/utilities/test_llm_utils.py
@@ -2,10 +2,9 @@ import os
from unittest.mock import patch
import pytest
-from litellm.exceptions import BadRequestError
-
from crewai.llm import LLM
from crewai.utilities.llm_utils import create_llm
+from litellm.exceptions import BadRequestError
def test_create_llm_with_llm_instance():
diff --git a/tests/utilities/test_planning_handler.py b/lib/crewai/tests/utilities/test_planning_handler.py
similarity index 97%
rename from tests/utilities/test_planning_handler.py
rename to lib/crewai/tests/utilities/test_planning_handler.py
index e1c27c341..6e75e3626 100644
--- a/tests/utilities/test_planning_handler.py
+++ b/lib/crewai/tests/utilities/test_planning_handler.py
@@ -1,9 +1,6 @@
-from typing import Optional
-from unittest.mock import MagicMock, patch
+from unittest.mock import patch
import pytest
-from pydantic import BaseModel
-
from crewai.agent import Agent
from crewai.knowledge.source.string_knowledge_source import StringKnowledgeSource
from crewai.task import Task
@@ -100,7 +97,7 @@ class InternalCrewPlanner:
# Knowledge field should not be present when empty
assert '"agent_knowledge"' not in tasks_summary
- @patch('crewai.knowledge.storage.knowledge_storage.chromadb')
+ @patch("crewai.knowledge.storage.knowledge_storage.chromadb")
def test_create_tasks_summary_with_knowledge_and_tools(self, mock_chroma):
"""Test task summary generation with both knowledge and tools present."""
# Mock ChromaDB collection
@@ -146,8 +143,8 @@ class InternalCrewPlanner:
tools=[tool1, tool2],
knowledge_sources=[
StringKnowledgeSource(content="Test knowledge content")
- ]
- )
+ ],
+ ),
)
# Create planner with the new task
diff --git a/tests/utilities/test_pydantic_schema_parser.py b/lib/crewai/tests/utilities/test_pydantic_schema_parser.py
similarity index 100%
rename from tests/utilities/test_pydantic_schema_parser.py
rename to lib/crewai/tests/utilities/test_pydantic_schema_parser.py
diff --git a/tests/utilities/test_serialization.py b/lib/crewai/tests/utilities/test_serialization.py
similarity index 99%
rename from tests/utilities/test_serialization.py
rename to lib/crewai/tests/utilities/test_serialization.py
index b1e042639..e786554cb 100644
--- a/tests/utilities/test_serialization.py
+++ b/lib/crewai/tests/utilities/test_serialization.py
@@ -1,11 +1,9 @@
from datetime import date, datetime
from typing import List
-from unittest.mock import Mock
import pytest
-from pydantic import BaseModel
-
from crewai.utilities.serialization import to_serializable, to_string
+from pydantic import BaseModel
class Address(BaseModel):
diff --git a/tests/utilities/test_string_utils.py b/lib/crewai/tests/utilities/test_string_utils.py
similarity index 99%
rename from tests/utilities/test_string_utils.py
rename to lib/crewai/tests/utilities/test_string_utils.py
index 441aae8c0..074beda77 100644
--- a/tests/utilities/test_string_utils.py
+++ b/lib/crewai/tests/utilities/test_string_utils.py
@@ -1,7 +1,6 @@
from typing import Any, Dict, List, Union
import pytest
-
from crewai.utilities.string_utils import interpolate_only
diff --git a/tests/utilities/test_training_converter.py b/lib/crewai/tests/utilities/test_training_converter.py
similarity index 92%
rename from tests/utilities/test_training_converter.py
rename to lib/crewai/tests/utilities/test_training_converter.py
index 7eb21ae81..65c73ac38 100644
--- a/tests/utilities/test_training_converter.py
+++ b/lib/crewai/tests/utilities/test_training_converter.py
@@ -1,10 +1,9 @@
-from unittest.mock import MagicMock, patch
-
-from pydantic import BaseModel, Field
from typing import List
+from unittest.mock import MagicMock, patch
from crewai.utilities.converter import ConverterError
from crewai.utilities.training_converter import TrainingConverter
+from pydantic import BaseModel, Field
class TestModel(BaseModel):
@@ -14,7 +13,6 @@ class TestModel(BaseModel):
class TestTrainingConverter:
-
def setup_method(self):
self.llm_mock = MagicMock()
self.test_text = "Sample text for evaluation"
@@ -23,26 +21,28 @@ class TestTrainingConverter:
llm=self.llm_mock,
text=self.test_text,
model=TestModel,
- instructions=self.test_instructions
+ instructions=self.test_instructions,
)
@patch("crewai.utilities.converter.Converter.to_pydantic")
def test_fallback_to_field_by_field(self, parent_to_pydantic_mock):
- parent_to_pydantic_mock.side_effect = ConverterError("Failed to convert directly")
+ parent_to_pydantic_mock.side_effect = ConverterError(
+ "Failed to convert directly"
+ )
llm_responses = {
"string_field": "test string value",
"list_field": "- item1\n- item2\n- item3",
- "number_field": "8.5"
+ "number_field": "8.5",
}
def llm_side_effect(messages):
prompt = messages[1]["content"]
if "string_field" in prompt:
return llm_responses["string_field"]
- elif "list_field" in prompt:
+ if "list_field" in prompt:
return llm_responses["list_field"]
- elif "number_field" in prompt:
+ if "number_field" in prompt:
return llm_responses["number_field"]
return "unknown field"
diff --git a/tests/utilities/test_training_handler.py b/lib/crewai/tests/utilities/test_training_handler.py
similarity index 100%
rename from tests/utilities/test_training_handler.py
rename to lib/crewai/tests/utilities/test_training_handler.py
diff --git a/pyproject.toml b/pyproject.toml
index 51fd698e9..33a767455 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,87 +1,10 @@
-[project]
-name = "crewai"
-dynamic = ["version"]
+name = "crewai-workspace"
description = "Cutting-edge framework for orchestrating role-playing, autonomous AI agents. By fostering collaborative intelligence, CrewAI empowers agents to work together seamlessly, tackling complex tasks."
readme = "README.md"
requires-python = ">=3.10,<3.14"
authors = [
{ name = "Joao Moura", email = "joao@crewai.com" }
]
-dependencies = [
- # Core Dependencies
- "pydantic>=2.11.9",
- "openai>=1.13.3",
- "litellm==1.74.9",
- "instructor>=1.3.3",
- # Text Processing
- "pdfplumber>=0.11.4",
- "regex>=2024.9.11",
- # Telemetry and Monitoring
- "opentelemetry-api>=1.30.0",
- "opentelemetry-sdk>=1.30.0",
- "opentelemetry-exporter-otlp-proto-http>=1.30.0",
- # Data Handling
- "chromadb~=1.1.0",
- "tokenizers>=0.20.3",
- "openpyxl>=3.1.5",
- "pyvis>=0.3.2",
- # Authentication and Security
- "python-dotenv>=1.1.1",
- "pyjwt>=2.9.0",
- # Configuration and Utils
- "click>=8.1.7",
- "appdirs>=1.4.4",
- "jsonref>=1.1.0",
- "json-repair==0.25.2",
- "uv>=0.4.25",
- "tomli-w>=1.1.0",
- "tomli>=2.0.2",
- "blinker>=1.9.0",
- "json5>=0.10.0",
- "portalocker==2.7.0",
- "pydantic-settings>=2.10.1",
-]
-
-[project.urls]
-Homepage = "https://crewai.com"
-Documentation = "https://docs.crewai.com"
-Repository = "https://github.com/crewAIInc/crewAI"
-
-[project.optional-dependencies]
-tools = [
- "crewai-tools>=0.74.0",
-]
-embeddings = [
- "tiktoken~=0.8.0"
-]
-pdfplumber = [
- "pdfplumber>=0.11.4",
-]
-pandas = [
- "pandas>=2.2.3",
-]
-openpyxl = [
- "openpyxl>=3.1.5",
-]
-mem0 = ["mem0ai>=0.1.94"]
-docling = [
- "docling>=2.12.0",
-]
-aisuite = [
- "aisuite>=0.1.10",
-]
-qdrant = [
- "qdrant-client[fastembed]>=1.14.3",
-]
-aws = [
- "boto3>=1.40.38",
-]
-watson = [
- "ibm-watsonx-ai>=1.3.39",
-]
-voyageai = [
- "voyageai>=0.3.5",
-]
[dependency-groups]
dev = [
@@ -103,12 +26,10 @@ dev = [
"types-appdirs==1.4.*",
]
-[project.scripts]
-crewai = "crewai.cli.cli:crewai"
[tool.ruff]
exclude = [
- "src/crewai/cli/templates",
+ "lib/crewai/src/crewai/cli/templates",
]
fix = true
@@ -121,6 +42,7 @@ select = [
"RUF", # ruff-specific rules
"N", # pep8-naming (naming conventions)
"W", # pycodestyle warnings
+ "I", # isort (import formatting)
"PERF", # performance issues
"PIE", # flake8-pie (unnecessary code)
"ASYNC", # async/await best practices
@@ -141,58 +63,49 @@ select = [
]
ignore = ["E501"] # ignore line too long globally
+[tool.ruff.format]
+docstring-code-format = true
+
+[tool.ruff.lint.isort]
+case-sensitive = true
+combine-as-imports = true
+force-single-line = false
+force-sort-within-sections = true
+known-first-party = []
+section-order = ["future", "standard-library", "third-party", "first-party", "local-folder"]
+lines-after-imports = 2
+split-on-trailing-comma = true
+
+[tool.ruff.lint.pydocstyle]
+convention = "google"
+
[tool.ruff.lint.per-file-ignores]
-"tests/**/*.py" = ["S101", "RET504"] # Allow assert statements and unnecessary assignments before return in tests
+"lib/crewai/tests/**/*.py" = ["S101", "RET504"] # Allow assert statements and unnecessary assignments before return in tests
[tool.mypy]
-exclude = ["src/crewai/cli/templates", "tests/"]
+exclude = ["lib/crewai/src/crewai/cli/templates", "lib/crewai/tests/"]
plugins = ["pydantic.mypy"]
[tool.bandit]
-exclude_dirs = ["src/crewai/cli/templates"]
+exclude_dirs = ["lib/crewai/src/crewai/cli/templates"]
[tool.pytest.ini_options]
markers = [
"telemetry: mark test as a telemetry test (don't mock telemetry)",
]
-
-# PyTorch index configuration, since torch 2.5.0 is not compatible with python 3.13
-[[tool.uv.index]]
-name = "pytorch-nightly"
-url = "https://download.pytorch.org/whl/nightly/cpu"
-explicit = true
-
-[[tool.uv.index]]
-name = "pytorch"
-url = "https://download.pytorch.org/whl/cpu"
-explicit = true
-
-[tool.uv.sources]
-torch = [
- { index = "pytorch-nightly", marker = "python_version >= '3.13'" },
- { index = "pytorch", marker = "python_version < '3.13'" },
+testpaths = [
+ "lib/crewai/tests",
]
-torchvision = [
- { index = "pytorch-nightly", marker = "python_version >= '3.13'" },
- { index = "pytorch", marker = "python_version < '3.13'" },
-]
-
-[tool.hatch.version]
-path = "src/crewai/__init__.py"
-
-[build-system]
-requires = ["hatchling"]
-build-backend = "hatchling.build"
-
-[tool.hatch.build.targets.wheel]
-exclude = [
-"docs/**",
-"docs/",
-]
-
-[tool.hatch.build.targets.sdist]
-exclude = [
-"docs/**",
-"docs/",
+asyncio_mode = "strict"
+asyncio_default_fixture_loop_scope = "function"
+addopts = "--tb=short"
+python_files = "test_*.py"
+python_classes = "Test*"
+python_functions = "test_*"
+
+
+[tool.uv.workspace]
+members = [
+ "lib/crewai",
]
diff --git a/uv.lock b/uv.lock
index 238a97900..8358e1efd 100644
--- a/uv.lock
+++ b/uv.lock
@@ -28,6 +28,31 @@ resolution-markers = [
"(python_full_version < '3.11' and platform_machine != 'aarch64' and platform_python_implementation == 'PyPy' and sys_platform == 'linux') or (python_full_version < '3.11' and platform_python_implementation == 'PyPy' and sys_platform != 'darwin' and sys_platform != 'linux')",
]
+[manifest]
+members = [
+ "crewai",
+]
+
+[manifest.dependency-groups]
+dev = [
+ { name = "bandit", specifier = ">=1.8.6" },
+ { name = "mypy", specifier = ">=1.18.2" },
+ { name = "pre-commit", specifier = ">=4.3.0" },
+ { name = "pytest", specifier = ">=8.4.2" },
+ { name = "pytest-asyncio", specifier = ">=1.2.0" },
+ { name = "pytest-randomly", specifier = ">=4.0.1" },
+ { name = "pytest-recording", specifier = ">=0.13.4" },
+ { name = "pytest-split", specifier = ">=0.10.0" },
+ { name = "pytest-subprocess", specifier = ">=1.5.3" },
+ { name = "pytest-timeout", specifier = ">=2.4.0" },
+ { name = "pytest-xdist", specifier = ">=3.8.0" },
+ { name = "ruff", specifier = ">=0.13.1" },
+ { name = "types-appdirs", specifier = "==1.4.*" },
+ { name = "types-pyyaml", specifier = "==6.0.*" },
+ { name = "types-regex", specifier = "==2024.11.6.*" },
+ { name = "types-requests", specifier = "==2.32.*" },
+]
+
[[package]]
name = "accelerate"
version = "1.10.1"
@@ -187,7 +212,7 @@ wheels = [
[[package]]
name = "anthropic"
-version = "0.68.0"
+version = "0.68.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "anyio" },
@@ -199,9 +224,9 @@ dependencies = [
{ name = "sniffio" },
{ name = "typing-extensions" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/64/46/da44bf087ddaf3f7dbe4808c00c7cde466fe68c4fc9fbebdfc231f4ea205/anthropic-0.68.0.tar.gz", hash = "sha256:507e9b5f627d1b249128ff15b21855e718fa4ed8dabc787d0e68860a4b32a7a8", size = 471584, upload-time = "2025-09-17T15:20:19.509Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/43/b9/5e736a924dabe0473b212597ae83a124e09818fac672998bb5960a64e9b1/anthropic-0.68.1.tar.gz", hash = "sha256:5fc01019dfffbc39e87a24f4d7cfe34e83dda4fff7b5371f33639f982f0c8dba", size = 471965, upload-time = "2025-09-26T16:27:30.547Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/60/32/2d7553184b05bdbec61dd600014a55b9028408aee6128b25cb6f20e3002c/anthropic-0.68.0-py3-none-any.whl", hash = "sha256:ac579ea5eca22a7165b1042e6af57c4bf556e51afae3ca80e24768d4756b78c0", size = 325199, upload-time = "2025-09-17T15:20:17.452Z" },
+ { url = "https://files.pythonhosted.org/packages/c9/5c/e871e40ba11338502569a3f5cb176650f99f7b4ecf915f4d38fe2b8cff37/anthropic-0.68.1-py3-none-any.whl", hash = "sha256:40fc545c4781ebc45d8e7849240c4001f40d61d18a17e5363c0acb10afefc33b", size = 325214, upload-time = "2025-09-26T16:27:29.049Z" },
]
[[package]]
@@ -290,73 +315,72 @@ wheels = [
[[package]]
name = "bcrypt"
-version = "4.3.0"
+version = "5.0.0"
source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/bb/5d/6d7433e0f3cd46ce0b43cd65e1db465ea024dbb8216fb2404e919c2ad77b/bcrypt-4.3.0.tar.gz", hash = "sha256:3a3fd2204178b6d2adcf09cb4f6426ffef54762577a7c9b54c159008cb288c18", size = 25697, upload-time = "2025-02-28T01:24:09.174Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/d4/36/3329e2518d70ad8e2e5817d5a4cac6bba05a47767ec416c7d020a965f408/bcrypt-5.0.0.tar.gz", hash = "sha256:f748f7c2d6fd375cc93d3fba7ef4a9e3a092421b8dbf34d8d4dc06be9492dfdd", size = 25386, upload-time = "2025-09-25T19:50:47.829Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/bf/2c/3d44e853d1fe969d229bd58d39ae6902b3d924af0e2b5a60d17d4b809ded/bcrypt-4.3.0-cp313-cp313t-macosx_10_12_universal2.whl", hash = "sha256:f01e060f14b6b57bbb72fc5b4a83ac21c443c9a2ee708e04a10e9192f90a6281", size = 483719, upload-time = "2025-02-28T01:22:34.539Z" },
- { url = "https://files.pythonhosted.org/packages/a1/e2/58ff6e2a22eca2e2cff5370ae56dba29d70b1ea6fc08ee9115c3ae367795/bcrypt-4.3.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5eeac541cefd0bb887a371ef73c62c3cd78535e4887b310626036a7c0a817bb", size = 272001, upload-time = "2025-02-28T01:22:38.078Z" },
- { url = "https://files.pythonhosted.org/packages/37/1f/c55ed8dbe994b1d088309e366749633c9eb90d139af3c0a50c102ba68a1a/bcrypt-4.3.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59e1aa0e2cd871b08ca146ed08445038f42ff75968c7ae50d2fdd7860ade2180", size = 277451, upload-time = "2025-02-28T01:22:40.787Z" },
- { url = "https://files.pythonhosted.org/packages/d7/1c/794feb2ecf22fe73dcfb697ea7057f632061faceb7dcf0f155f3443b4d79/bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:0042b2e342e9ae3d2ed22727c1262f76cc4f345683b5c1715f0250cf4277294f", size = 272792, upload-time = "2025-02-28T01:22:43.144Z" },
- { url = "https://files.pythonhosted.org/packages/13/b7/0b289506a3f3598c2ae2bdfa0ea66969812ed200264e3f61df77753eee6d/bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74a8d21a09f5e025a9a23e7c0fd2c7fe8e7503e4d356c0a2c1486ba010619f09", size = 289752, upload-time = "2025-02-28T01:22:45.56Z" },
- { url = "https://files.pythonhosted.org/packages/dc/24/d0fb023788afe9e83cc118895a9f6c57e1044e7e1672f045e46733421fe6/bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:0142b2cb84a009f8452c8c5a33ace5e3dfec4159e7735f5afe9a4d50a8ea722d", size = 277762, upload-time = "2025-02-28T01:22:47.023Z" },
- { url = "https://files.pythonhosted.org/packages/e4/38/cde58089492e55ac4ef6c49fea7027600c84fd23f7520c62118c03b4625e/bcrypt-4.3.0-cp313-cp313t-manylinux_2_34_aarch64.whl", hash = "sha256:12fa6ce40cde3f0b899729dbd7d5e8811cb892d31b6f7d0334a1f37748b789fd", size = 272384, upload-time = "2025-02-28T01:22:49.221Z" },
- { url = "https://files.pythonhosted.org/packages/de/6a/d5026520843490cfc8135d03012a413e4532a400e471e6188b01b2de853f/bcrypt-4.3.0-cp313-cp313t-manylinux_2_34_x86_64.whl", hash = "sha256:5bd3cca1f2aa5dbcf39e2aa13dd094ea181f48959e1071265de49cc2b82525af", size = 277329, upload-time = "2025-02-28T01:22:51.603Z" },
- { url = "https://files.pythonhosted.org/packages/b3/a3/4fc5255e60486466c389e28c12579d2829b28a527360e9430b4041df4cf9/bcrypt-4.3.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:335a420cfd63fc5bc27308e929bee231c15c85cc4c496610ffb17923abf7f231", size = 305241, upload-time = "2025-02-28T01:22:53.283Z" },
- { url = "https://files.pythonhosted.org/packages/c7/15/2b37bc07d6ce27cc94e5b10fd5058900eb8fb11642300e932c8c82e25c4a/bcrypt-4.3.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:0e30e5e67aed0187a1764911af023043b4542e70a7461ad20e837e94d23e1d6c", size = 309617, upload-time = "2025-02-28T01:22:55.461Z" },
- { url = "https://files.pythonhosted.org/packages/5f/1f/99f65edb09e6c935232ba0430c8c13bb98cb3194b6d636e61d93fe60ac59/bcrypt-4.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3b8d62290ebefd49ee0b3ce7500f5dbdcf13b81402c05f6dafab9a1e1b27212f", size = 335751, upload-time = "2025-02-28T01:22:57.81Z" },
- { url = "https://files.pythonhosted.org/packages/00/1b/b324030c706711c99769988fcb694b3cb23f247ad39a7823a78e361bdbb8/bcrypt-4.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2ef6630e0ec01376f59a006dc72918b1bf436c3b571b80fa1968d775fa02fe7d", size = 355965, upload-time = "2025-02-28T01:22:59.181Z" },
- { url = "https://files.pythonhosted.org/packages/aa/dd/20372a0579dd915dfc3b1cd4943b3bca431866fcb1dfdfd7518c3caddea6/bcrypt-4.3.0-cp313-cp313t-win32.whl", hash = "sha256:7a4be4cbf241afee43f1c3969b9103a41b40bcb3a3f467ab19f891d9bc4642e4", size = 155316, upload-time = "2025-02-28T01:23:00.763Z" },
- { url = "https://files.pythonhosted.org/packages/6d/52/45d969fcff6b5577c2bf17098dc36269b4c02197d551371c023130c0f890/bcrypt-4.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5c1949bf259a388863ced887c7861da1df681cb2388645766c89fdfd9004c669", size = 147752, upload-time = "2025-02-28T01:23:02.908Z" },
- { url = "https://files.pythonhosted.org/packages/11/22/5ada0b9af72b60cbc4c9a399fdde4af0feaa609d27eb0adc61607997a3fa/bcrypt-4.3.0-cp38-abi3-macosx_10_12_universal2.whl", hash = "sha256:f81b0ed2639568bf14749112298f9e4e2b28853dab50a8b357e31798686a036d", size = 498019, upload-time = "2025-02-28T01:23:05.838Z" },
- { url = "https://files.pythonhosted.org/packages/b8/8c/252a1edc598dc1ce57905be173328eda073083826955ee3c97c7ff5ba584/bcrypt-4.3.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:864f8f19adbe13b7de11ba15d85d4a428c7e2f344bac110f667676a0ff84924b", size = 279174, upload-time = "2025-02-28T01:23:07.274Z" },
- { url = "https://files.pythonhosted.org/packages/29/5b/4547d5c49b85f0337c13929f2ccbe08b7283069eea3550a457914fc078aa/bcrypt-4.3.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e36506d001e93bffe59754397572f21bb5dc7c83f54454c990c74a468cd589e", size = 283870, upload-time = "2025-02-28T01:23:09.151Z" },
- { url = "https://files.pythonhosted.org/packages/be/21/7dbaf3fa1745cb63f776bb046e481fbababd7d344c5324eab47f5ca92dd2/bcrypt-4.3.0-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:842d08d75d9fe9fb94b18b071090220697f9f184d4547179b60734846461ed59", size = 279601, upload-time = "2025-02-28T01:23:11.461Z" },
- { url = "https://files.pythonhosted.org/packages/6d/64/e042fc8262e971347d9230d9abbe70d68b0a549acd8611c83cebd3eaec67/bcrypt-4.3.0-cp38-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7c03296b85cb87db865d91da79bf63d5609284fc0cab9472fdd8367bbd830753", size = 297660, upload-time = "2025-02-28T01:23:12.989Z" },
- { url = "https://files.pythonhosted.org/packages/50/b8/6294eb84a3fef3b67c69b4470fcdd5326676806bf2519cda79331ab3c3a9/bcrypt-4.3.0-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:62f26585e8b219cdc909b6a0069efc5e4267e25d4a3770a364ac58024f62a761", size = 284083, upload-time = "2025-02-28T01:23:14.5Z" },
- { url = "https://files.pythonhosted.org/packages/62/e6/baff635a4f2c42e8788fe1b1633911c38551ecca9a749d1052d296329da6/bcrypt-4.3.0-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:beeefe437218a65322fbd0069eb437e7c98137e08f22c4660ac2dc795c31f8bb", size = 279237, upload-time = "2025-02-28T01:23:16.686Z" },
- { url = "https://files.pythonhosted.org/packages/39/48/46f623f1b0c7dc2e5de0b8af5e6f5ac4cc26408ac33f3d424e5ad8da4a90/bcrypt-4.3.0-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:97eea7408db3a5bcce4a55d13245ab3fa566e23b4c67cd227062bb49e26c585d", size = 283737, upload-time = "2025-02-28T01:23:18.897Z" },
- { url = "https://files.pythonhosted.org/packages/49/8b/70671c3ce9c0fca4a6cc3cc6ccbaa7e948875a2e62cbd146e04a4011899c/bcrypt-4.3.0-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:191354ebfe305e84f344c5964c7cd5f924a3bfc5d405c75ad07f232b6dffb49f", size = 312741, upload-time = "2025-02-28T01:23:21.041Z" },
- { url = "https://files.pythonhosted.org/packages/27/fb/910d3a1caa2d249b6040a5caf9f9866c52114d51523ac2fb47578a27faee/bcrypt-4.3.0-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:41261d64150858eeb5ff43c753c4b216991e0ae16614a308a15d909503617732", size = 316472, upload-time = "2025-02-28T01:23:23.183Z" },
- { url = "https://files.pythonhosted.org/packages/dc/cf/7cf3a05b66ce466cfb575dbbda39718d45a609daa78500f57fa9f36fa3c0/bcrypt-4.3.0-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:33752b1ba962ee793fa2b6321404bf20011fe45b9afd2a842139de3011898fef", size = 343606, upload-time = "2025-02-28T01:23:25.361Z" },
- { url = "https://files.pythonhosted.org/packages/e3/b8/e970ecc6d7e355c0d892b7f733480f4aa8509f99b33e71550242cf0b7e63/bcrypt-4.3.0-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:50e6e80a4bfd23a25f5c05b90167c19030cf9f87930f7cb2eacb99f45d1c3304", size = 362867, upload-time = "2025-02-28T01:23:26.875Z" },
- { url = "https://files.pythonhosted.org/packages/a9/97/8d3118efd8354c555a3422d544163f40d9f236be5b96c714086463f11699/bcrypt-4.3.0-cp38-abi3-win32.whl", hash = "sha256:67a561c4d9fb9465ec866177e7aebcad08fe23aaf6fbd692a6fab69088abfc51", size = 160589, upload-time = "2025-02-28T01:23:28.381Z" },
- { url = "https://files.pythonhosted.org/packages/29/07/416f0b99f7f3997c69815365babbc2e8754181a4b1899d921b3c7d5b6f12/bcrypt-4.3.0-cp38-abi3-win_amd64.whl", hash = "sha256:584027857bc2843772114717a7490a37f68da563b3620f78a849bcb54dc11e62", size = 152794, upload-time = "2025-02-28T01:23:30.187Z" },
- { url = "https://files.pythonhosted.org/packages/6e/c1/3fa0e9e4e0bfd3fd77eb8b52ec198fd6e1fd7e9402052e43f23483f956dd/bcrypt-4.3.0-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:0d3efb1157edebfd9128e4e46e2ac1a64e0c1fe46fb023158a407c7892b0f8c3", size = 498969, upload-time = "2025-02-28T01:23:31.945Z" },
- { url = "https://files.pythonhosted.org/packages/ce/d4/755ce19b6743394787fbd7dff6bf271b27ee9b5912a97242e3caf125885b/bcrypt-4.3.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08bacc884fd302b611226c01014eca277d48f0a05187666bca23aac0dad6fe24", size = 279158, upload-time = "2025-02-28T01:23:34.161Z" },
- { url = "https://files.pythonhosted.org/packages/9b/5d/805ef1a749c965c46b28285dfb5cd272a7ed9fa971f970435a5133250182/bcrypt-4.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6746e6fec103fcd509b96bacdfdaa2fbde9a553245dbada284435173a6f1aef", size = 284285, upload-time = "2025-02-28T01:23:35.765Z" },
- { url = "https://files.pythonhosted.org/packages/ab/2b/698580547a4a4988e415721b71eb45e80c879f0fb04a62da131f45987b96/bcrypt-4.3.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:afe327968aaf13fc143a56a3360cb27d4ad0345e34da12c7290f1b00b8fe9a8b", size = 279583, upload-time = "2025-02-28T01:23:38.021Z" },
- { url = "https://files.pythonhosted.org/packages/f2/87/62e1e426418204db520f955ffd06f1efd389feca893dad7095bf35612eec/bcrypt-4.3.0-cp39-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d9af79d322e735b1fc33404b5765108ae0ff232d4b54666d46730f8ac1a43676", size = 297896, upload-time = "2025-02-28T01:23:39.575Z" },
- { url = "https://files.pythonhosted.org/packages/cb/c6/8fedca4c2ada1b6e889c52d2943b2f968d3427e5d65f595620ec4c06fa2f/bcrypt-4.3.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f1e3ffa1365e8702dc48c8b360fef8d7afeca482809c5e45e653af82ccd088c1", size = 284492, upload-time = "2025-02-28T01:23:40.901Z" },
- { url = "https://files.pythonhosted.org/packages/4d/4d/c43332dcaaddb7710a8ff5269fcccba97ed3c85987ddaa808db084267b9a/bcrypt-4.3.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:3004df1b323d10021fda07a813fd33e0fd57bef0e9a480bb143877f6cba996fe", size = 279213, upload-time = "2025-02-28T01:23:42.653Z" },
- { url = "https://files.pythonhosted.org/packages/dc/7f/1e36379e169a7df3a14a1c160a49b7b918600a6008de43ff20d479e6f4b5/bcrypt-4.3.0-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:531457e5c839d8caea9b589a1bcfe3756b0547d7814e9ce3d437f17da75c32b0", size = 284162, upload-time = "2025-02-28T01:23:43.964Z" },
- { url = "https://files.pythonhosted.org/packages/1c/0a/644b2731194b0d7646f3210dc4d80c7fee3ecb3a1f791a6e0ae6bb8684e3/bcrypt-4.3.0-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:17a854d9a7a476a89dcef6c8bd119ad23e0f82557afbd2c442777a16408e614f", size = 312856, upload-time = "2025-02-28T01:23:46.011Z" },
- { url = "https://files.pythonhosted.org/packages/dc/62/2a871837c0bb6ab0c9a88bf54de0fc021a6a08832d4ea313ed92a669d437/bcrypt-4.3.0-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:6fb1fd3ab08c0cbc6826a2e0447610c6f09e983a281b919ed721ad32236b8b23", size = 316726, upload-time = "2025-02-28T01:23:47.575Z" },
- { url = "https://files.pythonhosted.org/packages/0c/a1/9898ea3faac0b156d457fd73a3cb9c2855c6fd063e44b8522925cdd8ce46/bcrypt-4.3.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e965a9c1e9a393b8005031ff52583cedc15b7884fce7deb8b0346388837d6cfe", size = 343664, upload-time = "2025-02-28T01:23:49.059Z" },
- { url = "https://files.pythonhosted.org/packages/40/f2/71b4ed65ce38982ecdda0ff20c3ad1b15e71949c78b2c053df53629ce940/bcrypt-4.3.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:79e70b8342a33b52b55d93b3a59223a844962bef479f6a0ea318ebbcadf71505", size = 363128, upload-time = "2025-02-28T01:23:50.399Z" },
- { url = "https://files.pythonhosted.org/packages/11/99/12f6a58eca6dea4be992d6c681b7ec9410a1d9f5cf368c61437e31daa879/bcrypt-4.3.0-cp39-abi3-win32.whl", hash = "sha256:b4d4e57f0a63fd0b358eb765063ff661328f69a04494427265950c71b992a39a", size = 160598, upload-time = "2025-02-28T01:23:51.775Z" },
- { url = "https://files.pythonhosted.org/packages/a9/cf/45fb5261ece3e6b9817d3d82b2f343a505fd58674a92577923bc500bd1aa/bcrypt-4.3.0-cp39-abi3-win_amd64.whl", hash = "sha256:e53e074b120f2877a35cc6c736b8eb161377caae8925c17688bd46ba56daaa5b", size = 152799, upload-time = "2025-02-28T01:23:53.139Z" },
- { url = "https://files.pythonhosted.org/packages/55/2d/0c7e5ab0524bf1a443e34cdd3926ec6f5879889b2f3c32b2f5074e99ed53/bcrypt-4.3.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c950d682f0952bafcceaf709761da0a32a942272fad381081b51096ffa46cea1", size = 275367, upload-time = "2025-02-28T01:23:54.578Z" },
- { url = "https://files.pythonhosted.org/packages/10/4f/f77509f08bdff8806ecc4dc472b6e187c946c730565a7470db772d25df70/bcrypt-4.3.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:107d53b5c67e0bbc3f03ebf5b030e0403d24dda980f8e244795335ba7b4a027d", size = 280644, upload-time = "2025-02-28T01:23:56.547Z" },
- { url = "https://files.pythonhosted.org/packages/35/18/7d9dc16a3a4d530d0a9b845160e9e5d8eb4f00483e05d44bb4116a1861da/bcrypt-4.3.0-pp310-pypy310_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:b693dbb82b3c27a1604a3dff5bfc5418a7e6a781bb795288141e5f80cf3a3492", size = 274881, upload-time = "2025-02-28T01:23:57.935Z" },
- { url = "https://files.pythonhosted.org/packages/df/c4/ae6921088adf1e37f2a3a6a688e72e7d9e45fdd3ae5e0bc931870c1ebbda/bcrypt-4.3.0-pp310-pypy310_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:b6354d3760fcd31994a14c89659dee887f1351a06e5dac3c1142307172a79f90", size = 280203, upload-time = "2025-02-28T01:23:59.331Z" },
- { url = "https://files.pythonhosted.org/packages/4c/b1/1289e21d710496b88340369137cc4c5f6ee036401190ea116a7b4ae6d32a/bcrypt-4.3.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a839320bf27d474e52ef8cb16449bb2ce0ba03ca9f44daba6d93fa1d8828e48a", size = 275103, upload-time = "2025-02-28T01:24:00.764Z" },
- { url = "https://files.pythonhosted.org/packages/94/41/19be9fe17e4ffc5d10b7b67f10e459fc4eee6ffe9056a88de511920cfd8d/bcrypt-4.3.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:bdc6a24e754a555d7316fa4774e64c6c3997d27ed2d1964d55920c7c227bc4ce", size = 280513, upload-time = "2025-02-28T01:24:02.243Z" },
- { url = "https://files.pythonhosted.org/packages/aa/73/05687a9ef89edebdd8ad7474c16d8af685eb4591c3c38300bb6aad4f0076/bcrypt-4.3.0-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:55a935b8e9a1d2def0626c4269db3fcd26728cbff1e84f0341465c31c4ee56d8", size = 274685, upload-time = "2025-02-28T01:24:04.512Z" },
- { url = "https://files.pythonhosted.org/packages/63/13/47bba97924ebe86a62ef83dc75b7c8a881d53c535f83e2c54c4bd701e05c/bcrypt-4.3.0-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:57967b7a28d855313a963aaea51bf6df89f833db4320da458e5b3c5ab6d4c938", size = 280110, upload-time = "2025-02-28T01:24:05.896Z" },
+ { url = "https://files.pythonhosted.org/packages/13/85/3e65e01985fddf25b64ca67275bb5bdb4040bd1a53b66d355c6c37c8a680/bcrypt-5.0.0-cp313-cp313t-macosx_10_12_universal2.whl", hash = "sha256:f3c08197f3039bec79cee59a606d62b96b16669cff3949f21e74796b6e3cd2be", size = 481806, upload-time = "2025-09-25T19:49:05.102Z" },
+ { url = "https://files.pythonhosted.org/packages/44/dc/01eb79f12b177017a726cbf78330eb0eb442fae0e7b3dfd84ea2849552f3/bcrypt-5.0.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:200af71bc25f22006f4069060c88ed36f8aa4ff7f53e67ff04d2ab3f1e79a5b2", size = 268626, upload-time = "2025-09-25T19:49:06.723Z" },
+ { url = "https://files.pythonhosted.org/packages/8c/cf/e82388ad5959c40d6afd94fb4743cc077129d45b952d46bdc3180310e2df/bcrypt-5.0.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:baade0a5657654c2984468efb7d6c110db87ea63ef5a4b54732e7e337253e44f", size = 271853, upload-time = "2025-09-25T19:49:08.028Z" },
+ { url = "https://files.pythonhosted.org/packages/ec/86/7134b9dae7cf0efa85671651341f6afa695857fae172615e960fb6a466fa/bcrypt-5.0.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:c58b56cdfb03202b3bcc9fd8daee8e8e9b6d7e3163aa97c631dfcfcc24d36c86", size = 269793, upload-time = "2025-09-25T19:49:09.727Z" },
+ { url = "https://files.pythonhosted.org/packages/cc/82/6296688ac1b9e503d034e7d0614d56e80c5d1a08402ff856a4549cb59207/bcrypt-5.0.0-cp313-cp313t-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4bfd2a34de661f34d0bda43c3e4e79df586e4716ef401fe31ea39d69d581ef23", size = 289930, upload-time = "2025-09-25T19:49:11.204Z" },
+ { url = "https://files.pythonhosted.org/packages/d1/18/884a44aa47f2a3b88dd09bc05a1e40b57878ecd111d17e5bba6f09f8bb77/bcrypt-5.0.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:ed2e1365e31fc73f1825fa830f1c8f8917ca1b3ca6185773b349c20fd606cec2", size = 272194, upload-time = "2025-09-25T19:49:12.524Z" },
+ { url = "https://files.pythonhosted.org/packages/0e/8f/371a3ab33c6982070b674f1788e05b656cfbf5685894acbfef0c65483a59/bcrypt-5.0.0-cp313-cp313t-manylinux_2_34_aarch64.whl", hash = "sha256:83e787d7a84dbbfba6f250dd7a5efd689e935f03dd83b0f919d39349e1f23f83", size = 269381, upload-time = "2025-09-25T19:49:14.308Z" },
+ { url = "https://files.pythonhosted.org/packages/b1/34/7e4e6abb7a8778db6422e88b1f06eb07c47682313997ee8a8f9352e5a6f1/bcrypt-5.0.0-cp313-cp313t-manylinux_2_34_x86_64.whl", hash = "sha256:137c5156524328a24b9fac1cb5db0ba618bc97d11970b39184c1d87dc4bf1746", size = 271750, upload-time = "2025-09-25T19:49:15.584Z" },
+ { url = "https://files.pythonhosted.org/packages/c0/1b/54f416be2499bd72123c70d98d36c6cd61a4e33d9b89562c22481c81bb30/bcrypt-5.0.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:38cac74101777a6a7d3b3e3cfefa57089b5ada650dce2baf0cbdd9d65db22a9e", size = 303757, upload-time = "2025-09-25T19:49:17.244Z" },
+ { url = "https://files.pythonhosted.org/packages/13/62/062c24c7bcf9d2826a1a843d0d605c65a755bc98002923d01fd61270705a/bcrypt-5.0.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:d8d65b564ec849643d9f7ea05c6d9f0cd7ca23bdd4ac0c2dbef1104ab504543d", size = 306740, upload-time = "2025-09-25T19:49:18.693Z" },
+ { url = "https://files.pythonhosted.org/packages/d5/c8/1fdbfc8c0f20875b6b4020f3c7dc447b8de60aa0be5faaf009d24242aec9/bcrypt-5.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:741449132f64b3524e95cd30e5cd3343006ce146088f074f31ab26b94e6c75ba", size = 334197, upload-time = "2025-09-25T19:49:20.523Z" },
+ { url = "https://files.pythonhosted.org/packages/a6/c1/8b84545382d75bef226fbc6588af0f7b7d095f7cd6a670b42a86243183cd/bcrypt-5.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:212139484ab3207b1f0c00633d3be92fef3c5f0af17cad155679d03ff2ee1e41", size = 352974, upload-time = "2025-09-25T19:49:22.254Z" },
+ { url = "https://files.pythonhosted.org/packages/10/a6/ffb49d4254ed085e62e3e5dd05982b4393e32fe1e49bb1130186617c29cd/bcrypt-5.0.0-cp313-cp313t-win32.whl", hash = "sha256:9d52ed507c2488eddd6a95bccee4e808d3234fa78dd370e24bac65a21212b861", size = 148498, upload-time = "2025-09-25T19:49:24.134Z" },
+ { url = "https://files.pythonhosted.org/packages/48/a9/259559edc85258b6d5fc5471a62a3299a6aa37a6611a169756bf4689323c/bcrypt-5.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:f6984a24db30548fd39a44360532898c33528b74aedf81c26cf29c51ee47057e", size = 145853, upload-time = "2025-09-25T19:49:25.702Z" },
+ { url = "https://files.pythonhosted.org/packages/2d/df/9714173403c7e8b245acf8e4be8876aac64a209d1b392af457c79e60492e/bcrypt-5.0.0-cp313-cp313t-win_arm64.whl", hash = "sha256:9fffdb387abe6aa775af36ef16f55e318dcda4194ddbf82007a6f21da29de8f5", size = 139626, upload-time = "2025-09-25T19:49:26.928Z" },
+ { url = "https://files.pythonhosted.org/packages/84/29/6237f151fbfe295fe3e074ecc6d44228faa1e842a81f6d34a02937ee1736/bcrypt-5.0.0-cp38-abi3-macosx_10_12_universal2.whl", hash = "sha256:fc746432b951e92b58317af8e0ca746efe93e66555f1b40888865ef5bf56446b", size = 494553, upload-time = "2025-09-25T19:49:49.006Z" },
+ { url = "https://files.pythonhosted.org/packages/45/b6/4c1205dde5e464ea3bd88e8742e19f899c16fa8916fb8510a851fae985b5/bcrypt-5.0.0-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c2388ca94ffee269b6038d48747f4ce8df0ffbea43f31abfa18ac72f0218effb", size = 275009, upload-time = "2025-09-25T19:49:50.581Z" },
+ { url = "https://files.pythonhosted.org/packages/3b/71/427945e6ead72ccffe77894b2655b695ccf14ae1866cd977e185d606dd2f/bcrypt-5.0.0-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:560ddb6ec730386e7b3b26b8b4c88197aaed924430e7b74666a586ac997249ef", size = 278029, upload-time = "2025-09-25T19:49:52.533Z" },
+ { url = "https://files.pythonhosted.org/packages/17/72/c344825e3b83c5389a369c8a8e58ffe1480b8a699f46c127c34580c4666b/bcrypt-5.0.0-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:d79e5c65dcc9af213594d6f7f1fa2c98ad3fc10431e7aa53c176b441943efbdd", size = 275907, upload-time = "2025-09-25T19:49:54.709Z" },
+ { url = "https://files.pythonhosted.org/packages/0b/7e/d4e47d2df1641a36d1212e5c0514f5291e1a956a7749f1e595c07a972038/bcrypt-5.0.0-cp38-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2b732e7d388fa22d48920baa267ba5d97cca38070b69c0e2d37087b381c681fd", size = 296500, upload-time = "2025-09-25T19:49:56.013Z" },
+ { url = "https://files.pythonhosted.org/packages/0f/c3/0ae57a68be2039287ec28bc463b82e4b8dc23f9d12c0be331f4782e19108/bcrypt-5.0.0-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:0c8e093ea2532601a6f686edbc2c6b2ec24131ff5c52f7610dd64fa4553b5464", size = 278412, upload-time = "2025-09-25T19:49:57.356Z" },
+ { url = "https://files.pythonhosted.org/packages/45/2b/77424511adb11e6a99e3a00dcc7745034bee89036ad7d7e255a7e47be7d8/bcrypt-5.0.0-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:5b1589f4839a0899c146e8892efe320c0fa096568abd9b95593efac50a87cb75", size = 275486, upload-time = "2025-09-25T19:49:59.116Z" },
+ { url = "https://files.pythonhosted.org/packages/43/0a/405c753f6158e0f3f14b00b462d8bca31296f7ecfc8fc8bc7919c0c7d73a/bcrypt-5.0.0-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:89042e61b5e808b67daf24a434d89bab164d4de1746b37a8d173b6b14f3db9ff", size = 277940, upload-time = "2025-09-25T19:50:00.869Z" },
+ { url = "https://files.pythonhosted.org/packages/62/83/b3efc285d4aadc1fa83db385ec64dcfa1707e890eb42f03b127d66ac1b7b/bcrypt-5.0.0-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:e3cf5b2560c7b5a142286f69bde914494b6d8f901aaa71e453078388a50881c4", size = 310776, upload-time = "2025-09-25T19:50:02.393Z" },
+ { url = "https://files.pythonhosted.org/packages/95/7d/47ee337dacecde6d234890fe929936cb03ebc4c3a7460854bbd9c97780b8/bcrypt-5.0.0-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f632fd56fc4e61564f78b46a2269153122db34988e78b6be8b32d28507b7eaeb", size = 312922, upload-time = "2025-09-25T19:50:04.232Z" },
+ { url = "https://files.pythonhosted.org/packages/d6/3a/43d494dfb728f55f4e1cf8fd435d50c16a2d75493225b54c8d06122523c6/bcrypt-5.0.0-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:801cad5ccb6b87d1b430f183269b94c24f248dddbbc5c1f78b6ed231743e001c", size = 341367, upload-time = "2025-09-25T19:50:05.559Z" },
+ { url = "https://files.pythonhosted.org/packages/55/ab/a0727a4547e383e2e22a630e0f908113db37904f58719dc48d4622139b5c/bcrypt-5.0.0-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:3cf67a804fc66fc217e6914a5635000259fbbbb12e78a99488e4d5ba445a71eb", size = 359187, upload-time = "2025-09-25T19:50:06.916Z" },
+ { url = "https://files.pythonhosted.org/packages/1b/bb/461f352fdca663524b4643d8b09e8435b4990f17fbf4fea6bc2a90aa0cc7/bcrypt-5.0.0-cp38-abi3-win32.whl", hash = "sha256:3abeb543874b2c0524ff40c57a4e14e5d3a66ff33fb423529c88f180fd756538", size = 153752, upload-time = "2025-09-25T19:50:08.515Z" },
+ { url = "https://files.pythonhosted.org/packages/41/aa/4190e60921927b7056820291f56fc57d00d04757c8b316b2d3c0d1d6da2c/bcrypt-5.0.0-cp38-abi3-win_amd64.whl", hash = "sha256:35a77ec55b541e5e583eb3436ffbbf53b0ffa1fa16ca6782279daf95d146dcd9", size = 150881, upload-time = "2025-09-25T19:50:09.742Z" },
+ { url = "https://files.pythonhosted.org/packages/54/12/cd77221719d0b39ac0b55dbd39358db1cd1246e0282e104366ebbfb8266a/bcrypt-5.0.0-cp38-abi3-win_arm64.whl", hash = "sha256:cde08734f12c6a4e28dc6755cd11d3bdfea608d93d958fffbe95a7026ebe4980", size = 144931, upload-time = "2025-09-25T19:50:11.016Z" },
+ { url = "https://files.pythonhosted.org/packages/5d/ba/2af136406e1c3839aea9ecadc2f6be2bcd1eff255bd451dd39bcf302c47a/bcrypt-5.0.0-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:0c418ca99fd47e9c59a301744d63328f17798b5947b0f791e9af3c1c499c2d0a", size = 495313, upload-time = "2025-09-25T19:50:12.309Z" },
+ { url = "https://files.pythonhosted.org/packages/ac/ee/2f4985dbad090ace5ad1f7dd8ff94477fe089b5fab2040bd784a3d5f187b/bcrypt-5.0.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ddb4e1500f6efdd402218ffe34d040a1196c072e07929b9820f363a1fd1f4191", size = 275290, upload-time = "2025-09-25T19:50:13.673Z" },
+ { url = "https://files.pythonhosted.org/packages/e4/6e/b77ade812672d15cf50842e167eead80ac3514f3beacac8902915417f8b7/bcrypt-5.0.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7aeef54b60ceddb6f30ee3db090351ecf0d40ec6e2abf41430997407a46d2254", size = 278253, upload-time = "2025-09-25T19:50:15.089Z" },
+ { url = "https://files.pythonhosted.org/packages/36/c4/ed00ed32f1040f7990dac7115f82273e3c03da1e1a1587a778d8cea496d8/bcrypt-5.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f0ce778135f60799d89c9693b9b398819d15f1921ba15fe719acb3178215a7db", size = 276084, upload-time = "2025-09-25T19:50:16.699Z" },
+ { url = "https://files.pythonhosted.org/packages/e7/c4/fa6e16145e145e87f1fa351bbd54b429354fd72145cd3d4e0c5157cf4c70/bcrypt-5.0.0-cp39-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a71f70ee269671460b37a449f5ff26982a6f2ba493b3eabdd687b4bf35f875ac", size = 297185, upload-time = "2025-09-25T19:50:18.525Z" },
+ { url = "https://files.pythonhosted.org/packages/24/b4/11f8a31d8b67cca3371e046db49baa7c0594d71eb40ac8121e2fc0888db0/bcrypt-5.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f8429e1c410b4073944f03bd778a9e066e7fad723564a52ff91841d278dfc822", size = 278656, upload-time = "2025-09-25T19:50:19.809Z" },
+ { url = "https://files.pythonhosted.org/packages/ac/31/79f11865f8078e192847d2cb526e3fa27c200933c982c5b2869720fa5fce/bcrypt-5.0.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:edfcdcedd0d0f05850c52ba3127b1fce70b9f89e0fe5ff16517df7e81fa3cbb8", size = 275662, upload-time = "2025-09-25T19:50:21.567Z" },
+ { url = "https://files.pythonhosted.org/packages/d4/8d/5e43d9584b3b3591a6f9b68f755a4da879a59712981ef5ad2a0ac1379f7a/bcrypt-5.0.0-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:611f0a17aa4a25a69362dcc299fda5c8a3d4f160e2abb3831041feb77393a14a", size = 278240, upload-time = "2025-09-25T19:50:23.305Z" },
+ { url = "https://files.pythonhosted.org/packages/89/48/44590e3fc158620f680a978aafe8f87a4c4320da81ed11552f0323aa9a57/bcrypt-5.0.0-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:db99dca3b1fdc3db87d7c57eac0c82281242d1eabf19dcb8a6b10eb29a2e72d1", size = 311152, upload-time = "2025-09-25T19:50:24.597Z" },
+ { url = "https://files.pythonhosted.org/packages/5f/85/e4fbfc46f14f47b0d20493669a625da5827d07e8a88ee460af6cd9768b44/bcrypt-5.0.0-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:5feebf85a9cefda32966d8171f5db7e3ba964b77fdfe31919622256f80f9cf42", size = 313284, upload-time = "2025-09-25T19:50:26.268Z" },
+ { url = "https://files.pythonhosted.org/packages/25/ae/479f81d3f4594456a01ea2f05b132a519eff9ab5768a70430fa1132384b1/bcrypt-5.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:3ca8a166b1140436e058298a34d88032ab62f15aae1c598580333dc21d27ef10", size = 341643, upload-time = "2025-09-25T19:50:28.02Z" },
+ { url = "https://files.pythonhosted.org/packages/df/d2/36a086dee1473b14276cd6ea7f61aef3b2648710b5d7f1c9e032c29b859f/bcrypt-5.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:61afc381250c3182d9078551e3ac3a41da14154fbff647ddf52a769f588c4172", size = 359698, upload-time = "2025-09-25T19:50:31.347Z" },
+ { url = "https://files.pythonhosted.org/packages/c0/f6/688d2cd64bfd0b14d805ddb8a565e11ca1fb0fd6817175d58b10052b6d88/bcrypt-5.0.0-cp39-abi3-win32.whl", hash = "sha256:64d7ce196203e468c457c37ec22390f1a61c85c6f0b8160fd752940ccfb3a683", size = 153725, upload-time = "2025-09-25T19:50:34.384Z" },
+ { url = "https://files.pythonhosted.org/packages/9f/b9/9d9a641194a730bda138b3dfe53f584d61c58cd5230e37566e83ec2ffa0d/bcrypt-5.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:64ee8434b0da054d830fa8e89e1c8bf30061d539044a39524ff7dec90481e5c2", size = 150912, upload-time = "2025-09-25T19:50:35.69Z" },
+ { url = "https://files.pythonhosted.org/packages/27/44/d2ef5e87509158ad2187f4dd0852df80695bb1ee0cfe0a684727b01a69e0/bcrypt-5.0.0-cp39-abi3-win_arm64.whl", hash = "sha256:f2347d3534e76bf50bca5500989d6c1d05ed64b440408057a37673282c654927", size = 144953, upload-time = "2025-09-25T19:50:37.32Z" },
+ { url = "https://files.pythonhosted.org/packages/8a/75/4aa9f5a4d40d762892066ba1046000b329c7cd58e888a6db878019b282dc/bcrypt-5.0.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:7edda91d5ab52b15636d9c30da87d2cc84f426c72b9dba7a9b4fe142ba11f534", size = 271180, upload-time = "2025-09-25T19:50:38.575Z" },
+ { url = "https://files.pythonhosted.org/packages/54/79/875f9558179573d40a9cc743038ac2bf67dfb79cecb1e8b5d70e88c94c3d/bcrypt-5.0.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:046ad6db88edb3c5ece4369af997938fb1c19d6a699b9c1b27b0db432faae4c4", size = 273791, upload-time = "2025-09-25T19:50:39.913Z" },
+ { url = "https://files.pythonhosted.org/packages/bc/fe/975adb8c216174bf70fc17535f75e85ac06ed5252ea077be10d9cff5ce24/bcrypt-5.0.0-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:dcd58e2b3a908b5ecc9b9df2f0085592506ac2d5110786018ee5e160f28e0911", size = 270746, upload-time = "2025-09-25T19:50:43.306Z" },
+ { url = "https://files.pythonhosted.org/packages/e4/f8/972c96f5a2b6c4b3deca57009d93e946bbdbe2241dca9806d502f29dd3ee/bcrypt-5.0.0-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:6b8f520b61e8781efee73cba14e3e8c9556ccfb375623f4f97429544734545b4", size = 273375, upload-time = "2025-09-25T19:50:45.43Z" },
]
[[package]]
name = "beautifulsoup4"
-version = "4.13.5"
+version = "4.14.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "soupsieve" },
{ name = "typing-extensions" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/85/2e/3e5079847e653b1f6dc647aa24549d68c6addb4c595cc0d902d1b19308ad/beautifulsoup4-4.13.5.tar.gz", hash = "sha256:5e70131382930e7c3de33450a2f54a63d5e4b19386eab43a5b34d594268f3695", size = 622954, upload-time = "2025-08-24T14:06:13.168Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/8a/bb/3387a5bf72121e1e2cd9223d20598c2fb599ef63517ff3e6ec526d8c4928/beautifulsoup4-4.14.0.tar.gz", hash = "sha256:e6150e53c8a52fd4f3b9b28839f8f0fb7c7f029d3c953a50b1762b0947c3cf85", size = 625697, upload-time = "2025-09-27T17:22:17.532Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/04/eb/f4151e0c7377a6e08a38108609ba5cede57986802757848688aeedd1b9e8/beautifulsoup4-4.13.5-py3-none-any.whl", hash = "sha256:642085eaa22233aceadff9c69651bc51e8bf3f874fb6d7104ece2beb24b47c4a", size = 105113, upload-time = "2025-08-24T14:06:14.884Z" },
+ { url = "https://files.pythonhosted.org/packages/28/4f/3e23dfc8b4951103028d30f29e17aa703a87564abd71bc405964c36326dc/beautifulsoup4-4.14.0-py3-none-any.whl", hash = "sha256:aee96fbccdf2d2a8d1288b2afa51fc76bb60823b7881a50fb1ed5f711d1a7d73", size = 106466, upload-time = "2025-09-27T17:22:16.13Z" },
]
[[package]]
@@ -370,30 +394,30 @@ wheels = [
[[package]]
name = "boto3"
-version = "1.40.39"
+version = "1.40.40"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "botocore" },
{ name = "jmespath" },
{ name = "s3transfer" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/fe/5b/2b79e27e19b5dc0360e07cb40c6364dd8f7104fe7b4016ae65a527a2535d/boto3-1.40.39.tar.gz", hash = "sha256:27ca06d4d6f838b056b4935c9eceb92c8d125dbe0e895c5583bcf7130627dcd2", size = 111587, upload-time = "2025-09-25T19:20:02.534Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/3c/12/1a31b36802d0f33bc6982ab8b7e6437d75ef3c179abe6c53d4d8f7b4248f/boto3-1.40.40.tar.gz", hash = "sha256:f384d3a0410d0f1a4d4ae7aa69c41d0549c6ca5a76667dc25fc97d50ad6db740", size = 111606, upload-time = "2025-09-26T19:23:46.923Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/f1/7e/72b4f38c85ea879b27f90ad0d51f26b26e320bbc86b75664c0cf409d3d84/boto3-1.40.39-py3-none-any.whl", hash = "sha256:e2cab5606269fe9f428981892aa592b7e0c087a038774475fa4cd6c8b5fe0a99", size = 139345, upload-time = "2025-09-25T19:20:00.381Z" },
+ { url = "https://files.pythonhosted.org/packages/90/69/c65566dbdaaea3af0c23f7731ab0f185a38b593fd449d2423374150dbfe0/boto3-1.40.40-py3-none-any.whl", hash = "sha256:385904de68623e1c341bdc095d94a30006843032c912adeb1e0752a343632ec6", size = 139340, upload-time = "2025-09-26T19:23:45.557Z" },
]
[[package]]
name = "botocore"
-version = "1.40.39"
+version = "1.40.40"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "jmespath" },
{ name = "python-dateutil" },
{ name = "urllib3" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/d8/30/44883126961d895ff8b69b8f7d1b2c60e9a348e38d4354ee597b69b8b5f8/botocore-1.40.39.tar.gz", hash = "sha256:c6efc55cac341811ba90c693d20097db6e2ce903451d94496bccd3f672b1709d", size = 14356776, upload-time = "2025-09-25T19:19:49.842Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/83/5a/43a7fea503ad14fa79819f2b3103a38977fb587a3663d1ac6e958fccf592/botocore-1.40.40.tar.gz", hash = "sha256:78eb121a16a6481ed0f6e1aebe53a4f23aa121f34466846c13a5ca48fa980e31", size = 14363370, upload-time = "2025-09-26T19:23:37.853Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/b2/57/2400d0cf030650b02a25a2aeb87729e51cb2aa8d97a2b4d9fec05c671f0b/botocore-1.40.39-py3-none-any.whl", hash = "sha256:144e0e887a9fc198c6772f660fc006028bd1a9ce5eea3caddd848db3e421bc79", size = 14025786, upload-time = "2025-09-25T19:19:46.177Z" },
+ { url = "https://files.pythonhosted.org/packages/ed/5e/3bbf6d34cbf307c1b9e58e0204ceba2d35bbc0c93b4e3b3cc895aae0a5fd/botocore-1.40.40-py3-none-any.whl", hash = "sha256:68506142b3cde93145ef3ee0268f2444f2b68ada225a151f714092bbd3d6516a", size = 14031738, upload-time = "2025-09-26T19:23:35.475Z" },
]
[[package]]
@@ -647,7 +671,7 @@ wheels = [
[[package]]
name = "crewai"
-source = { editable = "." }
+source = { editable = "lib/crewai" }
dependencies = [
{ name = "appdirs" },
{ name = "blinker" },
@@ -715,26 +739,6 @@ watson = [
{ name = "ibm-watsonx-ai" },
]
-[package.dev-dependencies]
-dev = [
- { name = "bandit" },
- { name = "mypy" },
- { name = "pre-commit" },
- { name = "pytest" },
- { name = "pytest-asyncio" },
- { name = "pytest-randomly" },
- { name = "pytest-recording" },
- { name = "pytest-split" },
- { name = "pytest-subprocess" },
- { name = "pytest-timeout" },
- { name = "pytest-xdist" },
- { name = "ruff" },
- { name = "types-appdirs" },
- { name = "types-pyyaml" },
- { name = "types-regex" },
- { name = "types-requests" },
-]
-
[package.metadata]
requires-dist = [
{ name = "aisuite", marker = "extra == 'aisuite'", specifier = ">=0.1.10" },
@@ -778,29 +782,9 @@ requires-dist = [
]
provides-extras = ["aisuite", "aws", "docling", "embeddings", "mem0", "openpyxl", "pandas", "pdfplumber", "qdrant", "tools", "voyageai", "watson"]
-[package.metadata.requires-dev]
-dev = [
- { name = "bandit", specifier = ">=1.8.6" },
- { name = "mypy", specifier = ">=1.18.2" },
- { name = "pre-commit", specifier = ">=4.3.0" },
- { name = "pytest", specifier = ">=8.4.2" },
- { name = "pytest-asyncio", specifier = ">=1.2.0" },
- { name = "pytest-randomly", specifier = ">=4.0.1" },
- { name = "pytest-recording", specifier = ">=0.13.4" },
- { name = "pytest-split", specifier = ">=0.10.0" },
- { name = "pytest-subprocess", specifier = ">=1.5.3" },
- { name = "pytest-timeout", specifier = ">=2.4.0" },
- { name = "pytest-xdist", specifier = ">=3.8.0" },
- { name = "ruff", specifier = ">=0.13.1" },
- { name = "types-appdirs", specifier = "==1.4.*" },
- { name = "types-pyyaml", specifier = "==6.0.*" },
- { name = "types-regex", specifier = "==2024.11.6.*" },
- { name = "types-requests", specifier = "==2.32.*" },
-]
-
[[package]]
name = "crewai-tools"
-version = "0.74.0"
+version = "0.75.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "beautifulsoup4" },
@@ -815,9 +799,9 @@ dependencies = [
{ name = "tiktoken" },
{ name = "youtube-transcript-api" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/f4/0e/f273a7b880f553f36391dbe4870d9079cd351c3e35765bb752d6de62622b/crewai_tools-0.74.0.tar.gz", hash = "sha256:64c1b627045312bba59d5cf8f624fce8c4bb82cfb6c6c627882208d9c7e3c058", size = 1126948, upload-time = "2025-09-25T23:31:07.83Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/98/16/c897ed771235c6da4a6bc0c6f0baa12edc2b42d2a300447cd84588363f71/crewai_tools-0.75.0.tar.gz", hash = "sha256:9fffc498c93d35b7d19064caa74c6c8293001018f5aa144fb95f8168f2e75f49", size = 1134823, upload-time = "2025-09-26T18:19:39.252Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/b8/86/e3486cf2c7f155c46cf4599914d6fcf0f69ad161984896855bafa1675fcb/crewai_tools-0.74.0-py3-none-any.whl", hash = "sha256:16f4a95db499a04a1ed5ac34c91766448b3b6d159ce2c663f55f999ddd6f9a7d", size = 739647, upload-time = "2025-09-25T23:31:06.39Z" },
+ { url = "https://files.pythonhosted.org/packages/90/39/a5b64857e7f862ff7736d4662f9ec46ae87be024f9d0460a328f5be3fd6f/crewai_tools-0.75.0-py3-none-any.whl", hash = "sha256:92abf7c0ca2650ff10318b553b513e97029e199a10f11ac575a5f9836d495408", size = 739639, upload-time = "2025-09-26T18:19:36.271Z" },
]
[[package]]
@@ -1135,7 +1119,7 @@ name = "exceptiongroup"
version = "1.3.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "typing-extensions", marker = "python_full_version < '3.11'" },
+ { name = "typing-extensions", marker = "python_full_version < '3.13'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/0b/9f/a65090624ecf468cdca03533906e7c69ed7588582240cfe7cc9e770b50eb/exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88", size = 29749, upload-time = "2025-05-10T17:42:51.123Z" }
wheels = [
@@ -1396,53 +1380,53 @@ wheels = [
[[package]]
name = "grpcio"
-version = "1.75.0"
+version = "1.75.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "typing-extensions" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/91/88/fe2844eefd3d2188bc0d7a2768c6375b46dfd96469ea52d8aeee8587d7e0/grpcio-1.75.0.tar.gz", hash = "sha256:b989e8b09489478c2d19fecc744a298930f40d8b27c3638afbfe84d22f36ce4e", size = 12722485, upload-time = "2025-09-16T09:20:21.731Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/9d/f7/8963848164c7604efb3a3e6ee457fdb3a469653e19002bd24742473254f8/grpcio-1.75.1.tar.gz", hash = "sha256:3e81d89ece99b9ace23a6916880baca613c03a799925afb2857887efa8b1b3d2", size = 12731327, upload-time = "2025-09-26T09:03:36.887Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/23/90/91f780f6cb8b2aa1bc8b8f8561a4e9d3bfe5dea10a4532843f2b044e18ac/grpcio-1.75.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:1ec9cbaec18d9597c718b1ed452e61748ac0b36ba350d558f9ded1a94cc15ec7", size = 5696373, upload-time = "2025-09-16T09:18:07.971Z" },
- { url = "https://files.pythonhosted.org/packages/fc/c6/eaf9065ff15d0994e1674e71e1ca9542ee47f832b4df0fde1b35e5641fa1/grpcio-1.75.0-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:7ee5ee42bfae8238b66a275f9ebcf6f295724375f2fa6f3b52188008b6380faf", size = 11465905, upload-time = "2025-09-16T09:18:12.383Z" },
- { url = "https://files.pythonhosted.org/packages/8a/21/ae33e514cb7c3f936b378d1c7aab6d8e986814b3489500c5cc860c48ce88/grpcio-1.75.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:9146e40378f551eed66c887332afc807fcce593c43c698e21266a4227d4e20d2", size = 6282149, upload-time = "2025-09-16T09:18:15.427Z" },
- { url = "https://files.pythonhosted.org/packages/d5/46/dff6344e6f3e81707bc87bba796592036606aca04b6e9b79ceec51902b80/grpcio-1.75.0-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:0c40f368541945bb664857ecd7400acb901053a1abbcf9f7896361b2cfa66798", size = 6940277, upload-time = "2025-09-16T09:18:17.564Z" },
- { url = "https://files.pythonhosted.org/packages/9a/5f/e52cb2c16e097d950c36e7bb2ef46a3b2e4c7ae6b37acb57d88538182b85/grpcio-1.75.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:50a6e43a9adc6938e2a16c9d9f8a2da9dd557ddd9284b73b07bd03d0e098d1e9", size = 6460422, upload-time = "2025-09-16T09:18:19.657Z" },
- { url = "https://files.pythonhosted.org/packages/fd/16/527533f0bd9cace7cd800b7dae903e273cc987fc472a398a4bb6747fec9b/grpcio-1.75.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:dce15597ca11913b78e1203c042d5723e3ea7f59e7095a1abd0621be0e05b895", size = 7089969, upload-time = "2025-09-16T09:18:21.73Z" },
- { url = "https://files.pythonhosted.org/packages/88/4f/1d448820bc88a2be7045aac817a59ba06870e1ebad7ed19525af7ac079e7/grpcio-1.75.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:851194eec47755101962da423f575ea223c9dd7f487828fe5693920e8745227e", size = 8033548, upload-time = "2025-09-16T09:18:23.819Z" },
- { url = "https://files.pythonhosted.org/packages/37/00/19e87ab12c8b0d73a252eef48664030de198514a4e30bdf337fa58bcd4dd/grpcio-1.75.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ca123db0813eef80625a4242a0c37563cb30a3edddebe5ee65373854cf187215", size = 7487161, upload-time = "2025-09-16T09:18:25.934Z" },
- { url = "https://files.pythonhosted.org/packages/37/d0/f7b9deaa6ccca9997fa70b4e143cf976eaec9476ecf4d05f7440ac400635/grpcio-1.75.0-cp310-cp310-win32.whl", hash = "sha256:222b0851e20c04900c63f60153503e918b08a5a0fad8198401c0b1be13c6815b", size = 3946254, upload-time = "2025-09-16T09:18:28.42Z" },
- { url = "https://files.pythonhosted.org/packages/6d/42/8d04744c7dc720cc9805a27f879cbf7043bb5c78dce972f6afb8613860de/grpcio-1.75.0-cp310-cp310-win_amd64.whl", hash = "sha256:bb58e38a50baed9b21492c4b3f3263462e4e37270b7ea152fc10124b4bd1c318", size = 4640072, upload-time = "2025-09-16T09:18:30.426Z" },
- { url = "https://files.pythonhosted.org/packages/95/b7/a6f42596fc367656970f5811e5d2d9912ca937aa90621d5468a11680ef47/grpcio-1.75.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:7f89d6d0cd43170a80ebb4605cad54c7d462d21dc054f47688912e8bf08164af", size = 5699769, upload-time = "2025-09-16T09:18:32.536Z" },
- { url = "https://files.pythonhosted.org/packages/c2/42/284c463a311cd2c5f804fd4fdbd418805460bd5d702359148dd062c1685d/grpcio-1.75.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:cb6c5b075c2d092f81138646a755f0dad94e4622300ebef089f94e6308155d82", size = 11480362, upload-time = "2025-09-16T09:18:35.562Z" },
- { url = "https://files.pythonhosted.org/packages/0b/10/60d54d5a03062c3ae91bddb6e3acefe71264307a419885f453526d9203ff/grpcio-1.75.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:494dcbade5606128cb9f530ce00331a90ecf5e7c5b243d373aebdb18e503c346", size = 6284753, upload-time = "2025-09-16T09:18:38.055Z" },
- { url = "https://files.pythonhosted.org/packages/cf/af/381a4bfb04de5e2527819452583e694df075c7a931e9bf1b2a603b593ab2/grpcio-1.75.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:050760fd29c8508844a720f06c5827bb00de8f5e02f58587eb21a4444ad706e5", size = 6944103, upload-time = "2025-09-16T09:18:40.844Z" },
- { url = "https://files.pythonhosted.org/packages/16/18/c80dd7e1828bd6700ce242c1616871927eef933ed0c2cee5c636a880e47b/grpcio-1.75.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:266fa6209b68a537b2728bb2552f970e7e78c77fe43c6e9cbbe1f476e9e5c35f", size = 6464036, upload-time = "2025-09-16T09:18:43.351Z" },
- { url = "https://files.pythonhosted.org/packages/79/3f/78520c7ed9ccea16d402530bc87958bbeb48c42a2ec8032738a7864d38f8/grpcio-1.75.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:06d22e1d8645e37bc110f4c589cb22c283fd3de76523065f821d6e81de33f5d4", size = 7097455, upload-time = "2025-09-16T09:18:45.465Z" },
- { url = "https://files.pythonhosted.org/packages/ad/69/3cebe4901a865eb07aefc3ee03a02a632e152e9198dadf482a7faf926f31/grpcio-1.75.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9880c323595d851292785966cadb6c708100b34b163cab114e3933f5773cba2d", size = 8037203, upload-time = "2025-09-16T09:18:47.878Z" },
- { url = "https://files.pythonhosted.org/packages/04/ed/1e483d1eba5032642c10caf28acf07ca8de0508244648947764956db346a/grpcio-1.75.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:55a2d5ae79cd0f68783fb6ec95509be23746e3c239290b2ee69c69a38daa961a", size = 7492085, upload-time = "2025-09-16T09:18:50.907Z" },
- { url = "https://files.pythonhosted.org/packages/ee/65/6ef676aa7dbd9578dfca990bb44d41a49a1e36344ca7d79de6b59733ba96/grpcio-1.75.0-cp311-cp311-win32.whl", hash = "sha256:352dbdf25495eef584c8de809db280582093bc3961d95a9d78f0dfb7274023a2", size = 3944697, upload-time = "2025-09-16T09:18:53.427Z" },
- { url = "https://files.pythonhosted.org/packages/0d/83/b753373098b81ec5cb01f71c21dfd7aafb5eb48a1566d503e9fd3c1254fe/grpcio-1.75.0-cp311-cp311-win_amd64.whl", hash = "sha256:678b649171f229fb16bda1a2473e820330aa3002500c4f9fd3a74b786578e90f", size = 4642235, upload-time = "2025-09-16T09:18:56.095Z" },
- { url = "https://files.pythonhosted.org/packages/0d/93/a1b29c2452d15cecc4a39700fbf54721a3341f2ddbd1bd883f8ec0004e6e/grpcio-1.75.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:fa35ccd9501ffdd82b861809cbfc4b5b13f4b4c5dc3434d2d9170b9ed38a9054", size = 5661861, upload-time = "2025-09-16T09:18:58.748Z" },
- { url = "https://files.pythonhosted.org/packages/b8/ce/7280df197e602d14594e61d1e60e89dfa734bb59a884ba86cdd39686aadb/grpcio-1.75.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:0fcb77f2d718c1e58cc04ef6d3b51e0fa3b26cf926446e86c7eba105727b6cd4", size = 11459982, upload-time = "2025-09-16T09:19:01.211Z" },
- { url = "https://files.pythonhosted.org/packages/7c/9b/37e61349771f89b543a0a0bbc960741115ea8656a2414bfb24c4de6f3dd7/grpcio-1.75.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:36764a4ad9dc1eb891042fab51e8cdf7cc014ad82cee807c10796fb708455041", size = 6239680, upload-time = "2025-09-16T09:19:04.443Z" },
- { url = "https://files.pythonhosted.org/packages/a6/66/f645d9d5b22ca307f76e71abc83ab0e574b5dfef3ebde4ec8b865dd7e93e/grpcio-1.75.0-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:725e67c010f63ef17fc052b261004942763c0b18dcd84841e6578ddacf1f9d10", size = 6908511, upload-time = "2025-09-16T09:19:07.884Z" },
- { url = "https://files.pythonhosted.org/packages/e6/9a/34b11cd62d03c01b99068e257595804c695c3c119596c7077f4923295e19/grpcio-1.75.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:91fbfc43f605c5ee015c9056d580a70dd35df78a7bad97e05426795ceacdb59f", size = 6429105, upload-time = "2025-09-16T09:19:10.085Z" },
- { url = "https://files.pythonhosted.org/packages/1a/46/76eaceaad1f42c1e7e6a5b49a61aac40fc5c9bee4b14a1630f056ac3a57e/grpcio-1.75.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7a9337ac4ce61c388e02019d27fa837496c4b7837cbbcec71b05934337e51531", size = 7060578, upload-time = "2025-09-16T09:19:12.283Z" },
- { url = "https://files.pythonhosted.org/packages/3d/82/181a0e3f1397b6d43239e95becbeb448563f236c0db11ce990f073b08d01/grpcio-1.75.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ee16e232e3d0974750ab5f4da0ab92b59d6473872690b5e40dcec9a22927f22e", size = 8003283, upload-time = "2025-09-16T09:19:15.601Z" },
- { url = "https://files.pythonhosted.org/packages/de/09/a335bca211f37a3239be4b485e3c12bf3da68d18b1f723affdff2b9e9680/grpcio-1.75.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:55dfb9122973cc69520b23d39867726722cafb32e541435707dc10249a1bdbc6", size = 7460319, upload-time = "2025-09-16T09:19:18.409Z" },
- { url = "https://files.pythonhosted.org/packages/aa/59/6330105cdd6bc4405e74c96838cd7e148c3653ae3996e540be6118220c79/grpcio-1.75.0-cp312-cp312-win32.whl", hash = "sha256:fb64dd62face3d687a7b56cd881e2ea39417af80f75e8b36f0f81dfd93071651", size = 3934011, upload-time = "2025-09-16T09:19:21.013Z" },
- { url = "https://files.pythonhosted.org/packages/ff/14/e1309a570b7ebdd1c8ca24c4df6b8d6690009fa8e0d997cb2c026ce850c9/grpcio-1.75.0-cp312-cp312-win_amd64.whl", hash = "sha256:6b365f37a9c9543a9e91c6b4103d68d38d5bcb9965b11d5092b3c157bd6a5ee7", size = 4637934, upload-time = "2025-09-16T09:19:23.19Z" },
- { url = "https://files.pythonhosted.org/packages/00/64/dbce0ffb6edaca2b292d90999dd32a3bd6bc24b5b77618ca28440525634d/grpcio-1.75.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:1bb78d052948d8272c820bb928753f16a614bb2c42fbf56ad56636991b427518", size = 5666860, upload-time = "2025-09-16T09:19:25.417Z" },
- { url = "https://files.pythonhosted.org/packages/f3/e6/da02c8fa882ad3a7f868d380bb3da2c24d35dd983dd12afdc6975907a352/grpcio-1.75.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:9dc4a02796394dd04de0b9673cb79a78901b90bb16bf99ed8cb528c61ed9372e", size = 11455148, upload-time = "2025-09-16T09:19:28.615Z" },
- { url = "https://files.pythonhosted.org/packages/ba/a0/84f87f6c2cf2a533cfce43b2b620eb53a51428ec0c8fe63e5dd21d167a70/grpcio-1.75.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:437eeb16091d31498585d73b133b825dc80a8db43311e332c08facf820d36894", size = 6243865, upload-time = "2025-09-16T09:19:31.342Z" },
- { url = "https://files.pythonhosted.org/packages/be/12/53da07aa701a4839dd70d16e61ce21ecfcc9e929058acb2f56e9b2dd8165/grpcio-1.75.0-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:c2c39984e846bd5da45c5f7bcea8fafbe47c98e1ff2b6f40e57921b0c23a52d0", size = 6915102, upload-time = "2025-09-16T09:19:33.658Z" },
- { url = "https://files.pythonhosted.org/packages/5b/c0/7eaceafd31f52ec4bf128bbcf36993b4bc71f64480f3687992ddd1a6e315/grpcio-1.75.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:38d665f44b980acdbb2f0e1abf67605ba1899f4d2443908df9ec8a6f26d2ed88", size = 6432042, upload-time = "2025-09-16T09:19:36.583Z" },
- { url = "https://files.pythonhosted.org/packages/6b/12/a2ce89a9f4fc52a16ed92951f1b05f53c17c4028b3db6a4db7f08332bee8/grpcio-1.75.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2e8e752ab5cc0a9c5b949808c000ca7586223be4f877b729f034b912364c3964", size = 7062984, upload-time = "2025-09-16T09:19:39.163Z" },
- { url = "https://files.pythonhosted.org/packages/55/a6/2642a9b491e24482d5685c0f45c658c495a5499b43394846677abed2c966/grpcio-1.75.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:3a6788b30aa8e6f207c417874effe3f79c2aa154e91e78e477c4825e8b431ce0", size = 8001212, upload-time = "2025-09-16T09:19:41.726Z" },
- { url = "https://files.pythonhosted.org/packages/19/20/530d4428750e9ed6ad4254f652b869a20a40a276c1f6817b8c12d561f5ef/grpcio-1.75.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ffc33e67cab6141c54e75d85acd5dec616c5095a957ff997b4330a6395aa9b51", size = 7457207, upload-time = "2025-09-16T09:19:44.368Z" },
- { url = "https://files.pythonhosted.org/packages/e2/6f/843670007e0790af332a21468d10059ea9fdf97557485ae633b88bd70efc/grpcio-1.75.0-cp313-cp313-win32.whl", hash = "sha256:c8cfc780b7a15e06253aae5f228e1e84c0d3c4daa90faf5bc26b751174da4bf9", size = 3934235, upload-time = "2025-09-16T09:19:46.815Z" },
- { url = "https://files.pythonhosted.org/packages/4b/92/c846b01b38fdf9e2646a682b12e30a70dc7c87dfe68bd5e009ee1501c14b/grpcio-1.75.0-cp313-cp313-win_amd64.whl", hash = "sha256:0c91d5b16eff3cbbe76b7a1eaaf3d91e7a954501e9d4f915554f87c470475c3d", size = 4637558, upload-time = "2025-09-16T09:19:49.698Z" },
+ { url = "https://files.pythonhosted.org/packages/51/57/89fd829fb00a6d0bee3fbcb2c8a7aa0252d908949b6ab58bfae99d39d77e/grpcio-1.75.1-cp310-cp310-linux_armv7l.whl", hash = "sha256:1712b5890b22547dd29f3215c5788d8fc759ce6dd0b85a6ba6e2731f2d04c088", size = 5705534, upload-time = "2025-09-26T09:00:52.225Z" },
+ { url = "https://files.pythonhosted.org/packages/76/dd/2f8536e092551cf804e96bcda79ecfbc51560b214a0f5b7ebc253f0d4664/grpcio-1.75.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:8d04e101bba4b55cea9954e4aa71c24153ba6182481b487ff376da28d4ba46cf", size = 11484103, upload-time = "2025-09-26T09:00:59.457Z" },
+ { url = "https://files.pythonhosted.org/packages/9a/3d/affe2fb897804c98d56361138e73786af8f4dd876b9d9851cfe6342b53c8/grpcio-1.75.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:683cfc70be0c1383449097cba637317e4737a357cfc185d887fd984206380403", size = 6289953, upload-time = "2025-09-26T09:01:03.699Z" },
+ { url = "https://files.pythonhosted.org/packages/87/aa/0f40b7f47a0ff10d7e482bc3af22dac767c7ff27205915f08962d5ca87a2/grpcio-1.75.1-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:491444c081a54dcd5e6ada57314321ae526377f498d4aa09d975c3241c5b9e1c", size = 6949785, upload-time = "2025-09-26T09:01:07.504Z" },
+ { url = "https://files.pythonhosted.org/packages/a5/45/b04407e44050781821c84f26df71b3f7bc469923f92f9f8bc27f1406dbcc/grpcio-1.75.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ce08d4e112d0d38487c2b631ec8723deac9bc404e9c7b1011426af50a79999e4", size = 6465708, upload-time = "2025-09-26T09:01:11.028Z" },
+ { url = "https://files.pythonhosted.org/packages/09/3e/4ae3ec0a4d20dcaafbb6e597defcde06399ccdc5b342f607323f3b47f0a3/grpcio-1.75.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5a2acda37fc926ccc4547977ac3e56b1df48fe200de968e8c8421f6e3093df6c", size = 7100912, upload-time = "2025-09-26T09:01:14.393Z" },
+ { url = "https://files.pythonhosted.org/packages/34/3f/a9085dab5c313bb0cb853f222d095e2477b9b8490a03634cdd8d19daa5c3/grpcio-1.75.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:745c5fe6bf05df6a04bf2d11552c7d867a2690759e7ab6b05c318a772739bd75", size = 8042497, upload-time = "2025-09-26T09:01:17.759Z" },
+ { url = "https://files.pythonhosted.org/packages/c3/87/ea54eba931ab9ed3f999ba95f5d8d01a20221b664725bab2fe93e3dee848/grpcio-1.75.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:259526a7159d39e2db40d566fe3e8f8e034d0fb2db5bf9c00e09aace655a4c2b", size = 7493284, upload-time = "2025-09-26T09:01:20.896Z" },
+ { url = "https://files.pythonhosted.org/packages/b7/5e/287f1bf1a998f4ac46ef45d518de3b5da08b4e86c7cb5e1108cee30b0282/grpcio-1.75.1-cp310-cp310-win32.whl", hash = "sha256:f4b29b9aabe33fed5df0a85e5f13b09ff25e2c05bd5946d25270a8bd5682dac9", size = 3950809, upload-time = "2025-09-26T09:01:23.695Z" },
+ { url = "https://files.pythonhosted.org/packages/a4/a2/3cbfc06a4ec160dc77403b29ecb5cf76ae329eb63204fea6a7c715f1dfdb/grpcio-1.75.1-cp310-cp310-win_amd64.whl", hash = "sha256:cf2e760978dcce7ff7d465cbc7e276c3157eedc4c27aa6de7b594c7a295d3d61", size = 4644704, upload-time = "2025-09-26T09:01:25.763Z" },
+ { url = "https://files.pythonhosted.org/packages/0c/3c/35ca9747473a306bfad0cee04504953f7098527cd112a4ab55c55af9e7bd/grpcio-1.75.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:573855ca2e58e35032aff30bfbd1ee103fbcf4472e4b28d4010757700918e326", size = 5709761, upload-time = "2025-09-26T09:01:28.528Z" },
+ { url = "https://files.pythonhosted.org/packages/c9/2c/ecbcb4241e4edbe85ac2663f885726fea0e947767401288b50d8fdcb9200/grpcio-1.75.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:6a4996a2c8accc37976dc142d5991adf60733e223e5c9a2219e157dc6a8fd3a2", size = 11496691, upload-time = "2025-09-26T09:01:31.214Z" },
+ { url = "https://files.pythonhosted.org/packages/81/40/bc07aee2911f0d426fa53fe636216100c31a8ea65a400894f280274cb023/grpcio-1.75.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b1ea1bbe77ecbc1be00af2769f4ae4a88ce93be57a4f3eebd91087898ed749f9", size = 6296084, upload-time = "2025-09-26T09:01:34.596Z" },
+ { url = "https://files.pythonhosted.org/packages/b8/d1/10c067f6c67396cbf46448b80f27583b5e8c4b46cdfbe18a2a02c2c2f290/grpcio-1.75.1-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:e5b425aee54cc5e3e3c58f00731e8a33f5567965d478d516d35ef99fd648ab68", size = 6950403, upload-time = "2025-09-26T09:01:36.736Z" },
+ { url = "https://files.pythonhosted.org/packages/3f/42/5f628abe360b84dfe8dd8f32be6b0606dc31dc04d3358eef27db791ea4d5/grpcio-1.75.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0049a7bf547dafaeeb1db17079ce79596c298bfe308fc084d023c8907a845b9a", size = 6470166, upload-time = "2025-09-26T09:01:39.474Z" },
+ { url = "https://files.pythonhosted.org/packages/c3/93/a24035080251324019882ee2265cfde642d6476c0cf8eb207fc693fcebdc/grpcio-1.75.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5b8ea230c7f77c0a1a3208a04a1eda164633fb0767b4cefd65a01079b65e5b1f", size = 7107828, upload-time = "2025-09-26T09:01:41.782Z" },
+ { url = "https://files.pythonhosted.org/packages/e4/f8/d18b984c1c9ba0318e3628dbbeb6af77a5007f02abc378c845070f2d3edd/grpcio-1.75.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:36990d629c3c9fb41e546414e5af52d0a7af37ce7113d9682c46d7e2919e4cca", size = 8045421, upload-time = "2025-09-26T09:01:45.835Z" },
+ { url = "https://files.pythonhosted.org/packages/7e/b6/4bf9aacff45deca5eac5562547ed212556b831064da77971a4e632917da3/grpcio-1.75.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b10ad908118d38c2453ade7ff790e5bce36580c3742919007a2a78e3a1e521ca", size = 7503290, upload-time = "2025-09-26T09:01:49.28Z" },
+ { url = "https://files.pythonhosted.org/packages/3b/15/d8d69d10223cb54c887a2180bd29fe5fa2aec1d4995c8821f7aa6eaf72e4/grpcio-1.75.1-cp311-cp311-win32.whl", hash = "sha256:d6be2b5ee7bea656c954dcf6aa8093c6f0e6a3ef9945c99d99fcbfc88c5c0bfe", size = 3950631, upload-time = "2025-09-26T09:01:51.23Z" },
+ { url = "https://files.pythonhosted.org/packages/8a/40/7b8642d45fff6f83300c24eaac0380a840e5e7fe0e8d80afd31b99d7134e/grpcio-1.75.1-cp311-cp311-win_amd64.whl", hash = "sha256:61c692fb05956b17dd6d1ab480f7f10ad0536dba3bc8fd4e3c7263dc244ed772", size = 4646131, upload-time = "2025-09-26T09:01:53.266Z" },
+ { url = "https://files.pythonhosted.org/packages/3a/81/42be79e73a50aaa20af66731c2defeb0e8c9008d9935a64dd8ea8e8c44eb/grpcio-1.75.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:7b888b33cd14085d86176b1628ad2fcbff94cfbbe7809465097aa0132e58b018", size = 5668314, upload-time = "2025-09-26T09:01:55.424Z" },
+ { url = "https://files.pythonhosted.org/packages/c5/a7/3686ed15822fedc58c22f82b3a7403d9faf38d7c33de46d4de6f06e49426/grpcio-1.75.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:8775036efe4ad2085975531d221535329f5dac99b6c2a854a995456098f99546", size = 11476125, upload-time = "2025-09-26T09:01:57.927Z" },
+ { url = "https://files.pythonhosted.org/packages/14/85/21c71d674f03345ab183c634ecd889d3330177e27baea8d5d247a89b6442/grpcio-1.75.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bb658f703468d7fbb5dcc4037c65391b7dc34f808ac46ed9136c24fc5eeb041d", size = 6246335, upload-time = "2025-09-26T09:02:00.76Z" },
+ { url = "https://files.pythonhosted.org/packages/fd/db/3beb661bc56a385ae4fa6b0e70f6b91ac99d47afb726fe76aaff87ebb116/grpcio-1.75.1-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:4b7177a1cdb3c51b02b0c0a256b0a72fdab719600a693e0e9037949efffb200b", size = 6916309, upload-time = "2025-09-26T09:02:02.894Z" },
+ { url = "https://files.pythonhosted.org/packages/1e/9c/eda9fe57f2b84343d44c1b66cf3831c973ba29b078b16a27d4587a1fdd47/grpcio-1.75.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7d4fa6ccc3ec2e68a04f7b883d354d7fea22a34c44ce535a2f0c0049cf626ddf", size = 6435419, upload-time = "2025-09-26T09:02:05.055Z" },
+ { url = "https://files.pythonhosted.org/packages/c3/b8/090c98983e0a9d602e3f919a6e2d4e470a8b489452905f9a0fa472cac059/grpcio-1.75.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3d86880ecaeb5b2f0a8afa63824de93adb8ebe4e49d0e51442532f4e08add7d6", size = 7064893, upload-time = "2025-09-26T09:02:07.275Z" },
+ { url = "https://files.pythonhosted.org/packages/ec/c0/6d53d4dbbd00f8bd81571f5478d8a95528b716e0eddb4217cc7cb45aae5f/grpcio-1.75.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a8041d2f9e8a742aeae96f4b047ee44e73619f4f9d24565e84d5446c623673b6", size = 8011922, upload-time = "2025-09-26T09:02:09.527Z" },
+ { url = "https://files.pythonhosted.org/packages/f2/7c/48455b2d0c5949678d6982c3e31ea4d89df4e16131b03f7d5c590811cbe9/grpcio-1.75.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3652516048bf4c314ce12be37423c79829f46efffb390ad64149a10c6071e8de", size = 7466181, upload-time = "2025-09-26T09:02:12.279Z" },
+ { url = "https://files.pythonhosted.org/packages/fd/12/04a0e79081e3170b6124f8cba9b6275871276be06c156ef981033f691880/grpcio-1.75.1-cp312-cp312-win32.whl", hash = "sha256:44b62345d8403975513af88da2f3d5cc76f73ca538ba46596f92a127c2aea945", size = 3938543, upload-time = "2025-09-26T09:02:14.77Z" },
+ { url = "https://files.pythonhosted.org/packages/5f/d7/11350d9d7fb5adc73d2b0ebf6ac1cc70135577701e607407fe6739a90021/grpcio-1.75.1-cp312-cp312-win_amd64.whl", hash = "sha256:b1e191c5c465fa777d4cafbaacf0c01e0d5278022082c0abbd2ee1d6454ed94d", size = 4641938, upload-time = "2025-09-26T09:02:16.927Z" },
+ { url = "https://files.pythonhosted.org/packages/46/74/bac4ab9f7722164afdf263ae31ba97b8174c667153510322a5eba4194c32/grpcio-1.75.1-cp313-cp313-linux_armv7l.whl", hash = "sha256:3bed22e750d91d53d9e31e0af35a7b0b51367e974e14a4ff229db5b207647884", size = 5672779, upload-time = "2025-09-26T09:02:19.11Z" },
+ { url = "https://files.pythonhosted.org/packages/a6/52/d0483cfa667cddaa294e3ab88fd2c2a6e9dc1a1928c0e5911e2e54bd5b50/grpcio-1.75.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:5b8f381eadcd6ecaa143a21e9e80a26424c76a0a9b3d546febe6648f3a36a5ac", size = 11470623, upload-time = "2025-09-26T09:02:22.117Z" },
+ { url = "https://files.pythonhosted.org/packages/cf/e4/d1954dce2972e32384db6a30273275e8c8ea5a44b80347f9055589333b3f/grpcio-1.75.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5bf4001d3293e3414d0cf99ff9b1139106e57c3a66dfff0c5f60b2a6286ec133", size = 6248838, upload-time = "2025-09-26T09:02:26.426Z" },
+ { url = "https://files.pythonhosted.org/packages/06/43/073363bf63826ba8077c335d797a8d026f129dc0912b69c42feaf8f0cd26/grpcio-1.75.1-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:9f82ff474103e26351dacfe8d50214e7c9322960d8d07ba7fa1d05ff981c8b2d", size = 6922663, upload-time = "2025-09-26T09:02:28.724Z" },
+ { url = "https://files.pythonhosted.org/packages/c2/6f/076ac0df6c359117676cacfa8a377e2abcecec6a6599a15a672d331f6680/grpcio-1.75.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0ee119f4f88d9f75414217823d21d75bfe0e6ed40135b0cbbfc6376bc9f7757d", size = 6436149, upload-time = "2025-09-26T09:02:30.971Z" },
+ { url = "https://files.pythonhosted.org/packages/6b/27/1d08824f1d573fcb1fa35ede40d6020e68a04391709939e1c6f4193b445f/grpcio-1.75.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:664eecc3abe6d916fa6cf8dd6b778e62fb264a70f3430a3180995bf2da935446", size = 7067989, upload-time = "2025-09-26T09:02:33.233Z" },
+ { url = "https://files.pythonhosted.org/packages/c6/98/98594cf97b8713feb06a8cb04eeef60b4757e3e2fb91aa0d9161da769843/grpcio-1.75.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:c32193fa08b2fbebf08fe08e84f8a0aad32d87c3ad42999c65e9449871b1c66e", size = 8010717, upload-time = "2025-09-26T09:02:36.011Z" },
+ { url = "https://files.pythonhosted.org/packages/8c/7e/bb80b1bba03c12158f9254762cdf5cced4a9bc2e8ed51ed335915a5a06ef/grpcio-1.75.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5cebe13088b9254f6e615bcf1da9131d46cfa4e88039454aca9cb65f639bd3bc", size = 7463822, upload-time = "2025-09-26T09:02:38.26Z" },
+ { url = "https://files.pythonhosted.org/packages/23/1c/1ea57fdc06927eb5640f6750c697f596f26183573069189eeaf6ef86ba2d/grpcio-1.75.1-cp313-cp313-win32.whl", hash = "sha256:4b4c678e7ed50f8ae8b8dbad15a865ee73ce12668b6aaf411bf3258b5bc3f970", size = 3938490, upload-time = "2025-09-26T09:02:40.268Z" },
+ { url = "https://files.pythonhosted.org/packages/4b/24/fbb8ff1ccadfbf78ad2401c41aceaf02b0d782c084530d8871ddd69a2d49/grpcio-1.75.1-cp313-cp313-win_amd64.whl", hash = "sha256:5573f51e3f296a1bcf71e7a690c092845fb223072120f4bdb7a5b48e111def66", size = 4642538, upload-time = "2025-09-26T09:02:42.519Z" },
]
[[package]]
@@ -2309,60 +2293,65 @@ wheels = [
[[package]]
name = "markupsafe"
-version = "3.0.2"
+version = "3.0.3"
source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", size = 20537, upload-time = "2024-10-18T15:21:54.129Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload-time = "2025-09-27T18:37:40.426Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/04/90/d08277ce111dd22f77149fd1a5d4653eeb3b3eaacbdfcbae5afb2600eebd/MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8", size = 14357, upload-time = "2024-10-18T15:20:51.44Z" },
- { url = "https://files.pythonhosted.org/packages/04/e1/6e2194baeae0bca1fae6629dc0cbbb968d4d941469cbab11a3872edff374/MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158", size = 12393, upload-time = "2024-10-18T15:20:52.426Z" },
- { url = "https://files.pythonhosted.org/packages/1d/69/35fa85a8ece0a437493dc61ce0bb6d459dcba482c34197e3efc829aa357f/MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579", size = 21732, upload-time = "2024-10-18T15:20:53.578Z" },
- { url = "https://files.pythonhosted.org/packages/22/35/137da042dfb4720b638d2937c38a9c2df83fe32d20e8c8f3185dbfef05f7/MarkupSafe-3.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d", size = 20866, upload-time = "2024-10-18T15:20:55.06Z" },
- { url = "https://files.pythonhosted.org/packages/29/28/6d029a903727a1b62edb51863232152fd335d602def598dade38996887f0/MarkupSafe-3.0.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb", size = 20964, upload-time = "2024-10-18T15:20:55.906Z" },
- { url = "https://files.pythonhosted.org/packages/cc/cd/07438f95f83e8bc028279909d9c9bd39e24149b0d60053a97b2bc4f8aa51/MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b", size = 21977, upload-time = "2024-10-18T15:20:57.189Z" },
- { url = "https://files.pythonhosted.org/packages/29/01/84b57395b4cc062f9c4c55ce0df7d3108ca32397299d9df00fedd9117d3d/MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c", size = 21366, upload-time = "2024-10-18T15:20:58.235Z" },
- { url = "https://files.pythonhosted.org/packages/bd/6e/61ebf08d8940553afff20d1fb1ba7294b6f8d279df9fd0c0db911b4bbcfd/MarkupSafe-3.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171", size = 21091, upload-time = "2024-10-18T15:20:59.235Z" },
- { url = "https://files.pythonhosted.org/packages/11/23/ffbf53694e8c94ebd1e7e491de185124277964344733c45481f32ede2499/MarkupSafe-3.0.2-cp310-cp310-win32.whl", hash = "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50", size = 15065, upload-time = "2024-10-18T15:21:00.307Z" },
- { url = "https://files.pythonhosted.org/packages/44/06/e7175d06dd6e9172d4a69a72592cb3f7a996a9c396eee29082826449bbc3/MarkupSafe-3.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a", size = 15514, upload-time = "2024-10-18T15:21:01.122Z" },
- { url = "https://files.pythonhosted.org/packages/6b/28/bbf83e3f76936960b850435576dd5e67034e200469571be53f69174a2dfd/MarkupSafe-3.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d", size = 14353, upload-time = "2024-10-18T15:21:02.187Z" },
- { url = "https://files.pythonhosted.org/packages/6c/30/316d194b093cde57d448a4c3209f22e3046c5bb2fb0820b118292b334be7/MarkupSafe-3.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93", size = 12392, upload-time = "2024-10-18T15:21:02.941Z" },
- { url = "https://files.pythonhosted.org/packages/f2/96/9cdafba8445d3a53cae530aaf83c38ec64c4d5427d975c974084af5bc5d2/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832", size = 23984, upload-time = "2024-10-18T15:21:03.953Z" },
- { url = "https://files.pythonhosted.org/packages/f1/a4/aefb044a2cd8d7334c8a47d3fb2c9f328ac48cb349468cc31c20b539305f/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84", size = 23120, upload-time = "2024-10-18T15:21:06.495Z" },
- { url = "https://files.pythonhosted.org/packages/8d/21/5e4851379f88f3fad1de30361db501300d4f07bcad047d3cb0449fc51f8c/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca", size = 23032, upload-time = "2024-10-18T15:21:07.295Z" },
- { url = "https://files.pythonhosted.org/packages/00/7b/e92c64e079b2d0d7ddf69899c98842f3f9a60a1ae72657c89ce2655c999d/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798", size = 24057, upload-time = "2024-10-18T15:21:08.073Z" },
- { url = "https://files.pythonhosted.org/packages/f9/ac/46f960ca323037caa0a10662ef97d0a4728e890334fc156b9f9e52bcc4ca/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e", size = 23359, upload-time = "2024-10-18T15:21:09.318Z" },
- { url = "https://files.pythonhosted.org/packages/69/84/83439e16197337b8b14b6a5b9c2105fff81d42c2a7c5b58ac7b62ee2c3b1/MarkupSafe-3.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4", size = 23306, upload-time = "2024-10-18T15:21:10.185Z" },
- { url = "https://files.pythonhosted.org/packages/9a/34/a15aa69f01e2181ed8d2b685c0d2f6655d5cca2c4db0ddea775e631918cd/MarkupSafe-3.0.2-cp311-cp311-win32.whl", hash = "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d", size = 15094, upload-time = "2024-10-18T15:21:11.005Z" },
- { url = "https://files.pythonhosted.org/packages/da/b8/3a3bd761922d416f3dc5d00bfbed11f66b1ab89a0c2b6e887240a30b0f6b/MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b", size = 15521, upload-time = "2024-10-18T15:21:12.911Z" },
- { url = "https://files.pythonhosted.org/packages/22/09/d1f21434c97fc42f09d290cbb6350d44eb12f09cc62c9476effdb33a18aa/MarkupSafe-3.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf", size = 14274, upload-time = "2024-10-18T15:21:13.777Z" },
- { url = "https://files.pythonhosted.org/packages/6b/b0/18f76bba336fa5aecf79d45dcd6c806c280ec44538b3c13671d49099fdd0/MarkupSafe-3.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225", size = 12348, upload-time = "2024-10-18T15:21:14.822Z" },
- { url = "https://files.pythonhosted.org/packages/e0/25/dd5c0f6ac1311e9b40f4af06c78efde0f3b5cbf02502f8ef9501294c425b/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028", size = 24149, upload-time = "2024-10-18T15:21:15.642Z" },
- { url = "https://files.pythonhosted.org/packages/f3/f0/89e7aadfb3749d0f52234a0c8c7867877876e0a20b60e2188e9850794c17/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8", size = 23118, upload-time = "2024-10-18T15:21:17.133Z" },
- { url = "https://files.pythonhosted.org/packages/d5/da/f2eeb64c723f5e3777bc081da884b414671982008c47dcc1873d81f625b6/MarkupSafe-3.0.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c", size = 22993, upload-time = "2024-10-18T15:21:18.064Z" },
- { url = "https://files.pythonhosted.org/packages/da/0e/1f32af846df486dce7c227fe0f2398dc7e2e51d4a370508281f3c1c5cddc/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557", size = 24178, upload-time = "2024-10-18T15:21:18.859Z" },
- { url = "https://files.pythonhosted.org/packages/c4/f6/bb3ca0532de8086cbff5f06d137064c8410d10779c4c127e0e47d17c0b71/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22", size = 23319, upload-time = "2024-10-18T15:21:19.671Z" },
- { url = "https://files.pythonhosted.org/packages/a2/82/8be4c96ffee03c5b4a034e60a31294daf481e12c7c43ab8e34a1453ee48b/MarkupSafe-3.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48", size = 23352, upload-time = "2024-10-18T15:21:20.971Z" },
- { url = "https://files.pythonhosted.org/packages/51/ae/97827349d3fcffee7e184bdf7f41cd6b88d9919c80f0263ba7acd1bbcb18/MarkupSafe-3.0.2-cp312-cp312-win32.whl", hash = "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30", size = 15097, upload-time = "2024-10-18T15:21:22.646Z" },
- { url = "https://files.pythonhosted.org/packages/c1/80/a61f99dc3a936413c3ee4e1eecac96c0da5ed07ad56fd975f1a9da5bc630/MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87", size = 15601, upload-time = "2024-10-18T15:21:23.499Z" },
- { url = "https://files.pythonhosted.org/packages/83/0e/67eb10a7ecc77a0c2bbe2b0235765b98d164d81600746914bebada795e97/MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd", size = 14274, upload-time = "2024-10-18T15:21:24.577Z" },
- { url = "https://files.pythonhosted.org/packages/2b/6d/9409f3684d3335375d04e5f05744dfe7e9f120062c9857df4ab490a1031a/MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430", size = 12352, upload-time = "2024-10-18T15:21:25.382Z" },
- { url = "https://files.pythonhosted.org/packages/d2/f5/6eadfcd3885ea85fe2a7c128315cc1bb7241e1987443d78c8fe712d03091/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094", size = 24122, upload-time = "2024-10-18T15:21:26.199Z" },
- { url = "https://files.pythonhosted.org/packages/0c/91/96cf928db8236f1bfab6ce15ad070dfdd02ed88261c2afafd4b43575e9e9/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396", size = 23085, upload-time = "2024-10-18T15:21:27.029Z" },
- { url = "https://files.pythonhosted.org/packages/c2/cf/c9d56af24d56ea04daae7ac0940232d31d5a8354f2b457c6d856b2057d69/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79", size = 22978, upload-time = "2024-10-18T15:21:27.846Z" },
- { url = "https://files.pythonhosted.org/packages/2a/9f/8619835cd6a711d6272d62abb78c033bda638fdc54c4e7f4272cf1c0962b/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a", size = 24208, upload-time = "2024-10-18T15:21:28.744Z" },
- { url = "https://files.pythonhosted.org/packages/f9/bf/176950a1792b2cd2102b8ffeb5133e1ed984547b75db47c25a67d3359f77/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca", size = 23357, upload-time = "2024-10-18T15:21:29.545Z" },
- { url = "https://files.pythonhosted.org/packages/ce/4f/9a02c1d335caabe5c4efb90e1b6e8ee944aa245c1aaaab8e8a618987d816/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c", size = 23344, upload-time = "2024-10-18T15:21:30.366Z" },
- { url = "https://files.pythonhosted.org/packages/ee/55/c271b57db36f748f0e04a759ace9f8f759ccf22b4960c270c78a394f58be/MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1", size = 15101, upload-time = "2024-10-18T15:21:31.207Z" },
- { url = "https://files.pythonhosted.org/packages/29/88/07df22d2dd4df40aba9f3e402e6dc1b8ee86297dddbad4872bd5e7b0094f/MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f", size = 15603, upload-time = "2024-10-18T15:21:32.032Z" },
- { url = "https://files.pythonhosted.org/packages/62/6a/8b89d24db2d32d433dffcd6a8779159da109842434f1dd2f6e71f32f738c/MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c", size = 14510, upload-time = "2024-10-18T15:21:33.625Z" },
- { url = "https://files.pythonhosted.org/packages/7a/06/a10f955f70a2e5a9bf78d11a161029d278eeacbd35ef806c3fd17b13060d/MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb", size = 12486, upload-time = "2024-10-18T15:21:34.611Z" },
- { url = "https://files.pythonhosted.org/packages/34/cf/65d4a571869a1a9078198ca28f39fba5fbb910f952f9dbc5220afff9f5e6/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c", size = 25480, upload-time = "2024-10-18T15:21:35.398Z" },
- { url = "https://files.pythonhosted.org/packages/0c/e3/90e9651924c430b885468b56b3d597cabf6d72be4b24a0acd1fa0e12af67/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d", size = 23914, upload-time = "2024-10-18T15:21:36.231Z" },
- { url = "https://files.pythonhosted.org/packages/66/8c/6c7cf61f95d63bb866db39085150df1f2a5bd3335298f14a66b48e92659c/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe", size = 23796, upload-time = "2024-10-18T15:21:37.073Z" },
- { url = "https://files.pythonhosted.org/packages/bb/35/cbe9238ec3f47ac9a7c8b3df7a808e7cb50fe149dc7039f5f454b3fba218/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5", size = 25473, upload-time = "2024-10-18T15:21:37.932Z" },
- { url = "https://files.pythonhosted.org/packages/e6/32/7621a4382488aa283cc05e8984a9c219abad3bca087be9ec77e89939ded9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a", size = 24114, upload-time = "2024-10-18T15:21:39.799Z" },
- { url = "https://files.pythonhosted.org/packages/0d/80/0985960e4b89922cb5a0bac0ed39c5b96cbc1a536a99f30e8c220a996ed9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9", size = 24098, upload-time = "2024-10-18T15:21:40.813Z" },
- { url = "https://files.pythonhosted.org/packages/82/78/fedb03c7d5380df2427038ec8d973587e90561b2d90cd472ce9254cf348b/MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6", size = 15208, upload-time = "2024-10-18T15:21:41.814Z" },
- { url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739, upload-time = "2024-10-18T15:21:42.784Z" },
+ { url = "https://files.pythonhosted.org/packages/e8/4b/3541d44f3937ba468b75da9eebcae497dcf67adb65caa16760b0a6807ebb/markupsafe-3.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559", size = 11631, upload-time = "2025-09-27T18:36:05.558Z" },
+ { url = "https://files.pythonhosted.org/packages/98/1b/fbd8eed11021cabd9226c37342fa6ca4e8a98d8188a8d9b66740494960e4/markupsafe-3.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419", size = 12057, upload-time = "2025-09-27T18:36:07.165Z" },
+ { url = "https://files.pythonhosted.org/packages/40/01/e560d658dc0bb8ab762670ece35281dec7b6c1b33f5fbc09ebb57a185519/markupsafe-3.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ba88449deb3de88bd40044603fafffb7bc2b055d626a330323a9ed736661695", size = 22050, upload-time = "2025-09-27T18:36:08.005Z" },
+ { url = "https://files.pythonhosted.org/packages/af/cd/ce6e848bbf2c32314c9b237839119c5a564a59725b53157c856e90937b7a/markupsafe-3.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f42d0984e947b8adf7dd6dde396e720934d12c506ce84eea8476409563607591", size = 20681, upload-time = "2025-09-27T18:36:08.881Z" },
+ { url = "https://files.pythonhosted.org/packages/c9/2a/b5c12c809f1c3045c4d580b035a743d12fcde53cf685dbc44660826308da/markupsafe-3.0.3-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c0c0b3ade1c0b13b936d7970b1d37a57acde9199dc2aecc4c336773e1d86049c", size = 20705, upload-time = "2025-09-27T18:36:10.131Z" },
+ { url = "https://files.pythonhosted.org/packages/cf/e3/9427a68c82728d0a88c50f890d0fc072a1484de2f3ac1ad0bfc1a7214fd5/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f", size = 21524, upload-time = "2025-09-27T18:36:11.324Z" },
+ { url = "https://files.pythonhosted.org/packages/bc/36/23578f29e9e582a4d0278e009b38081dbe363c5e7165113fad546918a232/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:d2ee202e79d8ed691ceebae8e0486bd9a2cd4794cec4824e1c99b6f5009502f6", size = 20282, upload-time = "2025-09-27T18:36:12.573Z" },
+ { url = "https://files.pythonhosted.org/packages/56/21/dca11354e756ebd03e036bd8ad58d6d7168c80ce1fe5e75218e4945cbab7/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:177b5253b2834fe3678cb4a5f0059808258584c559193998be2601324fdeafb1", size = 20745, upload-time = "2025-09-27T18:36:13.504Z" },
+ { url = "https://files.pythonhosted.org/packages/87/99/faba9369a7ad6e4d10b6a5fbf71fa2a188fe4a593b15f0963b73859a1bbd/markupsafe-3.0.3-cp310-cp310-win32.whl", hash = "sha256:2a15a08b17dd94c53a1da0438822d70ebcd13f8c3a95abe3a9ef9f11a94830aa", size = 14571, upload-time = "2025-09-27T18:36:14.779Z" },
+ { url = "https://files.pythonhosted.org/packages/d6/25/55dc3ab959917602c96985cb1253efaa4ff42f71194bddeb61eb7278b8be/markupsafe-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:c4ffb7ebf07cfe8931028e3e4c85f0357459a3f9f9490886198848f4fa002ec8", size = 15056, upload-time = "2025-09-27T18:36:16.125Z" },
+ { url = "https://files.pythonhosted.org/packages/d0/9e/0a02226640c255d1da0b8d12e24ac2aa6734da68bff14c05dd53b94a0fc3/markupsafe-3.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:e2103a929dfa2fcaf9bb4e7c091983a49c9ac3b19c9061b6d5427dd7d14d81a1", size = 13932, upload-time = "2025-09-27T18:36:17.311Z" },
+ { url = "https://files.pythonhosted.org/packages/08/db/fefacb2136439fc8dd20e797950e749aa1f4997ed584c62cfb8ef7c2be0e/markupsafe-3.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad", size = 11631, upload-time = "2025-09-27T18:36:18.185Z" },
+ { url = "https://files.pythonhosted.org/packages/e1/2e/5898933336b61975ce9dc04decbc0a7f2fee78c30353c5efba7f2d6ff27a/markupsafe-3.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a", size = 12058, upload-time = "2025-09-27T18:36:19.444Z" },
+ { url = "https://files.pythonhosted.org/packages/1d/09/adf2df3699d87d1d8184038df46a9c80d78c0148492323f4693df54e17bb/markupsafe-3.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50", size = 24287, upload-time = "2025-09-27T18:36:20.768Z" },
+ { url = "https://files.pythonhosted.org/packages/30/ac/0273f6fcb5f42e314c6d8cd99effae6a5354604d461b8d392b5ec9530a54/markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf", size = 22940, upload-time = "2025-09-27T18:36:22.249Z" },
+ { url = "https://files.pythonhosted.org/packages/19/ae/31c1be199ef767124c042c6c3e904da327a2f7f0cd63a0337e1eca2967a8/markupsafe-3.0.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f", size = 21887, upload-time = "2025-09-27T18:36:23.535Z" },
+ { url = "https://files.pythonhosted.org/packages/b2/76/7edcab99d5349a4532a459e1fe64f0b0467a3365056ae550d3bcf3f79e1e/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a", size = 23692, upload-time = "2025-09-27T18:36:24.823Z" },
+ { url = "https://files.pythonhosted.org/packages/a4/28/6e74cdd26d7514849143d69f0bf2399f929c37dc2b31e6829fd2045b2765/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115", size = 21471, upload-time = "2025-09-27T18:36:25.95Z" },
+ { url = "https://files.pythonhosted.org/packages/62/7e/a145f36a5c2945673e590850a6f8014318d5577ed7e5920a4b3448e0865d/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a", size = 22923, upload-time = "2025-09-27T18:36:27.109Z" },
+ { url = "https://files.pythonhosted.org/packages/0f/62/d9c46a7f5c9adbeeeda52f5b8d802e1094e9717705a645efc71b0913a0a8/markupsafe-3.0.3-cp311-cp311-win32.whl", hash = "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19", size = 14572, upload-time = "2025-09-27T18:36:28.045Z" },
+ { url = "https://files.pythonhosted.org/packages/83/8a/4414c03d3f891739326e1783338e48fb49781cc915b2e0ee052aa490d586/markupsafe-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01", size = 15077, upload-time = "2025-09-27T18:36:29.025Z" },
+ { url = "https://files.pythonhosted.org/packages/35/73/893072b42e6862f319b5207adc9ae06070f095b358655f077f69a35601f0/markupsafe-3.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c", size = 13876, upload-time = "2025-09-27T18:36:29.954Z" },
+ { url = "https://files.pythonhosted.org/packages/5a/72/147da192e38635ada20e0a2e1a51cf8823d2119ce8883f7053879c2199b5/markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", size = 11615, upload-time = "2025-09-27T18:36:30.854Z" },
+ { url = "https://files.pythonhosted.org/packages/9a/81/7e4e08678a1f98521201c3079f77db69fb552acd56067661f8c2f534a718/markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", size = 12020, upload-time = "2025-09-27T18:36:31.971Z" },
+ { url = "https://files.pythonhosted.org/packages/1e/2c/799f4742efc39633a1b54a92eec4082e4f815314869865d876824c257c1e/markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", size = 24332, upload-time = "2025-09-27T18:36:32.813Z" },
+ { url = "https://files.pythonhosted.org/packages/3c/2e/8d0c2ab90a8c1d9a24f0399058ab8519a3279d1bd4289511d74e909f060e/markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", size = 22947, upload-time = "2025-09-27T18:36:33.86Z" },
+ { url = "https://files.pythonhosted.org/packages/2c/54/887f3092a85238093a0b2154bd629c89444f395618842e8b0c41783898ea/markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", size = 21962, upload-time = "2025-09-27T18:36:35.099Z" },
+ { url = "https://files.pythonhosted.org/packages/c9/2f/336b8c7b6f4a4d95e91119dc8521402461b74a485558d8f238a68312f11c/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", size = 23760, upload-time = "2025-09-27T18:36:36.001Z" },
+ { url = "https://files.pythonhosted.org/packages/32/43/67935f2b7e4982ffb50a4d169b724d74b62a3964bc1a9a527f5ac4f1ee2b/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", size = 21529, upload-time = "2025-09-27T18:36:36.906Z" },
+ { url = "https://files.pythonhosted.org/packages/89/e0/4486f11e51bbba8b0c041098859e869e304d1c261e59244baa3d295d47b7/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", size = 23015, upload-time = "2025-09-27T18:36:37.868Z" },
+ { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540, upload-time = "2025-09-27T18:36:38.761Z" },
+ { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105, upload-time = "2025-09-27T18:36:39.701Z" },
+ { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906, upload-time = "2025-09-27T18:36:40.689Z" },
+ { url = "https://files.pythonhosted.org/packages/38/2f/907b9c7bbba283e68f20259574b13d005c121a0fa4c175f9bed27c4597ff/markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", size = 11622, upload-time = "2025-09-27T18:36:41.777Z" },
+ { url = "https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", size = 12029, upload-time = "2025-09-27T18:36:43.257Z" },
+ { url = "https://files.pythonhosted.org/packages/00/07/575a68c754943058c78f30db02ee03a64b3c638586fba6a6dd56830b30a3/markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", size = 24374, upload-time = "2025-09-27T18:36:44.508Z" },
+ { url = "https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", size = 22980, upload-time = "2025-09-27T18:36:45.385Z" },
+ { url = "https://files.pythonhosted.org/packages/7f/71/544260864f893f18b6827315b988c146b559391e6e7e8f7252839b1b846a/markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", size = 21990, upload-time = "2025-09-27T18:36:46.916Z" },
+ { url = "https://files.pythonhosted.org/packages/c2/28/b50fc2f74d1ad761af2f5dcce7492648b983d00a65b8c0e0cb457c82ebbe/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", size = 23784, upload-time = "2025-09-27T18:36:47.884Z" },
+ { url = "https://files.pythonhosted.org/packages/ed/76/104b2aa106a208da8b17a2fb72e033a5a9d7073c68f7e508b94916ed47a9/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", size = 21588, upload-time = "2025-09-27T18:36:48.82Z" },
+ { url = "https://files.pythonhosted.org/packages/b5/99/16a5eb2d140087ebd97180d95249b00a03aa87e29cc224056274f2e45fd6/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", size = 23041, upload-time = "2025-09-27T18:36:49.797Z" },
+ { url = "https://files.pythonhosted.org/packages/19/bc/e7140ed90c5d61d77cea142eed9f9c303f4c4806f60a1044c13e3f1471d0/markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", size = 14543, upload-time = "2025-09-27T18:36:51.584Z" },
+ { url = "https://files.pythonhosted.org/packages/05/73/c4abe620b841b6b791f2edc248f556900667a5a1cf023a6646967ae98335/markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", size = 15113, upload-time = "2025-09-27T18:36:52.537Z" },
+ { url = "https://files.pythonhosted.org/packages/f0/3a/fa34a0f7cfef23cf9500d68cb7c32dd64ffd58a12b09225fb03dd37d5b80/markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", size = 13911, upload-time = "2025-09-27T18:36:53.513Z" },
+ { url = "https://files.pythonhosted.org/packages/e4/d7/e05cd7efe43a88a17a37b3ae96e79a19e846f3f456fe79c57ca61356ef01/markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", size = 11658, upload-time = "2025-09-27T18:36:54.819Z" },
+ { url = "https://files.pythonhosted.org/packages/99/9e/e412117548182ce2148bdeacdda3bb494260c0b0184360fe0d56389b523b/markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", size = 12066, upload-time = "2025-09-27T18:36:55.714Z" },
+ { url = "https://files.pythonhosted.org/packages/bc/e6/fa0ffcda717ef64a5108eaa7b4f5ed28d56122c9a6d70ab8b72f9f715c80/markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", size = 25639, upload-time = "2025-09-27T18:36:56.908Z" },
+ { url = "https://files.pythonhosted.org/packages/96/ec/2102e881fe9d25fc16cb4b25d5f5cde50970967ffa5dddafdb771237062d/markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", size = 23569, upload-time = "2025-09-27T18:36:57.913Z" },
+ { url = "https://files.pythonhosted.org/packages/4b/30/6f2fce1f1f205fc9323255b216ca8a235b15860c34b6798f810f05828e32/markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", size = 23284, upload-time = "2025-09-27T18:36:58.833Z" },
+ { url = "https://files.pythonhosted.org/packages/58/47/4a0ccea4ab9f5dcb6f79c0236d954acb382202721e704223a8aafa38b5c8/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", size = 24801, upload-time = "2025-09-27T18:36:59.739Z" },
+ { url = "https://files.pythonhosted.org/packages/6a/70/3780e9b72180b6fecb83a4814d84c3bf4b4ae4bf0b19c27196104149734c/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", size = 22769, upload-time = "2025-09-27T18:37:00.719Z" },
+ { url = "https://files.pythonhosted.org/packages/98/c5/c03c7f4125180fc215220c035beac6b9cb684bc7a067c84fc69414d315f5/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", size = 23642, upload-time = "2025-09-27T18:37:01.673Z" },
+ { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612, upload-time = "2025-09-27T18:37:02.639Z" },
+ { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200, upload-time = "2025-09-27T18:37:03.582Z" },
+ { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973, upload-time = "2025-09-27T18:37:04.929Z" },
]
[[package]]
@@ -2388,7 +2377,7 @@ wheels = [
[[package]]
name = "mem0ai"
-version = "0.1.116"
+version = "0.1.118"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "openai" },
@@ -2399,9 +2388,9 @@ dependencies = [
{ name = "qdrant-client" },
{ name = "sqlalchemy" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/60/a0/10482cc437e96d609d5fbbb65ad8eae144fc84f0cb2655d913bfb58d7dff/mem0ai-0.1.116.tar.gz", hash = "sha256:c33e08c5464f96b1cf109893dba5d394d8cc5788a8400d85cb1ceed696ee3204", size = 122053, upload-time = "2025-08-13T20:19:41.119Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/db/1d/b7797ee607d0de2979d2a8b4c0c102989d5e1a1c9d67478dc6a2e2e0b2a8/mem0ai-0.1.118.tar.gz", hash = "sha256:d62497286616357f8726b849afc20031cd0ab56d1cf312fa289b006be33c3ce7", size = 159324, upload-time = "2025-09-25T20:53:00.427Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/4b/70/810bd12d76576402e7c447ffb683f40fdab8cf49eaae6df3db4af48b358f/mem0ai-0.1.116-py3-none-any.whl", hash = "sha256:245b08f1e615e057ebacc52462ab729a7282abe05e8d4957236d893b3d32a990", size = 190315, upload-time = "2025-08-13T20:19:39.649Z" },
+ { url = "https://files.pythonhosted.org/packages/78/70/e648ab026aa6505b920ed405a422727777bebdc5135691b2ca6350a02062/mem0ai-0.1.118-py3-none-any.whl", hash = "sha256:c2b371224a340fd5529d608dfbd2e77c610c7ffe421005ff7e862fd6f322cca8", size = 239476, upload-time = "2025-09-25T20:52:58.32Z" },
]
[[package]]
@@ -2958,7 +2947,7 @@ name = "nvidia-cudnn-cu12"
version = "9.10.2.21"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "nvidia-cublas-cu12", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" },
+ { name = "nvidia-cublas-cu12" },
]
wheels = [
{ url = "https://files.pythonhosted.org/packages/ba/51/e123d997aa098c61d029f76663dedbfb9bc8dcf8c60cbd6adbe42f76d049/nvidia_cudnn_cu12-9.10.2.21-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:949452be657fa16687d0930933f032835951ef0892b37d2d53824d1a84dc97a8", size = 706758467, upload-time = "2025-06-06T21:54:08.597Z" },
@@ -2969,7 +2958,7 @@ name = "nvidia-cufft-cu12"
version = "11.3.3.83"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "nvidia-nvjitlink-cu12", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" },
+ { name = "nvidia-nvjitlink-cu12" },
]
wheels = [
{ url = "https://files.pythonhosted.org/packages/1f/13/ee4e00f30e676b66ae65b4f08cb5bcbb8392c03f54f2d5413ea99a5d1c80/nvidia_cufft_cu12-11.3.3.83-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4d2dd21ec0b88cf61b62e6b43564355e5222e4a3fb394cac0db101f2dd0d4f74", size = 193118695, upload-time = "2025-03-07T01:45:27.821Z" },
@@ -2996,9 +2985,9 @@ name = "nvidia-cusolver-cu12"
version = "11.7.3.90"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "nvidia-cublas-cu12", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" },
- { name = "nvidia-cusparse-cu12", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" },
- { name = "nvidia-nvjitlink-cu12", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" },
+ { name = "nvidia-cublas-cu12" },
+ { name = "nvidia-cusparse-cu12" },
+ { name = "nvidia-nvjitlink-cu12" },
]
wheels = [
{ url = "https://files.pythonhosted.org/packages/85/48/9a13d2975803e8cf2777d5ed57b87a0b6ca2cc795f9a4f59796a910bfb80/nvidia_cusolver_cu12-11.7.3.90-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:4376c11ad263152bd50ea295c05370360776f8c3427b30991df774f9fb26c450", size = 267506905, upload-time = "2025-03-07T01:47:16.273Z" },
@@ -3009,7 +2998,7 @@ name = "nvidia-cusparse-cu12"
version = "12.5.8.93"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "nvidia-nvjitlink-cu12", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" },
+ { name = "nvidia-nvjitlink-cu12" },
]
wheels = [
{ url = "https://files.pythonhosted.org/packages/c2/f5/e1854cb2f2bcd4280c44736c93550cc300ff4b8c95ebe370d0aa7d2b473d/nvidia_cusparse_cu12-12.5.8.93-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1ec05d76bbbd8b61b06a80e1eaf8cf4959c3d4ce8e711b65ebd0443bb0ebb13b", size = 288216466, upload-time = "2025-03-07T01:48:13.779Z" },
@@ -3058,7 +3047,7 @@ wheels = [
[[package]]
name = "onnxruntime"
-version = "1.22.0"
+version = "1.23.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "coloredlogs" },
@@ -3070,24 +3059,28 @@ dependencies = [
{ name = "sympy" },
]
wheels = [
- { url = "https://files.pythonhosted.org/packages/67/3c/c99b21646a782b89c33cffd96fdee02a81bc43f0cb651de84d58ec11e30e/onnxruntime-1.22.0-cp310-cp310-macosx_13_0_universal2.whl", hash = "sha256:85d8826cc8054e4d6bf07f779dc742a363c39094015bdad6a08b3c18cfe0ba8c", size = 34273493, upload-time = "2025-05-09T20:25:55.66Z" },
- { url = "https://files.pythonhosted.org/packages/54/ab/fd9a3b5285008c060618be92e475337fcfbf8689787953d37273f7b52ab0/onnxruntime-1.22.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:468c9502a12f6f49ec335c2febd22fdceecc1e4cc96dfc27e419ba237dff5aff", size = 14445346, upload-time = "2025-05-09T20:25:41.322Z" },
- { url = "https://files.pythonhosted.org/packages/1f/ca/a5625644bc079e04e3076a5ac1fb954d1e90309b8eb987a4f800732ffee6/onnxruntime-1.22.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:681fe356d853630a898ee05f01ddb95728c9a168c9460e8361d0a240c9b7cb97", size = 16392959, upload-time = "2025-05-09T20:26:09.047Z" },
- { url = "https://files.pythonhosted.org/packages/6d/6b/8267490476e8d4dd1883632c7e46a4634384c7ff1c35ae44edc8ab0bb7a9/onnxruntime-1.22.0-cp310-cp310-win_amd64.whl", hash = "sha256:20bca6495d06925631e201f2b257cc37086752e8fe7b6c83a67c6509f4759bc9", size = 12689974, upload-time = "2025-05-12T21:26:09.704Z" },
- { url = "https://files.pythonhosted.org/packages/7a/08/c008711d1b92ff1272f4fea0fbee57723171f161d42e5c680625535280af/onnxruntime-1.22.0-cp311-cp311-macosx_13_0_universal2.whl", hash = "sha256:8d6725c5b9a681d8fe72f2960c191a96c256367887d076b08466f52b4e0991df", size = 34282151, upload-time = "2025-05-09T20:25:59.246Z" },
- { url = "https://files.pythonhosted.org/packages/3e/8b/22989f6b59bc4ad1324f07a945c80b9ab825f0a581ad7a6064b93716d9b7/onnxruntime-1.22.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fef17d665a917866d1f68f09edc98223b9a27e6cb167dec69da4c66484ad12fd", size = 14446302, upload-time = "2025-05-09T20:25:44.299Z" },
- { url = "https://files.pythonhosted.org/packages/7a/d5/aa83d084d05bc8f6cf8b74b499c77431ffd6b7075c761ec48ec0c161a47f/onnxruntime-1.22.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b978aa63a9a22095479c38371a9b359d4c15173cbb164eaad5f2cd27d666aa65", size = 16393496, upload-time = "2025-05-09T20:26:11.588Z" },
- { url = "https://files.pythonhosted.org/packages/89/a5/1c6c10322201566015183b52ef011dfa932f5dd1b278de8d75c3b948411d/onnxruntime-1.22.0-cp311-cp311-win_amd64.whl", hash = "sha256:03d3ef7fb11adf154149d6e767e21057e0e577b947dd3f66190b212528e1db31", size = 12691517, upload-time = "2025-05-12T21:26:13.354Z" },
- { url = "https://files.pythonhosted.org/packages/4d/de/9162872c6e502e9ac8c99a98a8738b2fab408123d11de55022ac4f92562a/onnxruntime-1.22.0-cp312-cp312-macosx_13_0_universal2.whl", hash = "sha256:f3c0380f53c1e72a41b3f4d6af2ccc01df2c17844072233442c3a7e74851ab97", size = 34298046, upload-time = "2025-05-09T20:26:02.399Z" },
- { url = "https://files.pythonhosted.org/packages/03/79/36f910cd9fc96b444b0e728bba14607016079786adf032dae61f7c63b4aa/onnxruntime-1.22.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c8601128eaef79b636152aea76ae6981b7c9fc81a618f584c15d78d42b310f1c", size = 14443220, upload-time = "2025-05-09T20:25:47.078Z" },
- { url = "https://files.pythonhosted.org/packages/8c/60/16d219b8868cc8e8e51a68519873bdb9f5f24af080b62e917a13fff9989b/onnxruntime-1.22.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6964a975731afc19dc3418fad8d4e08c48920144ff590149429a5ebe0d15fb3c", size = 16406377, upload-time = "2025-05-09T20:26:14.478Z" },
- { url = "https://files.pythonhosted.org/packages/36/b4/3f1c71ce1d3d21078a6a74c5483bfa2b07e41a8d2b8fb1e9993e6a26d8d3/onnxruntime-1.22.0-cp312-cp312-win_amd64.whl", hash = "sha256:c0d534a43d1264d1273c2d4f00a5a588fa98d21117a3345b7104fa0bbcaadb9a", size = 12692233, upload-time = "2025-05-12T21:26:16.963Z" },
- { url = "https://files.pythonhosted.org/packages/a9/65/5cb5018d5b0b7cba820d2c4a1d1b02d40df538d49138ba36a509457e4df6/onnxruntime-1.22.0-cp313-cp313-macosx_13_0_universal2.whl", hash = "sha256:fe7c051236aae16d8e2e9ffbfc1e115a0cc2450e873a9c4cb75c0cc96c1dae07", size = 34298715, upload-time = "2025-05-09T20:26:05.634Z" },
- { url = "https://files.pythonhosted.org/packages/e1/89/1dfe1b368831d1256b90b95cb8d11da8ab769febd5c8833ec85ec1f79d21/onnxruntime-1.22.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6a6bbed10bc5e770c04d422893d3045b81acbbadc9fb759a2cd1ca00993da919", size = 14443266, upload-time = "2025-05-09T20:25:49.479Z" },
- { url = "https://files.pythonhosted.org/packages/1e/70/342514ade3a33ad9dd505dcee96ff1f0e7be6d0e6e9c911fe0f1505abf42/onnxruntime-1.22.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9fe45ee3e756300fccfd8d61b91129a121d3d80e9d38e01f03ff1295badc32b8", size = 16406707, upload-time = "2025-05-09T20:26:17.454Z" },
- { url = "https://files.pythonhosted.org/packages/3e/89/2f64e250945fa87140fb917ba377d6d0e9122e029c8512f389a9b7f953f4/onnxruntime-1.22.0-cp313-cp313-win_amd64.whl", hash = "sha256:5a31d84ef82b4b05d794a4ce8ba37b0d9deb768fd580e36e17b39e0b4840253b", size = 12691777, upload-time = "2025-05-12T21:26:20.19Z" },
- { url = "https://files.pythonhosted.org/packages/9f/48/d61d5f1ed098161edd88c56cbac49207d7b7b149e613d2cd7e33176c63b3/onnxruntime-1.22.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a2ac5bd9205d831541db4e508e586e764a74f14efdd3f89af7fd20e1bf4a1ed", size = 14454003, upload-time = "2025-05-09T20:25:52.287Z" },
- { url = "https://files.pythonhosted.org/packages/c3/16/873b955beda7bada5b0d798d3a601b2ff210e44ad5169f6d405b93892103/onnxruntime-1.22.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:64845709f9e8a2809e8e009bc4c8f73b788cee9c6619b7d9930344eae4c9cd36", size = 16427482, upload-time = "2025-05-09T20:26:20.376Z" },
+ { url = "https://files.pythonhosted.org/packages/4e/28/4c76b7feca063d47880e76bee235e829bcc4adb87cc26ecff248ece31f17/onnxruntime-1.23.0-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:009bf5ecad107a7f11af8214fcff19e844214887b38c6673bd63a25af2f6121f", size = 17078761, upload-time = "2025-09-25T19:16:41.541Z" },
+ { url = "https://files.pythonhosted.org/packages/8f/b0/740cec5d5f664930fecb1e7a6d7bdf8f0d81982f7cb04184dd80db8036d6/onnxruntime-1.23.0-cp310-cp310-macosx_13_0_x86_64.whl", hash = "sha256:9f875c93891200a946a3387d2c66c66668b9b60a1a053a83d4ee025d8b8892de", size = 19022963, upload-time = "2025-09-25T18:56:29.734Z" },
+ { url = "https://files.pythonhosted.org/packages/54/18/73cc152ae160023a4199de11d69641be0b9250967d5853e4b08d56b19c0f/onnxruntime-1.23.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c613fd9280e506d237f7701c1275b6ff30f517a523ced62d1def11a8cf5acf7c", size = 15141554, upload-time = "2025-09-25T18:56:09.899Z" },
+ { url = "https://files.pythonhosted.org/packages/e8/aa/bcd3326406f11c5d196a3362daa9904624d77786468cb9d39e4f01e70c2b/onnxruntime-1.23.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8984f38de1a2d57fead5c791c5a6e1921dadfe0bc9f5ea26a5acfcc78908e3e9", size = 17268356, upload-time = "2025-09-25T19:16:06.129Z" },
+ { url = "https://files.pythonhosted.org/packages/f9/dd/162a2dd2ae0bcfc2a858f966a71eb2206e1a179bc2bf9d681e4fc28369dd/onnxruntime-1.23.0-cp310-cp310-win_amd64.whl", hash = "sha256:08efde1dd5c4881aaf49e79cd2f03d0cd977e8f657217e2796c343c06fefac51", size = 13389724, upload-time = "2025-09-25T19:16:31.701Z" },
+ { url = "https://files.pythonhosted.org/packages/0b/00/8083a5fd84cdb1119b26530daf5d89d8214c2078096a5a065d8ca5ec8959/onnxruntime-1.23.0-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:ecf8c589d7d55bd645237442a97c9a2b4bd35bab35b20fc7f2bc81b70c062071", size = 17082400, upload-time = "2025-09-25T19:16:43.875Z" },
+ { url = "https://files.pythonhosted.org/packages/e8/19/1f87efecc03df75e1042cceb0d0b4645b121801c4b8022bd9d6c710fd214/onnxruntime-1.23.0-cp311-cp311-macosx_13_0_x86_64.whl", hash = "sha256:b703c42e6aee8d58d23b39ea856c4202173fcd4260e87fe08fc1d4e983d76f92", size = 19024671, upload-time = "2025-09-25T18:56:32.096Z" },
+ { url = "https://files.pythonhosted.org/packages/cd/e3/eaba11c440b35ea6fc9e6bb744ee4a50abcbd2e48fb388f1b15a5e7d6083/onnxruntime-1.23.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e8634c5f54774df1e4d1debfdf2ca8f3274fe4ffc816ff5f861c01c48468a2c4", size = 15141724, upload-time = "2025-09-25T18:56:12.851Z" },
+ { url = "https://files.pythonhosted.org/packages/d0/5e/399ee9b1f2a9d17f23d5a8518ea45e42b6f4f7f5bbcc8526f74ca15e90bb/onnxruntime-1.23.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3c681ab5ae4fce92d09f4a86ac088a18ea36f8739115b8abf55e557cb6729e97", size = 17268940, upload-time = "2025-09-25T19:16:08.874Z" },
+ { url = "https://files.pythonhosted.org/packages/65/ed/286dfcabe1f929e23988a3dec2232b6140b19f8b8c72f445061b333772b4/onnxruntime-1.23.0-cp311-cp311-win_amd64.whl", hash = "sha256:a91e14627c08fbbde3c54fbce21e0903ce07a985f664f24d097cbfb01a930a69", size = 13390920, upload-time = "2025-09-25T19:16:33.945Z" },
+ { url = "https://files.pythonhosted.org/packages/fb/33/ec5395c9539423246e4976d6ec7c4e7a4624ad8bcbe783fea5c629d7980a/onnxruntime-1.23.0-cp312-cp312-macosx_13_0_arm64.whl", hash = "sha256:5921f2e106f5faf2b32095b2ecdfae047e445c3bce063e439dadc75c212e7be7", size = 17081368, upload-time = "2025-09-25T19:16:46.585Z" },
+ { url = "https://files.pythonhosted.org/packages/f0/3c/d1976a9933e075291a3d67f4e949c667ff36a3e3a4a0cbd883af3c4eae5a/onnxruntime-1.23.0-cp312-cp312-macosx_13_0_x86_64.whl", hash = "sha256:053df2f9c6522b258055bce4b776aa9ea3adb4b28d2530ab07b204a3d4b04bf9", size = 19028636, upload-time = "2025-09-25T18:56:34.457Z" },
+ { url = "https://files.pythonhosted.org/packages/1a/1f/5b76864a970a23dc85f8745d045b81a9151aa101bbb426af6fa489f59364/onnxruntime-1.23.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:974e327ca3b6d43da404b9a45df1f61e2503667fde46843ee7ad1567a98f3f0b", size = 15140544, upload-time = "2025-09-25T18:56:15.9Z" },
+ { url = "https://files.pythonhosted.org/packages/0b/62/84f23952d01e07ce8aa02e657e3a0c8fa40aba0d5e11a0e9904a9063af76/onnxruntime-1.23.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:05f67edb93678cab5cd77eda89b65bb1b58f3d4c0742058742cfad8b172cfa83", size = 17274126, upload-time = "2025-09-25T19:16:11.21Z" },
+ { url = "https://files.pythonhosted.org/packages/19/90/d5b4ea0bd6805f3f21aac2fe549a5b58ee10d1c99c499d867539620a002b/onnxruntime-1.23.0-cp312-cp312-win_amd64.whl", hash = "sha256:e100f3869da4c12b17a9b942934a96a542406f860eb8beb74a68342ea43aaa55", size = 13392437, upload-time = "2025-09-25T19:16:36.066Z" },
+ { url = "https://files.pythonhosted.org/packages/c4/59/dbd5731f2188c65c22f65e5b9dde45cf68510a14ecb1eb6fabd272da94c3/onnxruntime-1.23.0-cp313-cp313-macosx_13_0_arm64.whl", hash = "sha256:b6659f17326e64f2902cd31aa5efc1af41d0e0e3bd1357a75985e358412c35ca", size = 17081033, upload-time = "2025-09-25T18:56:27.426Z" },
+ { url = "https://files.pythonhosted.org/packages/ea/fd/6a95d7ab505517192966da8df5aec491eff1b32559ce8981299192194ca3/onnxruntime-1.23.0-cp313-cp313-macosx_13_0_x86_64.whl", hash = "sha256:9ef62369a0261aa15b1399addaaf17ed398e4e2128c8548fafcd73aac13820fd", size = 19029223, upload-time = "2025-09-25T18:56:36.85Z" },
+ { url = "https://files.pythonhosted.org/packages/11/51/673cf86f574a87a4fb9d4fb2cd1ccfcf362bc7c3f2ecb1919325e7fd0fd4/onnxruntime-1.23.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0edee45d4119f7a6f187dc1b63e177e3e6c76932446006fd4f3e81540f260dfa", size = 15140613, upload-time = "2025-09-25T18:56:22.824Z" },
+ { url = "https://files.pythonhosted.org/packages/ce/ab/898f87a633f3063269fcee2f94b1e8349223f1f14fa730822d2cf6021c76/onnxruntime-1.23.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e2dc1993aa91d665faf2b17772e4e29a2999821e110c0e3d17e2b1c00d0e7f48", size = 17274274, upload-time = "2025-09-25T19:16:13.603Z" },
+ { url = "https://files.pythonhosted.org/packages/9b/69/070eae0d0369562d1dec0046ec2e3dd7c523adfae0f30b3887f81ef98c3b/onnxruntime-1.23.0-cp313-cp313-win_amd64.whl", hash = "sha256:e52c8603c4cc74746ece9966102e4fc6c2b355efc0102a9deb107f3ff86680af", size = 13392787, upload-time = "2025-09-25T19:16:38.871Z" },
+ { url = "https://files.pythonhosted.org/packages/42/8c/6f1d8ec63c887a855f65648b1c743f673191da94703b5fd207d21f17c292/onnxruntime-1.23.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:24ac2a8b2c6dd00a152a08a9cf1ba3f06b38915f6cb6cf1adbe714e16e5ff460", size = 15148462, upload-time = "2025-09-25T18:56:25.11Z" },
+ { url = "https://files.pythonhosted.org/packages/eb/59/0db51308fa479f9325ade08c343a5164153ad01dbb83b62ff661e1129d2e/onnxruntime-1.23.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ed85686e08cfb29ee96365b9a49e8a350aff7557c13d63d9f07ca3ad68975074", size = 17281939, upload-time = "2025-09-25T19:16:16.16Z" },
]
[[package]]
@@ -4547,46 +4540,48 @@ wheels = [
[[package]]
name = "pyyaml"
-version = "6.0.2"
+version = "6.0.3"
source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631, upload-time = "2024-08-06T20:33:50.674Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/9b/95/a3fac87cb7158e231b5a6012e438c647e1a87f09f8e0d123acec8ab8bf71/PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086", size = 184199, upload-time = "2024-08-06T20:31:40.178Z" },
- { url = "https://files.pythonhosted.org/packages/c7/7a/68bd47624dab8fd4afbfd3c48e3b79efe09098ae941de5b58abcbadff5cb/PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf", size = 171758, upload-time = "2024-08-06T20:31:42.173Z" },
- { url = "https://files.pythonhosted.org/packages/49/ee/14c54df452143b9ee9f0f29074d7ca5516a36edb0b4cc40c3f280131656f/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237", size = 718463, upload-time = "2024-08-06T20:31:44.263Z" },
- { url = "https://files.pythonhosted.org/packages/4d/61/de363a97476e766574650d742205be468921a7b532aa2499fcd886b62530/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b", size = 719280, upload-time = "2024-08-06T20:31:50.199Z" },
- { url = "https://files.pythonhosted.org/packages/6b/4e/1523cb902fd98355e2e9ea5e5eb237cbc5f3ad5f3075fa65087aa0ecb669/PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed", size = 751239, upload-time = "2024-08-06T20:31:52.292Z" },
- { url = "https://files.pythonhosted.org/packages/b7/33/5504b3a9a4464893c32f118a9cc045190a91637b119a9c881da1cf6b7a72/PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180", size = 695802, upload-time = "2024-08-06T20:31:53.836Z" },
- { url = "https://files.pythonhosted.org/packages/5c/20/8347dcabd41ef3a3cdc4f7b7a2aff3d06598c8779faa189cdbf878b626a4/PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68", size = 720527, upload-time = "2024-08-06T20:31:55.565Z" },
- { url = "https://files.pythonhosted.org/packages/be/aa/5afe99233fb360d0ff37377145a949ae258aaab831bde4792b32650a4378/PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99", size = 144052, upload-time = "2024-08-06T20:31:56.914Z" },
- { url = "https://files.pythonhosted.org/packages/b5/84/0fa4b06f6d6c958d207620fc60005e241ecedceee58931bb20138e1e5776/PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e", size = 161774, upload-time = "2024-08-06T20:31:58.304Z" },
- { url = "https://files.pythonhosted.org/packages/f8/aa/7af4e81f7acba21a4c6be026da38fd2b872ca46226673c89a758ebdc4fd2/PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774", size = 184612, upload-time = "2024-08-06T20:32:03.408Z" },
- { url = "https://files.pythonhosted.org/packages/8b/62/b9faa998fd185f65c1371643678e4d58254add437edb764a08c5a98fb986/PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee", size = 172040, upload-time = "2024-08-06T20:32:04.926Z" },
- { url = "https://files.pythonhosted.org/packages/ad/0c/c804f5f922a9a6563bab712d8dcc70251e8af811fce4524d57c2c0fd49a4/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c", size = 736829, upload-time = "2024-08-06T20:32:06.459Z" },
- { url = "https://files.pythonhosted.org/packages/51/16/6af8d6a6b210c8e54f1406a6b9481febf9c64a3109c541567e35a49aa2e7/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317", size = 764167, upload-time = "2024-08-06T20:32:08.338Z" },
- { url = "https://files.pythonhosted.org/packages/75/e4/2c27590dfc9992f73aabbeb9241ae20220bd9452df27483b6e56d3975cc5/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85", size = 762952, upload-time = "2024-08-06T20:32:14.124Z" },
- { url = "https://files.pythonhosted.org/packages/9b/97/ecc1abf4a823f5ac61941a9c00fe501b02ac3ab0e373c3857f7d4b83e2b6/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4", size = 735301, upload-time = "2024-08-06T20:32:16.17Z" },
- { url = "https://files.pythonhosted.org/packages/45/73/0f49dacd6e82c9430e46f4a027baa4ca205e8b0a9dce1397f44edc23559d/PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e", size = 756638, upload-time = "2024-08-06T20:32:18.555Z" },
- { url = "https://files.pythonhosted.org/packages/22/5f/956f0f9fc65223a58fbc14459bf34b4cc48dec52e00535c79b8db361aabd/PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5", size = 143850, upload-time = "2024-08-06T20:32:19.889Z" },
- { url = "https://files.pythonhosted.org/packages/ed/23/8da0bbe2ab9dcdd11f4f4557ccaf95c10b9811b13ecced089d43ce59c3c8/PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44", size = 161980, upload-time = "2024-08-06T20:32:21.273Z" },
- { url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", size = 183873, upload-time = "2024-08-06T20:32:25.131Z" },
- { url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", size = 173302, upload-time = "2024-08-06T20:32:26.511Z" },
- { url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", size = 739154, upload-time = "2024-08-06T20:32:28.363Z" },
- { url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", size = 766223, upload-time = "2024-08-06T20:32:30.058Z" },
- { url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", size = 767542, upload-time = "2024-08-06T20:32:31.881Z" },
- { url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", size = 731164, upload-time = "2024-08-06T20:32:37.083Z" },
- { url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", size = 756611, upload-time = "2024-08-06T20:32:38.898Z" },
- { url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", size = 140591, upload-time = "2024-08-06T20:32:40.241Z" },
- { url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", size = 156338, upload-time = "2024-08-06T20:32:41.93Z" },
- { url = "https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", size = 181309, upload-time = "2024-08-06T20:32:43.4Z" },
- { url = "https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", size = 171679, upload-time = "2024-08-06T20:32:44.801Z" },
- { url = "https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", size = 733428, upload-time = "2024-08-06T20:32:46.432Z" },
- { url = "https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", size = 763361, upload-time = "2024-08-06T20:32:51.188Z" },
- { url = "https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", size = 759523, upload-time = "2024-08-06T20:32:53.019Z" },
- { url = "https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", size = 726660, upload-time = "2024-08-06T20:32:54.708Z" },
- { url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597, upload-time = "2024-08-06T20:32:56.985Z" },
- { url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", size = 140527, upload-time = "2024-08-06T20:33:03.001Z" },
- { url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446, upload-time = "2024-08-06T20:33:04.33Z" },
+ { url = "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", size = 184227, upload-time = "2025-09-25T21:31:46.04Z" },
+ { url = "https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", size = 174019, upload-time = "2025-09-25T21:31:47.706Z" },
+ { url = "https://files.pythonhosted.org/packages/43/f7/0e6a5ae5599c838c696adb4e6330a59f463265bfa1e116cfd1fbb0abaaae/pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", size = 740646, upload-time = "2025-09-25T21:31:49.21Z" },
+ { url = "https://files.pythonhosted.org/packages/2f/3a/61b9db1d28f00f8fd0ae760459a5c4bf1b941baf714e207b6eb0657d2578/pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", size = 840793, upload-time = "2025-09-25T21:31:50.735Z" },
+ { url = "https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", size = 770293, upload-time = "2025-09-25T21:31:51.828Z" },
+ { url = "https://files.pythonhosted.org/packages/8b/ef/abd085f06853af0cd59fa5f913d61a8eab65d7639ff2a658d18a25d6a89d/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", size = 732872, upload-time = "2025-09-25T21:31:53.282Z" },
+ { url = "https://files.pythonhosted.org/packages/1f/15/2bc9c8faf6450a8b3c9fc5448ed869c599c0a74ba2669772b1f3a0040180/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", size = 758828, upload-time = "2025-09-25T21:31:54.807Z" },
+ { url = "https://files.pythonhosted.org/packages/a3/00/531e92e88c00f4333ce359e50c19b8d1de9fe8d581b1534e35ccfbc5f393/pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", size = 142415, upload-time = "2025-09-25T21:31:55.885Z" },
+ { url = "https://files.pythonhosted.org/packages/2a/fa/926c003379b19fca39dd4634818b00dec6c62d87faf628d1394e137354d4/pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", size = 158561, upload-time = "2025-09-25T21:31:57.406Z" },
+ { url = "https://files.pythonhosted.org/packages/6d/16/a95b6757765b7b031c9374925bb718d55e0a9ba8a1b6a12d25962ea44347/pyyaml-6.0.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e", size = 185826, upload-time = "2025-09-25T21:31:58.655Z" },
+ { url = "https://files.pythonhosted.org/packages/16/19/13de8e4377ed53079ee996e1ab0a9c33ec2faf808a4647b7b4c0d46dd239/pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824", size = 175577, upload-time = "2025-09-25T21:32:00.088Z" },
+ { url = "https://files.pythonhosted.org/packages/0c/62/d2eb46264d4b157dae1275b573017abec435397aa59cbcdab6fc978a8af4/pyyaml-6.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c", size = 775556, upload-time = "2025-09-25T21:32:01.31Z" },
+ { url = "https://files.pythonhosted.org/packages/10/cb/16c3f2cf3266edd25aaa00d6c4350381c8b012ed6f5276675b9eba8d9ff4/pyyaml-6.0.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00", size = 882114, upload-time = "2025-09-25T21:32:03.376Z" },
+ { url = "https://files.pythonhosted.org/packages/71/60/917329f640924b18ff085ab889a11c763e0b573da888e8404ff486657602/pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d", size = 806638, upload-time = "2025-09-25T21:32:04.553Z" },
+ { url = "https://files.pythonhosted.org/packages/dd/6f/529b0f316a9fd167281a6c3826b5583e6192dba792dd55e3203d3f8e655a/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a", size = 767463, upload-time = "2025-09-25T21:32:06.152Z" },
+ { url = "https://files.pythonhosted.org/packages/f2/6a/b627b4e0c1dd03718543519ffb2f1deea4a1e6d42fbab8021936a4d22589/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4", size = 794986, upload-time = "2025-09-25T21:32:07.367Z" },
+ { url = "https://files.pythonhosted.org/packages/45/91/47a6e1c42d9ee337c4839208f30d9f09caa9f720ec7582917b264defc875/pyyaml-6.0.3-cp311-cp311-win32.whl", hash = "sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b", size = 142543, upload-time = "2025-09-25T21:32:08.95Z" },
+ { url = "https://files.pythonhosted.org/packages/da/e3/ea007450a105ae919a72393cb06f122f288ef60bba2dc64b26e2646fa315/pyyaml-6.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf", size = 158763, upload-time = "2025-09-25T21:32:09.96Z" },
+ { url = "https://files.pythonhosted.org/packages/d1/33/422b98d2195232ca1826284a76852ad5a86fe23e31b009c9886b2d0fb8b2/pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196", size = 182063, upload-time = "2025-09-25T21:32:11.445Z" },
+ { url = "https://files.pythonhosted.org/packages/89/a0/6cf41a19a1f2f3feab0e9c0b74134aa2ce6849093d5517a0c550fe37a648/pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0", size = 173973, upload-time = "2025-09-25T21:32:12.492Z" },
+ { url = "https://files.pythonhosted.org/packages/ed/23/7a778b6bd0b9a8039df8b1b1d80e2e2ad78aa04171592c8a5c43a56a6af4/pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28", size = 775116, upload-time = "2025-09-25T21:32:13.652Z" },
+ { url = "https://files.pythonhosted.org/packages/65/30/d7353c338e12baef4ecc1b09e877c1970bd3382789c159b4f89d6a70dc09/pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c", size = 844011, upload-time = "2025-09-25T21:32:15.21Z" },
+ { url = "https://files.pythonhosted.org/packages/8b/9d/b3589d3877982d4f2329302ef98a8026e7f4443c765c46cfecc8858c6b4b/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc", size = 807870, upload-time = "2025-09-25T21:32:16.431Z" },
+ { url = "https://files.pythonhosted.org/packages/05/c0/b3be26a015601b822b97d9149ff8cb5ead58c66f981e04fedf4e762f4bd4/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e", size = 761089, upload-time = "2025-09-25T21:32:17.56Z" },
+ { url = "https://files.pythonhosted.org/packages/be/8e/98435a21d1d4b46590d5459a22d88128103f8da4c2d4cb8f14f2a96504e1/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea", size = 790181, upload-time = "2025-09-25T21:32:18.834Z" },
+ { url = "https://files.pythonhosted.org/packages/74/93/7baea19427dcfbe1e5a372d81473250b379f04b1bd3c4c5ff825e2327202/pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", size = 137658, upload-time = "2025-09-25T21:32:20.209Z" },
+ { url = "https://files.pythonhosted.org/packages/86/bf/899e81e4cce32febab4fb42bb97dcdf66bc135272882d1987881a4b519e9/pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", size = 154003, upload-time = "2025-09-25T21:32:21.167Z" },
+ { url = "https://files.pythonhosted.org/packages/1a/08/67bd04656199bbb51dbed1439b7f27601dfb576fb864099c7ef0c3e55531/pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", size = 140344, upload-time = "2025-09-25T21:32:22.617Z" },
+ { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669, upload-time = "2025-09-25T21:32:23.673Z" },
+ { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252, upload-time = "2025-09-25T21:32:25.149Z" },
+ { url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081, upload-time = "2025-09-25T21:32:26.575Z" },
+ { url = "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", size = 841159, upload-time = "2025-09-25T21:32:27.727Z" },
+ { url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", size = 801626, upload-time = "2025-09-25T21:32:28.878Z" },
+ { url = "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6", size = 753613, upload-time = "2025-09-25T21:32:30.178Z" },
+ { url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", size = 794115, upload-time = "2025-09-25T21:32:31.353Z" },
+ { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427, upload-time = "2025-09-25T21:32:32.58Z" },
+ { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090, upload-time = "2025-09-25T21:32:33.659Z" },
+ { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246, upload-time = "2025-09-25T21:32:34.663Z" },
]
[[package]]
@@ -4895,28 +4890,28 @@ wheels = [
[[package]]
name = "ruff"
-version = "0.13.1"
+version = "0.13.2"
source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/ab/33/c8e89216845615d14d2d42ba2bee404e7206a8db782f33400754f3799f05/ruff-0.13.1.tar.gz", hash = "sha256:88074c3849087f153d4bb22e92243ad4c1b366d7055f98726bc19aa08dc12d51", size = 5397987, upload-time = "2025-09-18T19:52:44.33Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/02/df/8d7d8c515d33adfc540e2edf6c6021ea1c5a58a678d8cfce9fae59aabcab/ruff-0.13.2.tar.gz", hash = "sha256:cb12fffd32fb16d32cef4ed16d8c7cdc27ed7c944eaa98d99d01ab7ab0b710ff", size = 5416417, upload-time = "2025-09-25T14:54:09.936Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/f3/41/ca37e340938f45cfb8557a97a5c347e718ef34702546b174e5300dbb1f28/ruff-0.13.1-py3-none-linux_armv6l.whl", hash = "sha256:b2abff595cc3cbfa55e509d89439b5a09a6ee3c252d92020bd2de240836cf45b", size = 12304308, upload-time = "2025-09-18T19:51:56.253Z" },
- { url = "https://files.pythonhosted.org/packages/ff/84/ba378ef4129415066c3e1c80d84e539a0d52feb250685091f874804f28af/ruff-0.13.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:4ee9f4249bf7f8bb3984c41bfaf6a658162cdb1b22e3103eabc7dd1dc5579334", size = 12937258, upload-time = "2025-09-18T19:52:00.184Z" },
- { url = "https://files.pythonhosted.org/packages/8d/b6/ec5e4559ae0ad955515c176910d6d7c93edcbc0ed1a3195a41179c58431d/ruff-0.13.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:5c5da4af5f6418c07d75e6f3224e08147441f5d1eac2e6ce10dcce5e616a3bae", size = 12214554, upload-time = "2025-09-18T19:52:02.753Z" },
- { url = "https://files.pythonhosted.org/packages/70/d6/cb3e3b4f03b9b0c4d4d8f06126d34b3394f6b4d764912fe80a1300696ef6/ruff-0.13.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:80524f84a01355a59a93cef98d804e2137639823bcee2931f5028e71134a954e", size = 12448181, upload-time = "2025-09-18T19:52:05.279Z" },
- { url = "https://files.pythonhosted.org/packages/d2/ea/bf60cb46d7ade706a246cd3fb99e4cfe854efa3dfbe530d049c684da24ff/ruff-0.13.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ff7f5ce8d7988767dd46a148192a14d0f48d1baea733f055d9064875c7d50389", size = 12104599, upload-time = "2025-09-18T19:52:07.497Z" },
- { url = "https://files.pythonhosted.org/packages/2d/3e/05f72f4c3d3a69e65d55a13e1dd1ade76c106d8546e7e54501d31f1dc54a/ruff-0.13.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c55d84715061f8b05469cdc9a446aa6c7294cd4bd55e86a89e572dba14374f8c", size = 13791178, upload-time = "2025-09-18T19:52:10.189Z" },
- { url = "https://files.pythonhosted.org/packages/81/e7/01b1fc403dd45d6cfe600725270ecc6a8f8a48a55bc6521ad820ed3ceaf8/ruff-0.13.1-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:ac57fed932d90fa1624c946dc67a0a3388d65a7edc7d2d8e4ca7bddaa789b3b0", size = 14814474, upload-time = "2025-09-18T19:52:12.866Z" },
- { url = "https://files.pythonhosted.org/packages/fa/92/d9e183d4ed6185a8df2ce9faa3f22e80e95b5f88d9cc3d86a6d94331da3f/ruff-0.13.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c366a71d5b4f41f86a008694f7a0d75fe409ec298685ff72dc882f882d532e36", size = 14217531, upload-time = "2025-09-18T19:52:15.245Z" },
- { url = "https://files.pythonhosted.org/packages/3b/4a/6ddb1b11d60888be224d721e01bdd2d81faaf1720592858ab8bac3600466/ruff-0.13.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4ea9d1b5ad3e7a83ee8ebb1229c33e5fe771e833d6d3dcfca7b77d95b060d38", size = 13265267, upload-time = "2025-09-18T19:52:17.649Z" },
- { url = "https://files.pythonhosted.org/packages/81/98/3f1d18a8d9ea33ef2ad508f0417fcb182c99b23258ec5e53d15db8289809/ruff-0.13.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0f70202996055b555d3d74b626406476cc692f37b13bac8828acff058c9966a", size = 13243120, upload-time = "2025-09-18T19:52:20.332Z" },
- { url = "https://files.pythonhosted.org/packages/8d/86/b6ce62ce9c12765fa6c65078d1938d2490b2b1d9273d0de384952b43c490/ruff-0.13.1-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:f8cff7a105dad631085d9505b491db33848007d6b487c3c1979dd8d9b2963783", size = 13443084, upload-time = "2025-09-18T19:52:23.032Z" },
- { url = "https://files.pythonhosted.org/packages/a1/6e/af7943466a41338d04503fb5a81b2fd07251bd272f546622e5b1599a7976/ruff-0.13.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:9761e84255443316a258dd7dfbd9bfb59c756e52237ed42494917b2577697c6a", size = 12295105, upload-time = "2025-09-18T19:52:25.263Z" },
- { url = "https://files.pythonhosted.org/packages/3f/97/0249b9a24f0f3ebd12f007e81c87cec6d311de566885e9309fcbac5b24cc/ruff-0.13.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:3d376a88c3102ef228b102211ef4a6d13df330cb0f5ca56fdac04ccec2a99700", size = 12072284, upload-time = "2025-09-18T19:52:27.478Z" },
- { url = "https://files.pythonhosted.org/packages/f6/85/0b64693b2c99d62ae65236ef74508ba39c3febd01466ef7f354885e5050c/ruff-0.13.1-py3-none-musllinux_1_2_i686.whl", hash = "sha256:cbefd60082b517a82c6ec8836989775ac05f8991715d228b3c1d86ccc7df7dae", size = 12970314, upload-time = "2025-09-18T19:52:30.212Z" },
- { url = "https://files.pythonhosted.org/packages/96/fc/342e9f28179915d28b3747b7654f932ca472afbf7090fc0c4011e802f494/ruff-0.13.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:dd16b9a5a499fe73f3c2ef09a7885cb1d97058614d601809d37c422ed1525317", size = 13422360, upload-time = "2025-09-18T19:52:32.676Z" },
- { url = "https://files.pythonhosted.org/packages/37/54/6177a0dc10bce6f43e392a2192e6018755473283d0cf43cc7e6afc182aea/ruff-0.13.1-py3-none-win32.whl", hash = "sha256:55e9efa692d7cb18580279f1fbb525146adc401f40735edf0aaeabd93099f9a0", size = 12178448, upload-time = "2025-09-18T19:52:35.545Z" },
- { url = "https://files.pythonhosted.org/packages/64/51/c6a3a33d9938007b8bdc8ca852ecc8d810a407fb513ab08e34af12dc7c24/ruff-0.13.1-py3-none-win_amd64.whl", hash = "sha256:3a3fb595287ee556de947183489f636b9f76a72f0fa9c028bdcabf5bab2cc5e5", size = 13286458, upload-time = "2025-09-18T19:52:38.198Z" },
- { url = "https://files.pythonhosted.org/packages/fd/04/afc078a12cf68592345b1e2d6ecdff837d286bac023d7a22c54c7a698c5b/ruff-0.13.1-py3-none-win_arm64.whl", hash = "sha256:c0bae9ffd92d54e03c2bf266f466da0a65e145f298ee5b5846ed435f6a00518a", size = 12437893, upload-time = "2025-09-18T19:52:41.283Z" },
+ { url = "https://files.pythonhosted.org/packages/6e/84/5716a7fa4758e41bf70e603e13637c42cfb9dbf7ceb07180211b9bbf75ef/ruff-0.13.2-py3-none-linux_armv6l.whl", hash = "sha256:3796345842b55f033a78285e4f1641078f902020d8450cade03aad01bffd81c3", size = 12343254, upload-time = "2025-09-25T14:53:27.784Z" },
+ { url = "https://files.pythonhosted.org/packages/9b/77/c7042582401bb9ac8eff25360e9335e901d7a1c0749a2b28ba4ecb239991/ruff-0.13.2-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:ff7e4dda12e683e9709ac89e2dd436abf31a4d8a8fc3d89656231ed808e231d2", size = 13040891, upload-time = "2025-09-25T14:53:31.38Z" },
+ { url = "https://files.pythonhosted.org/packages/c6/15/125a7f76eb295cb34d19c6778e3a82ace33730ad4e6f28d3427e134a02e0/ruff-0.13.2-py3-none-macosx_11_0_arm64.whl", hash = "sha256:c75e9d2a2fafd1fdd895d0e7e24b44355984affdde1c412a6f6d3f6e16b22d46", size = 12243588, upload-time = "2025-09-25T14:53:33.543Z" },
+ { url = "https://files.pythonhosted.org/packages/9e/eb/0093ae04a70f81f8be7fd7ed6456e926b65d238fc122311293d033fdf91e/ruff-0.13.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cceac74e7bbc53ed7d15d1042ffe7b6577bf294611ad90393bf9b2a0f0ec7cb6", size = 12491359, upload-time = "2025-09-25T14:53:35.892Z" },
+ { url = "https://files.pythonhosted.org/packages/43/fe/72b525948a6956f07dad4a6f122336b6a05f2e3fd27471cea612349fedb9/ruff-0.13.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6ae3f469b5465ba6d9721383ae9d49310c19b452a161b57507764d7ef15f4b07", size = 12162486, upload-time = "2025-09-25T14:53:38.171Z" },
+ { url = "https://files.pythonhosted.org/packages/6a/e3/0fac422bbbfb2ea838023e0d9fcf1f30183d83ab2482800e2cb892d02dfe/ruff-0.13.2-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f8f9e3cd6714358238cd6626b9d43026ed19c0c018376ac1ef3c3a04ffb42d8", size = 13871203, upload-time = "2025-09-25T14:53:41.943Z" },
+ { url = "https://files.pythonhosted.org/packages/6b/82/b721c8e3ec5df6d83ba0e45dcf00892c4f98b325256c42c38ef136496cbf/ruff-0.13.2-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:c6ed79584a8f6cbe2e5d7dbacf7cc1ee29cbdb5df1172e77fbdadc8bb85a1f89", size = 14929635, upload-time = "2025-09-25T14:53:43.953Z" },
+ { url = "https://files.pythonhosted.org/packages/c4/a0/ad56faf6daa507b83079a1ad7a11694b87d61e6bf01c66bd82b466f21821/ruff-0.13.2-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aed130b2fde049cea2019f55deb939103123cdd191105f97a0599a3e753d61b0", size = 14338783, upload-time = "2025-09-25T14:53:46.205Z" },
+ { url = "https://files.pythonhosted.org/packages/47/77/ad1d9156db8f99cd01ee7e29d74b34050e8075a8438e589121fcd25c4b08/ruff-0.13.2-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1887c230c2c9d65ed1b4e4cfe4d255577ea28b718ae226c348ae68df958191aa", size = 13355322, upload-time = "2025-09-25T14:53:48.164Z" },
+ { url = "https://files.pythonhosted.org/packages/64/8b/e87cfca2be6f8b9f41f0bb12dc48c6455e2d66df46fe61bb441a226f1089/ruff-0.13.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5bcb10276b69b3cfea3a102ca119ffe5c6ba3901e20e60cf9efb53fa417633c3", size = 13354427, upload-time = "2025-09-25T14:53:50.486Z" },
+ { url = "https://files.pythonhosted.org/packages/7f/df/bf382f3fbead082a575edb860897287f42b1b3c694bafa16bc9904c11ed3/ruff-0.13.2-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:afa721017aa55a555b2ff7944816587f1cb813c2c0a882d158f59b832da1660d", size = 13537637, upload-time = "2025-09-25T14:53:52.887Z" },
+ { url = "https://files.pythonhosted.org/packages/51/70/1fb7a7c8a6fc8bd15636288a46e209e81913b87988f26e1913d0851e54f4/ruff-0.13.2-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:1dbc875cf3720c64b3990fef8939334e74cb0ca65b8dbc61d1f439201a38101b", size = 12340025, upload-time = "2025-09-25T14:53:54.88Z" },
+ { url = "https://files.pythonhosted.org/packages/4c/27/1e5b3f1c23ca5dd4106d9d580e5c13d9acb70288bff614b3d7b638378cc9/ruff-0.13.2-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:5b939a1b2a960e9742e9a347e5bbc9b3c3d2c716f86c6ae273d9cbd64f193f22", size = 12133449, upload-time = "2025-09-25T14:53:57.089Z" },
+ { url = "https://files.pythonhosted.org/packages/2d/09/b92a5ccee289f11ab128df57d5911224197d8d55ef3bd2043534ff72ca54/ruff-0.13.2-py3-none-musllinux_1_2_i686.whl", hash = "sha256:50e2d52acb8de3804fc5f6e2fa3ae9bdc6812410a9e46837e673ad1f90a18736", size = 13051369, upload-time = "2025-09-25T14:53:59.124Z" },
+ { url = "https://files.pythonhosted.org/packages/89/99/26c9d1c7d8150f45e346dc045cc49f23e961efceb4a70c47dea0960dea9a/ruff-0.13.2-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:3196bc13ab2110c176b9a4ae5ff7ab676faaa1964b330a1383ba20e1e19645f2", size = 13523644, upload-time = "2025-09-25T14:54:01.622Z" },
+ { url = "https://files.pythonhosted.org/packages/f7/00/e7f1501e81e8ec290e79527827af1d88f541d8d26151751b46108978dade/ruff-0.13.2-py3-none-win32.whl", hash = "sha256:7c2a0b7c1e87795fec3404a485096bcd790216c7c146a922d121d8b9c8f1aaac", size = 12245990, upload-time = "2025-09-25T14:54:03.647Z" },
+ { url = "https://files.pythonhosted.org/packages/ee/bd/d9f33a73de84fafd0146c6fba4f497c4565fe8fa8b46874b8e438869abc2/ruff-0.13.2-py3-none-win_amd64.whl", hash = "sha256:17d95fb32218357c89355f6f6f9a804133e404fc1f65694372e02a557edf8585", size = 13324004, upload-time = "2025-09-25T14:54:06.05Z" },
+ { url = "https://files.pythonhosted.org/packages/c3/12/28fa2f597a605884deb0f65c1b1ae05111051b2a7030f5d8a4ff7f4599ba/ruff-0.13.2-py3-none-win_arm64.whl", hash = "sha256:da711b14c530412c827219312b7d7fbb4877fb31150083add7e8c5336549cea7", size = 12484437, upload-time = "2025-09-25T14:54:08.022Z" },
]
[[package]]
@@ -5458,68 +5453,27 @@ wheels = [
[[package]]
name = "tokenizers"
-version = "0.20.3"
+version = "0.22.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "huggingface-hub" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/da/25/b1681c1c30ea3ea6e584ae3fffd552430b12faa599b558c4c4783f56d7ff/tokenizers-0.20.3.tar.gz", hash = "sha256:2278b34c5d0dd78e087e1ca7f9b1dcbf129d80211afa645f214bd6e051037539", size = 340513, upload-time = "2024-11-05T17:34:10.403Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/1c/46/fb6854cec3278fbfa4a75b50232c77622bc517ac886156e6afbfa4d8fc6e/tokenizers-0.22.1.tar.gz", hash = "sha256:61de6522785310a309b3407bac22d99c4db5dba349935e99e4d15ea2226af2d9", size = 363123, upload-time = "2025-09-19T09:49:23.424Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/c8/51/421bb0052fc4333f7c1e3231d8c6607552933d919b628c8fabd06f60ba1e/tokenizers-0.20.3-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:31ccab28dbb1a9fe539787210b0026e22debeab1662970f61c2d921f7557f7e4", size = 2674308, upload-time = "2024-11-05T17:30:25.423Z" },
- { url = "https://files.pythonhosted.org/packages/a6/e9/f651f8d27614fd59af387f4dfa568b55207e5fac8d06eec106dc00b921c4/tokenizers-0.20.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c6361191f762bda98c773da418cf511cbaa0cb8d0a1196f16f8c0119bde68ff8", size = 2559363, upload-time = "2024-11-05T17:30:28.841Z" },
- { url = "https://files.pythonhosted.org/packages/e3/e8/0e9f81a09ab79f409eabfd99391ca519e315496694671bebca24c3e90448/tokenizers-0.20.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f128d5da1202b78fa0a10d8d938610472487da01b57098d48f7e944384362514", size = 2892896, upload-time = "2024-11-05T17:30:30.429Z" },
- { url = "https://files.pythonhosted.org/packages/b0/72/15fdbc149e05005e99431ecd471807db2241983deafe1e704020f608f40e/tokenizers-0.20.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:79c4121a2e9433ad7ef0769b9ca1f7dd7fa4c0cd501763d0a030afcbc6384481", size = 2802785, upload-time = "2024-11-05T17:30:32.045Z" },
- { url = "https://files.pythonhosted.org/packages/26/44/1f8aea48f9bb117d966b7272484671b33a509f6217a8e8544d79442c90db/tokenizers-0.20.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7850fde24197fe5cd6556e2fdba53a6d3bae67c531ea33a3d7c420b90904141", size = 3086060, upload-time = "2024-11-05T17:30:34.11Z" },
- { url = "https://files.pythonhosted.org/packages/2e/83/82ba40da99870b3a0b801cffaf4f099f088a84c7e07d32cc6ca751ce08e6/tokenizers-0.20.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b357970c095dc134978a68c67d845a1e3803ab7c4fbb39195bde914e7e13cf8b", size = 3096760, upload-time = "2024-11-05T17:30:36.276Z" },
- { url = "https://files.pythonhosted.org/packages/f3/46/7a025404201d937f86548928616c0a164308aa3998e546efdf798bf5ee9c/tokenizers-0.20.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a333d878c4970b72d6c07848b90c05f6b045cf9273fc2bc04a27211721ad6118", size = 3380165, upload-time = "2024-11-05T17:30:37.642Z" },
- { url = "https://files.pythonhosted.org/packages/aa/49/15fae66ac62e49255eeedbb7f4127564b2c3f3aef2009913f525732d1a08/tokenizers-0.20.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1fd9fee817f655a8f50049f685e224828abfadd436b8ff67979fc1d054b435f1", size = 2994038, upload-time = "2024-11-05T17:30:40.075Z" },
- { url = "https://files.pythonhosted.org/packages/f4/64/693afc9ba2393c2eed85c02bacb44762f06a29f0d1a5591fa5b40b39c0a2/tokenizers-0.20.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:9e7816808b402129393a435ea2a509679b41246175d6e5e9f25b8692bfaa272b", size = 8977285, upload-time = "2024-11-05T17:30:42.095Z" },
- { url = "https://files.pythonhosted.org/packages/be/7e/6126c18694310fe07970717929e889898767c41fbdd95b9078e8aec0f9ef/tokenizers-0.20.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ba96367db9d8a730d3a1d5996b4b7babb846c3994b8ef14008cd8660f55db59d", size = 9294890, upload-time = "2024-11-05T17:30:44.563Z" },
- { url = "https://files.pythonhosted.org/packages/71/7d/5e3307a1091c8608a1e58043dff49521bc19553c6e9548c7fac6840cc2c4/tokenizers-0.20.3-cp310-none-win32.whl", hash = "sha256:ee31ba9d7df6a98619426283e80c6359f167e2e9882d9ce1b0254937dbd32f3f", size = 2196883, upload-time = "2024-11-05T17:30:46.792Z" },
- { url = "https://files.pythonhosted.org/packages/47/62/aaf5b2a526b3b10c20985d9568ff8c8f27159345eaef3347831e78cd5894/tokenizers-0.20.3-cp310-none-win_amd64.whl", hash = "sha256:a845c08fdad554fe0871d1255df85772f91236e5fd6b9287ef8b64f5807dbd0c", size = 2381637, upload-time = "2024-11-05T17:30:48.156Z" },
- { url = "https://files.pythonhosted.org/packages/c6/93/6742ef9206409d5ce1fdf44d5ca1687cdc3847ba0485424e2c731e6bcf67/tokenizers-0.20.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:585b51e06ca1f4839ce7759941e66766d7b060dccfdc57c4ca1e5b9a33013a90", size = 2674224, upload-time = "2024-11-05T17:30:49.972Z" },
- { url = "https://files.pythonhosted.org/packages/aa/14/e75ece72e99f6ef9ae07777ca9fdd78608f69466a5cecf636e9bd2f25d5c/tokenizers-0.20.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:61cbf11954f3b481d08723ebd048ba4b11e582986f9be74d2c3bdd9293a4538d", size = 2558991, upload-time = "2024-11-05T17:30:51.666Z" },
- { url = "https://files.pythonhosted.org/packages/46/54/033b5b2ba0c3ae01e026c6f7ced147d41a2fa1c573d00a66cb97f6d7f9b3/tokenizers-0.20.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef820880d5e4e8484e2fa54ff8d297bb32519eaa7815694dc835ace9130a3eea", size = 2892476, upload-time = "2024-11-05T17:30:53.505Z" },
- { url = "https://files.pythonhosted.org/packages/e6/b0/cc369fb3297d61f3311cab523d16d48c869dc2f0ba32985dbf03ff811041/tokenizers-0.20.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:67ef4dcb8841a4988cd00dd288fb95dfc8e22ed021f01f37348fd51c2b055ba9", size = 2802775, upload-time = "2024-11-05T17:30:55.229Z" },
- { url = "https://files.pythonhosted.org/packages/1a/74/62ad983e8ea6a63e04ed9c5be0b605056bf8aac2f0125f9b5e0b3e2b89fa/tokenizers-0.20.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff1ef8bd47a02b0dc191688ccb4da53600df5d4c9a05a4b68e1e3de4823e78eb", size = 3086138, upload-time = "2024-11-05T17:30:57.332Z" },
- { url = "https://files.pythonhosted.org/packages/6b/ac/4637ba619db25094998523f9e6f5b456e1db1f8faa770a3d925d436db0c3/tokenizers-0.20.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:444d188186eab3148baf0615b522461b41b1f0cd58cd57b862ec94b6ac9780f1", size = 3098076, upload-time = "2024-11-05T17:30:59.455Z" },
- { url = "https://files.pythonhosted.org/packages/58/ce/9793f2dc2ce529369807c9c74e42722b05034af411d60f5730b720388c7d/tokenizers-0.20.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:37c04c032c1442740b2c2d925f1857885c07619224a533123ac7ea71ca5713da", size = 3379650, upload-time = "2024-11-05T17:31:01.264Z" },
- { url = "https://files.pythonhosted.org/packages/50/f6/2841de926bc4118af996eaf0bdf0ea5b012245044766ffc0347e6c968e63/tokenizers-0.20.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:453c7769d22231960ee0e883d1005c93c68015025a5e4ae56275406d94a3c907", size = 2994005, upload-time = "2024-11-05T17:31:02.985Z" },
- { url = "https://files.pythonhosted.org/packages/a3/b2/00915c4fed08e9505d37cf6eaab45b12b4bff8f6719d459abcb9ead86a4b/tokenizers-0.20.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:4bb31f7b2847e439766aaa9cc7bccf7ac7088052deccdb2275c952d96f691c6a", size = 8977488, upload-time = "2024-11-05T17:31:04.424Z" },
- { url = "https://files.pythonhosted.org/packages/e9/ac/1c069e7808181ff57bcf2d39e9b6fbee9133a55410e6ebdaa89f67c32e83/tokenizers-0.20.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:843729bf0f991b29655a069a2ff58a4c24375a553c70955e15e37a90dd4e045c", size = 9294935, upload-time = "2024-11-05T17:31:06.882Z" },
- { url = "https://files.pythonhosted.org/packages/50/47/722feb70ee68d1c4412b12d0ea4acc2713179fd63f054913990f9e259492/tokenizers-0.20.3-cp311-none-win32.whl", hash = "sha256:efcce3a927b1e20ca694ba13f7a68c59b0bd859ef71e441db68ee42cf20c2442", size = 2197175, upload-time = "2024-11-05T17:31:09.385Z" },
- { url = "https://files.pythonhosted.org/packages/75/68/1b4f928b15a36ed278332ac75d66d7eb65d865bf344d049c452c18447bf9/tokenizers-0.20.3-cp311-none-win_amd64.whl", hash = "sha256:88301aa0801f225725b6df5dea3d77c80365ff2362ca7e252583f2b4809c4cc0", size = 2381616, upload-time = "2024-11-05T17:31:10.685Z" },
- { url = "https://files.pythonhosted.org/packages/07/00/92a08af2a6b0c88c50f1ab47d7189e695722ad9714b0ee78ea5e1e2e1def/tokenizers-0.20.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:49d12a32e190fad0e79e5bdb788d05da2f20d8e006b13a70859ac47fecf6ab2f", size = 2667951, upload-time = "2024-11-05T17:31:12.356Z" },
- { url = "https://files.pythonhosted.org/packages/ec/9a/e17a352f0bffbf415cf7d73756f5c73a3219225fc5957bc2f39d52c61684/tokenizers-0.20.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:282848cacfb9c06d5e51489f38ec5aa0b3cd1e247a023061945f71f41d949d73", size = 2555167, upload-time = "2024-11-05T17:31:13.839Z" },
- { url = "https://files.pythonhosted.org/packages/27/37/d108df55daf4f0fcf1f58554692ff71687c273d870a34693066f0847be96/tokenizers-0.20.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:abe4e08c7d0cd6154c795deb5bf81d2122f36daf075e0c12a8b050d824ef0a64", size = 2898389, upload-time = "2024-11-05T17:31:15.12Z" },
- { url = "https://files.pythonhosted.org/packages/b2/27/32f29da16d28f59472fa7fb38e7782069748c7e9ab9854522db20341624c/tokenizers-0.20.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ca94fc1b73b3883c98f0c88c77700b13d55b49f1071dfd57df2b06f3ff7afd64", size = 2795866, upload-time = "2024-11-05T17:31:16.857Z" },
- { url = "https://files.pythonhosted.org/packages/29/4e/8a9a3c89e128c4a40f247b501c10279d2d7ade685953407c4d94c8c0f7a7/tokenizers-0.20.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef279c7e239f95c8bdd6ff319d9870f30f0d24915b04895f55b1adcf96d6c60d", size = 3085446, upload-time = "2024-11-05T17:31:18.392Z" },
- { url = "https://files.pythonhosted.org/packages/b4/3b/a2a7962c496ebcd95860ca99e423254f760f382cd4bd376f8895783afaf5/tokenizers-0.20.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:16384073973f6ccbde9852157a4fdfe632bb65208139c9d0c0bd0176a71fd67f", size = 3094378, upload-time = "2024-11-05T17:31:20.329Z" },
- { url = "https://files.pythonhosted.org/packages/1f/f4/a8a33f0192a1629a3bd0afcad17d4d221bbf9276da4b95d226364208d5eb/tokenizers-0.20.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:312d522caeb8a1a42ebdec87118d99b22667782b67898a76c963c058a7e41d4f", size = 3385755, upload-time = "2024-11-05T17:31:21.778Z" },
- { url = "https://files.pythonhosted.org/packages/9e/65/c83cb3545a65a9eaa2e13b22c93d5e00bd7624b354a44adbdc93d5d9bd91/tokenizers-0.20.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2b7cb962564785a83dafbba0144ecb7f579f1d57d8c406cdaa7f32fe32f18ad", size = 2997679, upload-time = "2024-11-05T17:31:23.134Z" },
- { url = "https://files.pythonhosted.org/packages/55/e9/a80d4e592307688a67c7c59ab77e03687b6a8bd92eb5db763a2c80f93f57/tokenizers-0.20.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:124c5882ebb88dadae1fc788a582299fcd3a8bd84fc3e260b9918cf28b8751f5", size = 8989296, upload-time = "2024-11-05T17:31:24.953Z" },
- { url = "https://files.pythonhosted.org/packages/90/af/60c957af8d2244321124e893828f1a4817cde1a2d08d09d423b73f19bd2f/tokenizers-0.20.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2b6e54e71f84c4202111a489879005cb14b92616a87417f6c102c833af961ea2", size = 9303621, upload-time = "2024-11-05T17:31:27.341Z" },
- { url = "https://files.pythonhosted.org/packages/be/a9/96172310ee141009646d63a1ca267c099c462d747fe5ef7e33f74e27a683/tokenizers-0.20.3-cp312-none-win32.whl", hash = "sha256:83d9bfbe9af86f2d9df4833c22e94d94750f1d0cd9bfb22a7bb90a86f61cdb1c", size = 2188979, upload-time = "2024-11-05T17:31:29.483Z" },
- { url = "https://files.pythonhosted.org/packages/bd/68/61d85ae7ae96dde7d0974ff3538db75d5cdc29be2e4329cd7fc51a283e22/tokenizers-0.20.3-cp312-none-win_amd64.whl", hash = "sha256:44def74cee574d609a36e17c8914311d1b5dbcfe37c55fd29369d42591b91cf2", size = 2380725, upload-time = "2024-11-05T17:31:31.315Z" },
- { url = "https://files.pythonhosted.org/packages/07/19/36e9eaafb229616cb8502b42030fa7fe347550e76cb618de71b498fc3222/tokenizers-0.20.3-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:e0b630e0b536ef0e3c8b42c685c1bc93bd19e98c0f1543db52911f8ede42cf84", size = 2666813, upload-time = "2024-11-05T17:31:32.783Z" },
- { url = "https://files.pythonhosted.org/packages/b9/c7/e2ce1d4f756c8a62ef93fdb4df877c2185339b6d63667b015bf70ea9d34b/tokenizers-0.20.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a02d160d2b19bcbfdf28bd9a4bf11be4cb97d0499c000d95d4c4b1a4312740b6", size = 2555354, upload-time = "2024-11-05T17:31:34.208Z" },
- { url = "https://files.pythonhosted.org/packages/7c/cf/5309c2d173a6a67f9ec8697d8e710ea32418de6fd8541778032c202a1c3e/tokenizers-0.20.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e3d80d89b068bc30034034b5319218c7c0a91b00af19679833f55f3becb6945", size = 2897745, upload-time = "2024-11-05T17:31:35.733Z" },
- { url = "https://files.pythonhosted.org/packages/2c/e5/af3078e32f225e680e69d61f78855880edb8d53f5850a1834d519b2b103f/tokenizers-0.20.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:174a54910bed1b089226512b4458ea60d6d6fd93060254734d3bc3540953c51c", size = 2794385, upload-time = "2024-11-05T17:31:37.497Z" },
- { url = "https://files.pythonhosted.org/packages/0b/a7/bc421fe46650cc4eb4a913a236b88c243204f32c7480684d2f138925899e/tokenizers-0.20.3-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:098b8a632b8656aa5802c46689462c5c48f02510f24029d71c208ec2c822e771", size = 3084580, upload-time = "2024-11-05T17:31:39.456Z" },
- { url = "https://files.pythonhosted.org/packages/c6/22/97e1e95ee81f75922c9f569c23cb2b1fdc7f5a7a29c4c9fae17e63f751a6/tokenizers-0.20.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:78c8c143e3ae41e718588281eb3e212c2b31623c9d6d40410ec464d7d6221fb5", size = 3093581, upload-time = "2024-11-05T17:31:41.224Z" },
- { url = "https://files.pythonhosted.org/packages/d5/14/f0df0ee3b9e516121e23c0099bccd7b9f086ba9150021a750e99b16ce56f/tokenizers-0.20.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2b26b0aadb18cd8701077362ba359a06683662d5cafe3e8e8aba10eb05c037f1", size = 3385934, upload-time = "2024-11-05T17:31:43.811Z" },
- { url = "https://files.pythonhosted.org/packages/66/52/7a171bd4929e3ffe61a29b4340fe5b73484709f92a8162a18946e124c34c/tokenizers-0.20.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:07d7851a72717321022f3774e84aa9d595a041d643fafa2e87fbc9b18711dac0", size = 2997311, upload-time = "2024-11-05T17:31:46.224Z" },
- { url = "https://files.pythonhosted.org/packages/7c/64/f1993bb8ebf775d56875ca0d50a50f2648bfbbb143da92fe2e6ceeb4abd5/tokenizers-0.20.3-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:bd44e48a430ada902c6266a8245f5036c4fe744fcb51f699999fbe82aa438797", size = 8988601, upload-time = "2024-11-05T17:31:47.907Z" },
- { url = "https://files.pythonhosted.org/packages/d6/3f/49fa63422159bbc2f2a4ac5bfc597d04d4ec0ad3d2ef46649b5e9a340e37/tokenizers-0.20.3-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:a4c186bb006ccbe1f5cc4e0380d1ce7806f5955c244074fd96abc55e27b77f01", size = 9303950, upload-time = "2024-11-05T17:31:50.674Z" },
- { url = "https://files.pythonhosted.org/packages/66/11/79d91aeb2817ad1993ef61c690afe73e6dbedbfb21918b302ef5a2ba9bfb/tokenizers-0.20.3-cp313-none-win32.whl", hash = "sha256:6e19e0f1d854d6ab7ea0c743d06e764d1d9a546932be0a67f33087645f00fe13", size = 2188941, upload-time = "2024-11-05T17:31:53.334Z" },
- { url = "https://files.pythonhosted.org/packages/c2/ff/ac8410f868fb8b14b5e619efa304aa119cb8a40bd7df29fc81a898e64f99/tokenizers-0.20.3-cp313-none-win_amd64.whl", hash = "sha256:d50ede425c7e60966a9680d41b58b3a0950afa1bb570488e2972fa61662c4273", size = 2380269, upload-time = "2024-11-05T17:31:54.796Z" },
- { url = "https://files.pythonhosted.org/packages/29/cd/ff1586dd572aaf1637d59968df3f6f6532fa255f4638fbc29f6d27e0b690/tokenizers-0.20.3-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e919f2e3e68bb51dc31de4fcbbeff3bdf9c1cad489044c75e2b982a91059bd3c", size = 2672044, upload-time = "2024-11-05T17:33:07.796Z" },
- { url = "https://files.pythonhosted.org/packages/b5/9e/7a2c00abbc8edb021ee0b1f12aab76a7b7824b49f94bcd9f075d0818d4b0/tokenizers-0.20.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b8e9608f2773996cc272156e305bd79066163a66b0390fe21750aff62df1ac07", size = 2558841, upload-time = "2024-11-05T17:33:09.542Z" },
- { url = "https://files.pythonhosted.org/packages/8e/c1/6af62ef61316f33ecf785bbb2bee4292f34ea62b491d4480ad9b09acf6b6/tokenizers-0.20.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39270a7050deaf50f7caff4c532c01b3c48f6608d42b3eacdebdc6795478c8df", size = 2897936, upload-time = "2024-11-05T17:33:11.413Z" },
- { url = "https://files.pythonhosted.org/packages/9a/0b/c076b2ff3ee6dc70c805181fbe325668b89cfee856f8dfa24cc9aa293c84/tokenizers-0.20.3-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e005466632b1c5d2d2120f6de8aa768cc9d36cd1ab7d51d0c27a114c91a1e6ee", size = 3082688, upload-time = "2024-11-05T17:33:13.538Z" },
- { url = "https://files.pythonhosted.org/packages/0a/60/56510124933136c2e90879e1c81603cfa753ae5a87830e3ef95056b20d8f/tokenizers-0.20.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a07962340b36189b6c8feda552ea1bfeee6cf067ff922a1d7760662c2ee229e5", size = 2998924, upload-time = "2024-11-05T17:33:16.249Z" },
- { url = "https://files.pythonhosted.org/packages/68/60/4107b618b7b9155cb34ad2e0fc90946b7e71f041b642122fb6314f660688/tokenizers-0.20.3-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:55046ad3dd5f2b3c67501fcc8c9cbe3e901d8355f08a3b745e9b57894855f85b", size = 8989514, upload-time = "2024-11-05T17:33:18.161Z" },
- { url = "https://files.pythonhosted.org/packages/e8/bd/48475818e614b73316baf37ac1e4e51b578bbdf58651812d7e55f43b88d8/tokenizers-0.20.3-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:efcf0eb939988b627558aaf2b9dc3e56d759cad2e0cfa04fcab378e4b48fc4fd", size = 9303476, upload-time = "2024-11-05T17:33:21.251Z" },
+ { url = "https://files.pythonhosted.org/packages/bf/33/f4b2d94ada7ab297328fc671fed209368ddb82f965ec2224eb1892674c3a/tokenizers-0.22.1-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:59fdb013df17455e5f950b4b834a7b3ee2e0271e6378ccb33aa74d178b513c73", size = 3069318, upload-time = "2025-09-19T09:49:11.848Z" },
+ { url = "https://files.pythonhosted.org/packages/1c/58/2aa8c874d02b974990e89ff95826a4852a8b2a273c7d1b4411cdd45a4565/tokenizers-0.22.1-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:8d4e484f7b0827021ac5f9f71d4794aaef62b979ab7608593da22b1d2e3c4edc", size = 2926478, upload-time = "2025-09-19T09:49:09.759Z" },
+ { url = "https://files.pythonhosted.org/packages/1e/3b/55e64befa1e7bfea963cf4b787b2cea1011362c4193f5477047532ce127e/tokenizers-0.22.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19d2962dd28bc67c1f205ab180578a78eef89ac60ca7ef7cbe9635a46a56422a", size = 3256994, upload-time = "2025-09-19T09:48:56.701Z" },
+ { url = "https://files.pythonhosted.org/packages/71/0b/fbfecf42f67d9b7b80fde4aabb2b3110a97fac6585c9470b5bff103a80cb/tokenizers-0.22.1-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:38201f15cdb1f8a6843e6563e6e79f4abd053394992b9bbdf5213ea3469b4ae7", size = 3153141, upload-time = "2025-09-19T09:48:59.749Z" },
+ { url = "https://files.pythonhosted.org/packages/17/a9/b38f4e74e0817af8f8ef925507c63c6ae8171e3c4cb2d5d4624bf58fca69/tokenizers-0.22.1-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d1cbe5454c9a15df1b3443c726063d930c16f047a3cc724b9e6e1a91140e5a21", size = 3508049, upload-time = "2025-09-19T09:49:05.868Z" },
+ { url = "https://files.pythonhosted.org/packages/d2/48/dd2b3dac46bb9134a88e35d72e1aa4869579eacc1a27238f1577270773ff/tokenizers-0.22.1-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e7d094ae6312d69cc2a872b54b91b309f4f6fbce871ef28eb27b52a98e4d0214", size = 3710730, upload-time = "2025-09-19T09:49:01.832Z" },
+ { url = "https://files.pythonhosted.org/packages/93/0e/ccabc8d16ae4ba84a55d41345207c1e2ea88784651a5a487547d80851398/tokenizers-0.22.1-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:afd7594a56656ace95cdd6df4cca2e4059d294c5cfb1679c57824b605556cb2f", size = 3412560, upload-time = "2025-09-19T09:49:03.867Z" },
+ { url = "https://files.pythonhosted.org/packages/d0/c6/dc3a0db5a6766416c32c034286d7c2d406da1f498e4de04ab1b8959edd00/tokenizers-0.22.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2ef6063d7a84994129732b47e7915e8710f27f99f3a3260b8a38fc7ccd083f4", size = 3250221, upload-time = "2025-09-19T09:49:07.664Z" },
+ { url = "https://files.pythonhosted.org/packages/d7/a6/2c8486eef79671601ff57b093889a345dd3d576713ef047776015dc66de7/tokenizers-0.22.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ba0a64f450b9ef412c98f6bcd2a50c6df6e2443b560024a09fa6a03189726879", size = 9345569, upload-time = "2025-09-19T09:49:14.214Z" },
+ { url = "https://files.pythonhosted.org/packages/6b/16/32ce667f14c35537f5f605fe9bea3e415ea1b0a646389d2295ec348d5657/tokenizers-0.22.1-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:331d6d149fa9c7d632cde4490fb8bbb12337fa3a0232e77892be656464f4b446", size = 9271599, upload-time = "2025-09-19T09:49:16.639Z" },
+ { url = "https://files.pythonhosted.org/packages/51/7c/a5f7898a3f6baa3fc2685c705e04c98c1094c523051c805cdd9306b8f87e/tokenizers-0.22.1-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:607989f2ea68a46cb1dfbaf3e3aabdf3f21d8748312dbeb6263d1b3b66c5010a", size = 9533862, upload-time = "2025-09-19T09:49:19.146Z" },
+ { url = "https://files.pythonhosted.org/packages/36/65/7e75caea90bc73c1dd8d40438adf1a7bc26af3b8d0a6705ea190462506e1/tokenizers-0.22.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a0f307d490295717726598ef6fa4f24af9d484809223bbc253b201c740a06390", size = 9681250, upload-time = "2025-09-19T09:49:21.501Z" },
+ { url = "https://files.pythonhosted.org/packages/30/2c/959dddef581b46e6209da82df3b78471e96260e2bc463f89d23b1bf0e52a/tokenizers-0.22.1-cp39-abi3-win32.whl", hash = "sha256:b5120eed1442765cd90b903bb6cfef781fd8fe64e34ccaecbae4c619b7b12a82", size = 2472003, upload-time = "2025-09-19T09:49:27.089Z" },
+ { url = "https://files.pythonhosted.org/packages/b3/46/e33a8c93907b631a99377ef4c5f817ab453d0b34f93529421f42ff559671/tokenizers-0.22.1-cp39-abi3-win_amd64.whl", hash = "sha256:65fd6e3fb11ca1e78a6a93602490f134d1fdeb13bcef99389d5102ea318ed138", size = 2674684, upload-time = "2025-09-19T09:49:24.953Z" },
]
[[package]]
@@ -5678,7 +5632,7 @@ wheels = [
[[package]]
name = "transformers"
-version = "4.46.3"
+version = "4.56.2"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "filelock" },
@@ -5693,9 +5647,9 @@ dependencies = [
{ name = "tokenizers" },
{ name = "tqdm" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/37/5a/58f96c83e566f907ae39f16d4401bbefd8bb85c60bd1e6a95c419752ab90/transformers-4.46.3.tar.gz", hash = "sha256:8ee4b3ae943fe33e82afff8e837f4b052058b07ca9be3cb5b729ed31295f72cc", size = 8627944, upload-time = "2024-11-18T22:13:01.012Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/e5/82/0bcfddd134cdf53440becb5e738257cc3cf34cf229d63b57bfd288e6579f/transformers-4.56.2.tar.gz", hash = "sha256:5e7c623e2d7494105c726dd10f6f90c2c99a55ebe86eef7233765abd0cb1c529", size = 9844296, upload-time = "2025-09-19T15:16:26.778Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/51/51/b87caa939fedf307496e4dbf412f4b909af3d9ca8b189fc3b65c1faa456f/transformers-4.46.3-py3-none-any.whl", hash = "sha256:a12ef6f52841fd190a3e5602145b542d03507222f2c64ebb7ee92e8788093aef", size = 10034536, upload-time = "2024-11-18T22:12:57.024Z" },
+ { url = "https://files.pythonhosted.org/packages/70/26/2591b48412bde75e33bfd292034103ffe41743cacd03120e3242516cd143/transformers-4.56.2-py3-none-any.whl", hash = "sha256:79c03d0e85b26cb573c109ff9eafa96f3c8d4febfd8a0774e8bba32702dd6dde", size = 11608055, upload-time = "2025-09-19T15:16:23.736Z" },
]
[[package]]
@@ -5703,7 +5657,7 @@ name = "triton"
version = "3.4.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "setuptools", marker = "(platform_machine != 'aarch64' and sys_platform == 'linux') or (sys_platform != 'darwin' and sys_platform != 'linux')" },
+ { name = "setuptools" },
]
wheels = [
{ url = "https://files.pythonhosted.org/packages/62/ee/0ee5f64a87eeda19bbad9bc54ae5ca5b98186ed00055281fd40fb4beb10e/triton-3.4.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7ff2785de9bc02f500e085420273bb5cc9c9bb767584a4aa28d6e360cec70128", size = 155430069, upload-time = "2025-07-30T19:58:21.715Z" },