diff --git a/poetry.lock b/poetry.lock index 2e5b6cc868..a31fca8333 100644 --- a/poetry.lock +++ b/poetry.lock @@ -16846,4 +16846,4 @@ third-party-runtimes = ["daytona", "e2b-code-interpreter", "modal", "runloop-api [metadata] lock-version = "2.1" python-versions = "^3.12,<3.14" -content-hash = "78c01d3e121d5f27a4120d043408ac0aa93fa95fe0c2c7d678161b08ccb582c1" +content-hash = "fcdaa3169daa077382807ac1248456d944290e023bf6a5fbbe72b47d455259ae" diff --git a/pyproject.toml b/pyproject.toml index d6be6cbff0..e2d8a3f262 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,9 +1,93 @@ [build-system] build-backend = "poetry.core.masonry.api" +# PEP 621 project metadata (for UV compatibility) +# This section coexists with [tool.poetry] during the migration period requires = [ "poetry-core", ] +[project] +name = "openhands-ai" +description = "OpenHands: Code Less, Make More" +readme = "README.md" +license = "MIT" +authors = [ { name = "OpenHands", email = "contact@all-hands.dev" } ] +requires-python = ">=3.12,<3.14" +classifiers = [ + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", +] +# Version is managed dynamically by poetry-dynamic-versioning +dynamic = [ "version" ] + +urls.Homepage = "https://github.com/OpenHands/OpenHands" +# PEP 735 dependency groups (for UV compatibility) +# These coexist with [tool.poetry.group.*] during the migration period +urls.Repository = "https://github.com/OpenHands/OpenHands" + +[dependency-groups] +dev = [ + "build", + "mypy==1.17", + "pre-commit==4.2", + "pytest>=8.4", + "pytest-asyncio>=1.3", + "ruff==0.12.5", + "types-setuptools", +] +test = [ + "gevent>=24.2.1,<26", + "pandas", + "pytest", + "pytest-asyncio", + "pytest-cov", + "pytest-forked", + "pytest-playwright>=0.7", + "pytest-timeout>=2.4", + "pytest-xdist", + "reportlab", +] +runtime = [ + "flake8", + "jupyterlab", + "notebook", +] +evaluation = [ + "boto3-stubs[s3]>=1.37.19", + "browsergym==0.13.3", + "browsergym-miniwob==0.13.3", + "browsergym-visualwebarena==0.13.3", + "browsergym-webarena==0.13.3", + "commit0", + "datasets", + "evaluate", + "func-timeout", + "gdown", + "joblib", + "matplotlib", + "multi-swe-bench==0.1.2", + "pandas", + "pyarrow==21", + "retry", + "seaborn", + "streamlit", + "swebench", + "swegym", + "sympy", + "tabulate", + "visualswebench", + "whatthepatch", +] +testgeneval = [ + "fuzzywuzzy>=0.18", + "python-levenshtein>=0.26.1,<0.28", + "rouge>=1.0.1", + "tree-sitter-python>=0.23.6", +] + +# UV source configuration for git dependencies in evaluation group + [tool.poetry] name = "openhands-ai" version = "1.1.0" @@ -221,3 +305,8 @@ lint.pydocstyle.convention = "google" concurrency = [ "gevent" ] relative_files = true omit = [ "enterprise/tests/*", "**/test_*" ] + +[tool.uv.sources] +visualswebench = { git = "https://github.com/luolin101/Visual-SWE-bench.git" } +swegym = { git = "https://github.com/SWE-Gym/SWE-Bench-Package.git" } +swebench = { git = "https://github.com/ryanhoangt/SWE-bench.git", rev = "fix-modal-patch-eval" }