Spaces:
Build error
Build error
| [build-system] | |
| build-backend = "poetry.core.masonry.api" | |
| requires = [ | |
| "poetry-core", | |
| ] | |
| [tool.poetry] | |
| name = "openhands-ai" | |
| version = "0.41.0" | |
| description = "OpenHands: Code Less, Make More" | |
| authors = [ "OpenHands" ] | |
| license = "MIT" | |
| readme = "README.md" | |
| repository = "https://github.com/All-Hands-AI/OpenHands" | |
| packages = [ | |
| { include = "openhands/**/*" }, | |
| { include = "pyproject.toml", to = "openhands" }, | |
| { include = "poetry.lock", to = "openhands" }, | |
| ] | |
| [tool.poetry.dependencies] | |
| python = "^3.12,<3.14" | |
| litellm = "^1.60.0, !=1.64.4, !=1.67.*" # avoid 1.64.4 (known bug) & 1.67.* (known bug #10272) | |
| aiohttp = ">=3.9.0,!=3.11.13" # Pin to avoid yanked version 3.11.13 | |
| google-generativeai = "*" # To use litellm with Gemini Pro API | |
| google-api-python-client = "^2.164.0" # For Google Sheets API | |
| google-auth-httplib2 = "*" # For Google Sheets authentication | |
| google-auth-oauthlib = "*" # For Google Sheets OAuth | |
| termcolor = "*" | |
| docker = "*" | |
| fastapi = "*" | |
| toml = "*" | |
| types-toml = "*" | |
| uvicorn = "*" | |
| numpy = "*" | |
| json-repair = "*" | |
| browsergym-core = "0.13.3" # integrate browsergym-core as the browsing interface | |
| html2text = "*" | |
| e2b = ">=1.0.5,<1.4.0" | |
| pexpect = "*" | |
| jinja2 = "^3.1.3" | |
| python-multipart = "*" | |
| tenacity = ">=8.5,<10.0" | |
| zope-interface = "7.2" | |
| pathspec = "^0.12.1" | |
| pyjwt = "^2.9.0" | |
| dirhash = "*" | |
| tornado = "*" | |
| python-dotenv = "*" | |
| rapidfuzz = "^3.9.0" | |
| whatthepatch = "^1.0.6" | |
| protobuf = "^5.0.0,<6.0.0" # Updated to support newer opentelemetry | |
| opentelemetry-api = "^1.33.1" | |
| opentelemetry-exporter-otlp-proto-grpc = "^1.33.1" | |
| modal = ">=0.66.26,<0.78.0" | |
| runloop-api-client = "0.33.0" | |
| libtmux = ">=0.37,<0.40" | |
| pygithub = "^2.5.0" | |
| joblib = "*" | |
| openhands-aci = "0.3.0" | |
| python-socketio = "^5.11.4" | |
| sse-starlette = "^2.1.3" | |
| psutil = "*" | |
| python-json-logger = "^3.2.1" | |
| prompt-toolkit = "^3.0.50" | |
| poetry = "^2.1.2" | |
| anyio = "4.9.0" | |
| pythonnet = "*" | |
| fastmcp = "^2.5.2" | |
| python-frontmatter = "^1.1.0" | |
| # TODO: Should these go into the runtime group? | |
| ipywidgets = "^8.1.5" | |
| qtconsole = "^5.6.1" | |
| PyPDF2 = "*" | |
| python-pptx = "*" | |
| pylatexenc = "*" | |
| python-docx = "*" | |
| bashlex = "^0.18" | |
| # TODO: These are integrations that should probably be optional | |
| redis = ">=5.2,<7.0" | |
| minio = "^7.2.8" | |
| daytona-sdk = "0.18.1" | |
| stripe = ">=11.5,<13.0" | |
| google-cloud-aiplatform = "*" | |
| anthropic = { extras = [ "vertex" ], version = "*" } | |
| boto3 = "*" | |
| [tool.poetry.group.dev] | |
| optional = true | |
| [tool.poetry.group.dev.dependencies] | |
| ruff = "0.11.11" | |
| mypy = "1.15.0" | |
| pre-commit = "4.2.0" | |
| build = "*" | |
| types-setuptools = "*" | |
| [tool.poetry.group.test] | |
| optional = true | |
| [tool.poetry.group.test.dependencies] | |
| pytest = "*" | |
| pytest-cov = "*" | |
| pytest-asyncio = "*" | |
| pytest-forked = "*" | |
| pytest-xdist = "*" | |
| openai = "*" | |
| pandas = "*" | |
| reportlab = "*" | |
| gevent = ">=24.2.1,<26.0.0" | |
| [tool.poetry.group.runtime] | |
| optional = true | |
| [tool.poetry.group.runtime.dependencies] | |
| jupyterlab = "*" | |
| notebook = "*" | |
| jupyter_kernel_gateway = "*" | |
| flake8 = "*" | |
| memory-profiler = "^0.61.0" | |
| [tool.poetry.group.evaluation] | |
| optional = true | |
| [tool.poetry.group.evaluation.dependencies] | |
| streamlit = "*" | |
| whatthepatch = "*" | |
| retry = "*" | |
| evaluate = "*" | |
| swebench = "^3.0.8" | |
| visualswebench = { git = "https://github.com/luolin101/Visual-SWE-bench.git" } | |
| swegym = { git = "https://github.com/SWE-Gym/SWE-Bench-Package.git" } | |
| commit0 = "*" | |
| func_timeout = "*" | |
| sympy = "*" | |
| gdown = "*" | |
| matplotlib = "*" | |
| seaborn = "*" | |
| tabulate = "*" | |
| browsergym = "0.13.3" | |
| browsergym-webarena = "0.13.3" | |
| browsergym-miniwob = "0.13.3" | |
| browsergym-visualwebarena = "0.13.3" | |
| boto3-stubs = { extras = [ "s3" ], version = "^1.37.19" } | |
| pyarrow = "20.0.0" # transitive dependency, pinned here to avoid conflicts | |
| datasets = "*" | |
| joblib = "*" | |
| [tool.poetry.scripts] | |
| openhands = "openhands.cli.main:main" | |
| [tool.poetry.group.testgeneval.dependencies] | |
| fuzzywuzzy = "^0.18.0" | |
| rouge = "^1.0.1" | |
| python-levenshtein = ">=0.26.1,<0.28.0" | |
| tree-sitter-python = "^0.23.6" | |
| [tool.poetry-dynamic-versioning] | |
| enable = true | |
| style = "semver" | |
| [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 | |
| lint.ignore = [ "D1" ] | |
| lint.pydocstyle.convention = "google" | |
| [tool.coverage.run] | |
| concurrency = [ "gevent" ] | |