From c32387a890b1906b0f0cc0da2949e5534b8f46d9 Mon Sep 17 00:00:00 2001 From: Benny Chen Date: Tue, 19 Aug 2025 16:30:24 -0700 Subject: [PATCH 1/3] update dataset version requirement --- CHANGELOG.md | 2 +- pyproject.toml | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a689d722..7f65707c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,7 +20,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - (Your now removed features here) ### Fixed -- (Your bug fixes here) +- Pin minimum `datasets` version to `>=3.0.0` to avoid import failures with `pyarrow>=21` (AttributeError: `pyarrow.PyExtensionType`). This ensures compatibility when installing via pip/uv in clean CI environments. ### Security - (Your vulnerabilities patched here) diff --git a/pyproject.toml b/pyproject.toml index 46b66d77..8a80ec6a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,7 +27,8 @@ dependencies = [ "aiohttp", "mcp>=1.9.2", "PyYAML>=5.0", - "datasets", + # Pin minimum datasets to avoid pyarrow API mismatch (PyExtensionType removal in pyarrow>=21) + "datasets>=3.0.0", "fsspec", "hydra-core>=1.3.2", "omegaconf>=2.3.0", @@ -103,12 +104,14 @@ langfuse = [ "langfuse>=2.0.0", ] huggingface = [ - "datasets>=2.0.0", + # Keep in sync with core dependency to ensure compatibility with latest pyarrow + "datasets>=3.0.0", "transformers>=4.0.0", ] adapters = [ "langfuse>=2.0.0", - "datasets>=2.0.0", + # Keep in sync with core dependency to ensure compatibility with latest pyarrow + "datasets>=3.0.0", "transformers>=4.0.0", ] bigquery = [ From c05d4f6344f532c1893f1c566dd3a91d4f2ae955 Mon Sep 17 00:00:00 2001 From: Derek Xu Date: Tue, 19 Aug 2025 16:38:31 -0700 Subject: [PATCH 2/3] uv lock --- uv.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/uv.lock b/uv.lock index 6758d24c..f7f8d5d2 100644 --- a/uv.lock +++ b/uv.lock @@ -1198,9 +1198,9 @@ requires-dist = [ { name = "anthropic", specifier = ">=0.59.0" }, { name = "build", marker = "extra == 'dev'" }, { name = "dataclasses-json", specifier = ">=0.5.7" }, - { name = "datasets" }, - { name = "datasets", marker = "extra == 'adapters'", specifier = ">=2.0.0" }, - { name = "datasets", marker = "extra == 'huggingface'", specifier = ">=2.0.0" }, + { name = "datasets", specifier = ">=3.0.0" }, + { name = "datasets", marker = "extra == 'adapters'", specifier = ">=3.0.0" }, + { name = "datasets", marker = "extra == 'huggingface'", specifier = ">=3.0.0" }, { name = "deepdiff", specifier = ">=6.0.0" }, { name = "docker", marker = "extra == 'dev'", specifier = "==7.1.0" }, { name = "docstring-parser", specifier = ">=0.15" }, From 38585d459a9abfd771793afd23a1d5d81389bc31 Mon Sep 17 00:00:00 2001 From: Derek Xu Date: Tue, 19 Aug 2025 16:48:31 -0700 Subject: [PATCH 3/3] move pytest-asyncio to dep --- pyproject.toml | 2 +- uv.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 8a80ec6a..97998892 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -50,6 +50,7 @@ dependencies = [ "websockets>=15.0.1", "fastapi>=0.116.1", "pytest>=6.0.0", + "pytest-asyncio>=0.21.0", "peewee>=3.18.2", ] @@ -60,7 +61,6 @@ Homepage = "https://github.com/fireworks-ai/eval-protocol" dev = [ "build", "twine", - "pytest-asyncio", "pytest-httpserver", "werkzeug>=2.0.0", "ruff>=0.5.0", diff --git a/uv.lock b/uv.lock index f7f8d5d2..035b9f37 100644 --- a/uv.lock +++ b/uv.lock @@ -1108,6 +1108,7 @@ dependencies = [ { name = "psutil" }, { name = "pydantic" }, { name = "pytest" }, + { name = "pytest-asyncio" }, { name = "python-dotenv" }, { name = "pyyaml" }, { name = "requests" }, @@ -1143,7 +1144,6 @@ dev = [ { name = "pip" }, { name = "pre-commit" }, { name = "pyright" }, - { name = "pytest-asyncio" }, { name = "pytest-cov" }, { name = "pytest-httpserver" }, { name = "pytest-xdist" }, @@ -1238,7 +1238,7 @@ requires-dist = [ { name = "pydantic", specifier = ">=2.0.0" }, { name = "pyright", marker = "extra == 'dev'", specifier = ">=1.1.365" }, { name = "pytest", specifier = ">=6.0.0" }, - { name = "pytest-asyncio", marker = "extra == 'dev'" }, + { name = "pytest-asyncio", specifier = ">=0.21.0" }, { name = "pytest-cov", marker = "extra == 'dev'" }, { name = "pytest-httpserver", marker = "extra == 'dev'" }, { name = "pytest-xdist", marker = "extra == 'dev'" },