forked from agent-lab/smolagents
141 lines
2.9 KiB
TOML
141 lines
2.9 KiB
TOML
[build-system]
|
|
requires = ["setuptools"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "smolagents"
|
|
version = "1.27.0.dev0"
|
|
description = "🤗 smolagents: a barebones library for agents. Agents write python code to call tools or orchestrate other agents."
|
|
authors = [
|
|
{ name="Aymeric Roucher", email="aymeric@hf.co" },
|
|
]
|
|
readme = "README.md"
|
|
requires-python = ">=3.10"
|
|
dependencies = [
|
|
"huggingface-hub>=0.31.2",
|
|
"requests>=2.32.3",
|
|
"rich>=13.9.4",
|
|
"jinja2>=3.1.4",
|
|
"pillow>=10.0.1",
|
|
# Security fix for CVE-2023-4863: https://pillow.readthedocs.io/en/stable/releasenotes/10.0.1.html
|
|
"python-dotenv",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
bedrock = [
|
|
"boto3>=1.36.18"
|
|
]
|
|
blaxel = [
|
|
"blaxel>=0.2.19",
|
|
"websocket-client",
|
|
]
|
|
torch = [
|
|
"torch",
|
|
"torchvision",
|
|
"numpy>=1.21.2",
|
|
]
|
|
audio = [
|
|
"soundfile",
|
|
"smolagents[torch]",
|
|
]
|
|
docker = [
|
|
"docker>=7.1.0",
|
|
"websocket-client",
|
|
]
|
|
e2b = [
|
|
"e2b-code-interpreter>=1.0.3",
|
|
"python-dotenv>=1.0.1",
|
|
]
|
|
gradio = [
|
|
"gradio>=5.14.0", # Sidebar component GH-797
|
|
]
|
|
litellm = [
|
|
"litellm>=1.60.2",
|
|
]
|
|
mcp = [
|
|
"mcpadapt>=0.1.13", # Support structured output
|
|
"mcp",
|
|
]
|
|
mlx-lm = [
|
|
"mlx-lm",
|
|
]
|
|
modal = [
|
|
"modal>=1.1.3",
|
|
"websocket-client",
|
|
]
|
|
openai = [
|
|
"openai>=1.58.1"
|
|
]
|
|
telemetry = [
|
|
"arize-phoenix",
|
|
"opentelemetry-sdk",
|
|
"opentelemetry-exporter-otlp",
|
|
"openinference-instrumentation-smolagents>=0.1.15" # Use new TokenUsage structure
|
|
]
|
|
toolkit = [
|
|
"ddgs>=9.0.0", # DuckDuckGoSearchTool
|
|
"markdownify>=0.14.1", # VisitWebpageTool
|
|
]
|
|
transformers = [
|
|
"accelerate",
|
|
"transformers>=4.0.0,!=5.13.0", # !=5.13.0 (see GH-2487)
|
|
"smolagents[torch]",
|
|
]
|
|
vision = [
|
|
"helium",
|
|
"selenium",
|
|
]
|
|
vllm = [
|
|
"vllm>=0.10.2",
|
|
"torch"
|
|
]
|
|
all = [
|
|
"smolagents[audio,blaxel,docker,e2b,gradio,litellm,mcp,mlx-lm,modal,openai,telemetry,toolkit,transformers,vision,bedrock]",
|
|
]
|
|
quality = [
|
|
"ruff>=0.9.0",
|
|
]
|
|
test = [
|
|
"ipython>=8.31.0", # for interactive environment tests
|
|
"pandas>=2.2.3",
|
|
"pytest>=8.1.0",
|
|
"pytest-datadir",
|
|
"pytest-timeout", # For test_all_docs: @pytest.mark.timeout
|
|
"python-dotenv>=1.0.1", # For test_all_docs
|
|
"smolagents[all]",
|
|
"rank-bm25", # For test_all_docs
|
|
"Wikipedia-API>=0.8.1",
|
|
"mlx[cpu]", # GH-1588
|
|
]
|
|
dev = [
|
|
"smolagents[quality,test]",
|
|
"sqlalchemy", # for ./examples
|
|
]
|
|
|
|
[tool.pytest.ini_options]
|
|
# Add the specified `OPTS` to the set of command line arguments as if they had been specified by the user.
|
|
addopts = "-sv --durations=0"
|
|
|
|
[tool.ruff]
|
|
line-length = 119
|
|
lint.ignore = [
|
|
"F403", # undefined-local-with-import-star
|
|
"E501", # line-too-long
|
|
]
|
|
lint.select = ["E", "F", "I", "W"]
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
"examples/*" = [
|
|
"E402", # module-import-not-at-top-of-file
|
|
]
|
|
|
|
[tool.ruff.lint.isort]
|
|
known-first-party = ["smolagents"]
|
|
lines-after-imports = 2
|
|
|
|
[tool.setuptools.package-data]
|
|
"smolagents.prompts" = ["*.yaml"]
|
|
|
|
[project.scripts]
|
|
smolagent = "smolagents.cli:main"
|
|
webagent = "smolagents.vision_web_browser:main"
|