mirror of
https://github.com/crewAIInc/crewAI.git
synced 2025-12-16 04:18:35 +00:00
* build(dev): add pytest-randomly dependency By randomizing the test execution order, this helps identify tests that unintentionally depend on shared state or specific execution order, which can lead to flaky or unreliable test behavior. * build(dev): add pytest-timeout This will prevent a test from running indefinitely * test: block external requests in CI and set default 10s timeout per test * test: adding missing cassettes We notice that those cassettes are missing after enabling block-network on CI * test: increase tests timeout on CI * test: fix flaky test ValueError: Circular reference detected (id repeated) * fix: prevent crash when event handler raises exception Previously, if a registered event handler raised an exception during execution, it could crash the entire application or interrupt the event dispatch process. This change wraps handler execution in a try/except block within the `emit` method, ensuring that exceptions are caught and logged without affecting other handlers or flow. This improves the resilience of the event bus, especially when handling third-party or temporary listeners.
106 lines
2.4 KiB
TOML
106 lines
2.4 KiB
TOML
[project]
|
|
name = "crewai"
|
|
version = "0.118.0"
|
|
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.13"
|
|
authors = [
|
|
{ name = "Joao Moura", email = "joao@crewai.com" }
|
|
]
|
|
dependencies = [
|
|
# Core Dependencies
|
|
"pydantic>=2.4.2",
|
|
"openai>=1.13.3",
|
|
"litellm==1.67.1",
|
|
"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>=0.5.23",
|
|
"openpyxl>=3.1.5",
|
|
"pyvis>=0.3.2",
|
|
# Authentication and Security
|
|
"auth0-python>=4.7.1",
|
|
"python-dotenv>=1.0.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",
|
|
]
|
|
|
|
[project.urls]
|
|
Homepage = "https://crewai.com"
|
|
Documentation = "https://docs.crewai.com"
|
|
Repository = "https://github.com/crewAIInc/crewAI"
|
|
|
|
[project.optional-dependencies]
|
|
tools = ["crewai-tools~=0.42.2"]
|
|
embeddings = [
|
|
"tiktoken~=0.7.0"
|
|
]
|
|
agentops = ["agentops>=0.3.0"]
|
|
fastembed = ["fastembed>=0.4.1"]
|
|
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",
|
|
]
|
|
|
|
[tool.uv]
|
|
dev-dependencies = [
|
|
"ruff>=0.8.2",
|
|
"mypy>=1.10.0",
|
|
"pre-commit>=3.6.0",
|
|
"mkdocs>=1.4.3",
|
|
"mkdocstrings>=0.22.0",
|
|
"mkdocstrings-python>=1.1.2",
|
|
"mkdocs-material>=9.5.7",
|
|
"mkdocs-material-extensions>=1.3.1",
|
|
"pillow>=10.2.0",
|
|
"cairosvg>=2.7.1",
|
|
"pytest>=8.0.0",
|
|
"python-dotenv>=1.0.0",
|
|
"pytest-asyncio>=0.23.7",
|
|
"pytest-subprocess>=1.5.2",
|
|
"pytest-recording>=0.13.2",
|
|
"pytest-randomly>=3.16.0",
|
|
"pytest-timeout>=2.3.1",
|
|
]
|
|
|
|
[project.scripts]
|
|
crewai = "crewai.cli.cli:crewai"
|
|
|
|
[tool.mypy]
|
|
ignore_missing_imports = true
|
|
disable_error_code = 'import-untyped'
|
|
exclude = ["cli/templates"]
|
|
|
|
[tool.bandit]
|
|
exclude_dirs = ["src/crewai/cli/templates"]
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|