[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