[tool.poetry] name = "openhands-ai" version = "0.9.8" description = "OpenHands: Code Less, Make More" authors = ["OpenHands"] license = "MIT" readme = "README.md" repository = "https://github.com/All-Hands-AI/OpenHands" include = ["poetry.lock"] packages = [ { include = "openhands/**/*" } ] [tool.poetry.dependencies] python = "^3.12" datasets = "*" pandas = "*" litellm = "*" google-generativeai = "*" # To use litellm with Gemini Pro API termcolor = "*" seaborn = "*" docker = "*" fastapi = "*" toml = "*" uvicorn = "*" types-toml = "*" numpy = "*" json-repair = "*" browsergym = "0.7.1" # integrate browsergym as the browsing interface html2text = "*" e2b = "^0.17.1" pexpect = "*" jinja2 = "^3.1.3" python-multipart = "*" boto3 = "*" minio = "^7.2.8" gevent = "^24.2.1" pyarrow = "17.0.0" # transitive dependency, pinned here to avoid conflicts tenacity = "^8.5.0" zope-interface = "7.0.3" pathspec = "^0.12.1" google-cloud-aiplatform = "*" anthropic = {extras = ["vertex"], version = "*"} grep-ast = "0.3.3" tree-sitter = "0.21.3" bashlex = "^0.18" pyjwt = "^2.9.0" dirhash = "*" python-frontmatter = "^1.1.0" python-docx = "*" PyPDF2 = "*" python-pptx = "*" pylatexenc = "*" tornado = "*" python-dotenv = "*" protobuf = ">=4.21.6,<6.0.0" # chromadb currently fails on 5.0+ [tool.poetry.group.llama-index.dependencies] llama-index = "*" llama-index-vector-stores-chroma = "*" chromadb = "*" llama-index-embeddings-huggingface = "*" torch = "2.2.2" llama-index-embeddings-azure-openai = "*" llama-index-embeddings-ollama = "*" [tool.poetry.group.dev.dependencies] ruff = "0.6.9" mypy = "1.11.2" pre-commit = "4.0.0" build = "*" [tool.poetry.group.test.dependencies] pytest = "*" pytest-cov = "*" pytest-asyncio = "*" pytest-forked = "*" pytest-xdist = "*" flake8 = "*" openai = "*" opencv-python = "*" pandas = "*" reportlab = "*" [tool.coverage.run] concurrency = ["gevent"] [tool.poetry.group.runtime.dependencies] jupyterlab = "*" notebook = "*" jupyter_kernel_gateway = "*" flake8 = "*" opencv-python = "*" [build-system] build-backend = "poetry.core.masonry.api" requires = [ "poetry-core", ] [tool.autopep8] # autopep8 fights with mypy on line length issue ignore = [ "E501" ] [tool.black] # prevent black (if installed) from changing single quotes to double quotes skip-string-normalization = true [tool.ruff.lint] select = ["D"] # ignore warnings for missing docstrings ignore = ["D1"] [tool.ruff.lint.pydocstyle] convention = "google" [tool.poetry.group.evaluation.dependencies] streamlit = "*" whatthepatch = "*" retry = "*" evaluate = "*" swebench = { git = "https://github.com/All-Hands-AI/SWE-bench.git" } func_timeout = "*" sympy = "*" gdown = "*" matplotlib = "*" seaborn = "*" [tool.poetry-dynamic-versioning] enable = true style = "semver" [tool.poetry.scripts] openhands = "openhands.core.cli:main"