smolagents/pyproject.toml

88 lines
1.7 KiB
TOML

[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
[project]
name = "smolagents"
version = "1.5.0.dev"
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" }, { name="Thomas Wolf"},
]
readme = "README.md"
requires-python = ">=3.10"
dependencies = [
"requests>=2.32.3",
"rich>=13.9.4",
"pandas>=2.2.3",
"jinja2>=3.1.4",
"pillow>=11.0.0",
"markdownify>=0.14.1",
"duckduckgo-search>=6.3.7",
"python-dotenv>=1.0.1",
"e2b-code-interpreter>=1.0.3",
"torchvision"
]
[project.optional-dependencies]
torch = [
"torch",
]
audio = [
"soundfile",
"smolagents[torch]",
]
transformers = [
"accelerate",
"transformers>=4.0.0",
"smolagents[torch]",
]
gradio = [
"gradio>=5.8.0",
]
litellm = [
"litellm>=1.55.10",
]
mcp = [
"mcpadapt>=0.0.6",
"mcp",
]
openai = [
"openai>=1.58.1"
]
quality = [
"ruff>=0.9.0",
]
all = [
"smolagents[accelerate,audio,gradio,litellm,mcp,openai,transformers]",
]
test = [
"pytest>=8.1.0",
"smolagents[all]",
]
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