Setup bench and use coding plan
Browse files- .gitignore +4 -0
- agent.py +2 -1
- pyproject.toml +1 -1
- test_bench.py +243 -0
- uv.lock +128 -4
.gitignore
CHANGED
|
@@ -1 +1,5 @@
|
|
| 1 |
.env
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
.env
|
| 2 |
+
test_results/
|
| 3 |
+
__pycache__/
|
| 4 |
+
*.pyc
|
| 5 |
+
.venv/
|
agent.py
CHANGED
|
@@ -42,7 +42,8 @@ class GaiaAgent:
|
|
| 42 |
|
| 43 |
if model.startswith("glm"):
|
| 44 |
api_key = SecretStr(secret_value=os.getenv("ZAI_API_KEY") or "")
|
| 45 |
-
api_base = "https://api.z.ai/api/paas/v4/"
|
|
|
|
| 46 |
else:
|
| 47 |
api_key = SecretStr(secret_value=os.getenv("OPENAI_API_KEY") or "")
|
| 48 |
api_base = None
|
|
|
|
| 42 |
|
| 43 |
if model.startswith("glm"):
|
| 44 |
api_key = SecretStr(secret_value=os.getenv("ZAI_API_KEY") or "")
|
| 45 |
+
# api_base = "https://api.z.ai/api/paas/v4/"
|
| 46 |
+
api_base = "https://api.z.ai/api/coding/paas/v4/"
|
| 47 |
else:
|
| 48 |
api_key = SecretStr(secret_value=os.getenv("OPENAI_API_KEY") or "")
|
| 49 |
api_base = None
|
pyproject.toml
CHANGED
|
@@ -19,4 +19,4 @@ dependencies = [
|
|
| 19 |
]
|
| 20 |
|
| 21 |
[dependency-groups]
|
| 22 |
-
dev = ["ty"]
|
|
|
|
| 19 |
]
|
| 20 |
|
| 21 |
[dependency-groups]
|
| 22 |
+
dev = ["ty", "datasets"]
|
test_bench.py
ADDED
|
@@ -0,0 +1,243 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
GAIA Test Bench - Local evaluation for your agent
|
| 3 |
+
|
| 4 |
+
Usage:
|
| 5 |
+
uv run python test_bench.py # Run on 5 random questions
|
| 6 |
+
uv run python test_bench.py --n 10 # Run on 10 random questions
|
| 7 |
+
uv run python test_bench.py --level 1 # Run on level 1 only
|
| 8 |
+
uv run python test_bench.py --level 1 --n 3 # Run on 3 level 1 questions
|
| 9 |
+
uv run python test_bench.py --all # Run on all validation questions
|
| 10 |
+
"""
|
| 11 |
+
|
| 12 |
+
import argparse
|
| 13 |
+
import json
|
| 14 |
+
import os
|
| 15 |
+
import re
|
| 16 |
+
from dataclasses import dataclass
|
| 17 |
+
from datetime import datetime
|
| 18 |
+
from pathlib import Path
|
| 19 |
+
|
| 20 |
+
from datasets import load_dataset
|
| 21 |
+
from dotenv import load_dotenv
|
| 22 |
+
from huggingface_hub import snapshot_download
|
| 23 |
+
|
| 24 |
+
load_dotenv()
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
@dataclass
|
| 28 |
+
class TestResult:
|
| 29 |
+
task_id: str
|
| 30 |
+
question: str
|
| 31 |
+
expected: str
|
| 32 |
+
actual: str
|
| 33 |
+
correct: bool
|
| 34 |
+
level: int
|
| 35 |
+
|
| 36 |
+
|
| 37 |
+
def normalize_answer(answer: str) -> str:
|
| 38 |
+
"""Normalize answer for comparison."""
|
| 39 |
+
if not answer:
|
| 40 |
+
return ""
|
| 41 |
+
# Lowercase, strip whitespace, remove punctuation at end
|
| 42 |
+
ans = answer.lower().strip()
|
| 43 |
+
ans = re.sub(r"[.,;:!?]+$", "", ans)
|
| 44 |
+
return ans
|
| 45 |
+
|
| 46 |
+
|
| 47 |
+
def answers_match(expected: str, actual: str) -> bool:
|
| 48 |
+
"""Check if answers match (with some flexibility)."""
|
| 49 |
+
exp = normalize_answer(expected)
|
| 50 |
+
act = normalize_answer(actual)
|
| 51 |
+
|
| 52 |
+
# Exact match
|
| 53 |
+
if exp == act:
|
| 54 |
+
return True
|
| 55 |
+
|
| 56 |
+
# Check if expected is contained in actual (for verbose answers)
|
| 57 |
+
if exp in act:
|
| 58 |
+
return True
|
| 59 |
+
|
| 60 |
+
# Try numeric comparison
|
| 61 |
+
try:
|
| 62 |
+
exp_num = float(re.sub(r"[^\d.-]", "", exp))
|
| 63 |
+
act_num = float(re.sub(r"[^\d.-]", "", act))
|
| 64 |
+
if abs(exp_num - act_num) < 0.01:
|
| 65 |
+
return True
|
| 66 |
+
except (ValueError, TypeError):
|
| 67 |
+
pass
|
| 68 |
+
|
| 69 |
+
return False
|
| 70 |
+
|
| 71 |
+
|
| 72 |
+
def load_gaia_data(level: int | None = None) -> list[dict]:
|
| 73 |
+
"""Load GAIA validation dataset."""
|
| 74 |
+
print("Downloading GAIA dataset...")
|
| 75 |
+
data_dir = snapshot_download(repo_id="gaia-benchmark/GAIA", repo_type="dataset")
|
| 76 |
+
|
| 77 |
+
questions = []
|
| 78 |
+
|
| 79 |
+
levels = [level] if level else [1, 2, 3]
|
| 80 |
+
for lvl in levels:
|
| 81 |
+
try:
|
| 82 |
+
dataset = load_dataset(data_dir, f"2023_level{lvl}", split="validation")
|
| 83 |
+
for example in dataset:
|
| 84 |
+
questions.append(
|
| 85 |
+
{
|
| 86 |
+
"task_id": example.get("task_id", ""),
|
| 87 |
+
"question": example.get("Question", ""),
|
| 88 |
+
"answer": example.get("Final answer", ""),
|
| 89 |
+
"level": lvl,
|
| 90 |
+
"file_name": example.get("file_name", ""),
|
| 91 |
+
"file_path": (
|
| 92 |
+
os.path.join(data_dir, example.get("file_path", ""))
|
| 93 |
+
if example.get("file_path")
|
| 94 |
+
else None
|
| 95 |
+
),
|
| 96 |
+
}
|
| 97 |
+
)
|
| 98 |
+
except Exception as e:
|
| 99 |
+
print(f"Warning: Could not load level {lvl}: {e}")
|
| 100 |
+
|
| 101 |
+
print(f"Loaded {len(questions)} questions")
|
| 102 |
+
return questions
|
| 103 |
+
|
| 104 |
+
|
| 105 |
+
def run_test_bench(
|
| 106 |
+
agent,
|
| 107 |
+
n_questions: int | None = 5,
|
| 108 |
+
level: int | None = None,
|
| 109 |
+
run_all: bool = False,
|
| 110 |
+
save_results: bool = True,
|
| 111 |
+
) -> list[TestResult]:
|
| 112 |
+
"""
|
| 113 |
+
Run the test bench on the agent.
|
| 114 |
+
|
| 115 |
+
Args:
|
| 116 |
+
agent: The agent to test (callable that takes question string)
|
| 117 |
+
n_questions: Number of questions to test (None for all)
|
| 118 |
+
level: Filter by difficulty level (1, 2, or 3)
|
| 119 |
+
run_all: If True, run on all questions
|
| 120 |
+
save_results: Save results to JSON file
|
| 121 |
+
|
| 122 |
+
Returns:
|
| 123 |
+
List of TestResult objects
|
| 124 |
+
"""
|
| 125 |
+
import random
|
| 126 |
+
|
| 127 |
+
questions = load_gaia_data(level=level)
|
| 128 |
+
|
| 129 |
+
if not run_all and n_questions and n_questions < len(questions):
|
| 130 |
+
questions = random.sample(questions, n_questions)
|
| 131 |
+
|
| 132 |
+
results: list[TestResult] = []
|
| 133 |
+
correct_count = 0
|
| 134 |
+
|
| 135 |
+
print(f"\n{'='*60}")
|
| 136 |
+
print(f"Running {len(questions)} questions...")
|
| 137 |
+
print("=" * 60)
|
| 138 |
+
|
| 139 |
+
for i, q in enumerate(questions, 1):
|
| 140 |
+
print(f"\n[{i}/{len(questions)}] Level {q['level']}: {q['question'][:80]}...")
|
| 141 |
+
|
| 142 |
+
try:
|
| 143 |
+
actual = agent(q["question"])
|
| 144 |
+
except Exception as e:
|
| 145 |
+
actual = f"ERROR: {e}"
|
| 146 |
+
|
| 147 |
+
is_correct = answers_match(q["answer"], actual)
|
| 148 |
+
if is_correct:
|
| 149 |
+
correct_count += 1
|
| 150 |
+
|
| 151 |
+
result = TestResult(
|
| 152 |
+
task_id=q["task_id"],
|
| 153 |
+
question=q["question"],
|
| 154 |
+
expected=q["answer"],
|
| 155 |
+
actual=actual,
|
| 156 |
+
correct=is_correct,
|
| 157 |
+
level=q["level"],
|
| 158 |
+
)
|
| 159 |
+
results.append(result)
|
| 160 |
+
|
| 161 |
+
status = "CORRECT" if is_correct else "WRONG"
|
| 162 |
+
print(f" Expected: {q['answer']}")
|
| 163 |
+
print(f" Got: {actual[:100]}...")
|
| 164 |
+
print(f" Status: {status}")
|
| 165 |
+
|
| 166 |
+
# Summary
|
| 167 |
+
print(f"\n{'='*60}")
|
| 168 |
+
print("SUMMARY")
|
| 169 |
+
print("=" * 60)
|
| 170 |
+
print(f"Total: {len(results)}")
|
| 171 |
+
print(f"Correct: {correct_count}")
|
| 172 |
+
print(f"Accuracy: {correct_count/len(results)*100:.1f}%")
|
| 173 |
+
|
| 174 |
+
# Per-level breakdown
|
| 175 |
+
for lvl in [1, 2, 3]:
|
| 176 |
+
lvl_results = [r for r in results if r.level == lvl]
|
| 177 |
+
if lvl_results:
|
| 178 |
+
lvl_correct = sum(1 for r in lvl_results if r.correct)
|
| 179 |
+
print(
|
| 180 |
+
f" Level {lvl}: {lvl_correct}/{len(lvl_results)} ({lvl_correct/len(lvl_results)*100:.1f}%)"
|
| 181 |
+
)
|
| 182 |
+
|
| 183 |
+
# Save results
|
| 184 |
+
if save_results:
|
| 185 |
+
results_dir = Path("test_results")
|
| 186 |
+
results_dir.mkdir(exist_ok=True)
|
| 187 |
+
|
| 188 |
+
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
| 189 |
+
results_file = results_dir / f"results_{timestamp}.json"
|
| 190 |
+
|
| 191 |
+
with open(results_file, "w") as f:
|
| 192 |
+
json.dump(
|
| 193 |
+
{
|
| 194 |
+
"timestamp": timestamp,
|
| 195 |
+
"total": len(results),
|
| 196 |
+
"correct": correct_count,
|
| 197 |
+
"accuracy": correct_count / len(results),
|
| 198 |
+
"results": [
|
| 199 |
+
{
|
| 200 |
+
"task_id": r.task_id,
|
| 201 |
+
"level": r.level,
|
| 202 |
+
"question": r.question,
|
| 203 |
+
"expected": r.expected,
|
| 204 |
+
"actual": r.actual,
|
| 205 |
+
"correct": r.correct,
|
| 206 |
+
}
|
| 207 |
+
for r in results
|
| 208 |
+
],
|
| 209 |
+
},
|
| 210 |
+
f,
|
| 211 |
+
indent=2,
|
| 212 |
+
)
|
| 213 |
+
print(f"\nResults saved to: {results_file}")
|
| 214 |
+
|
| 215 |
+
return results
|
| 216 |
+
|
| 217 |
+
|
| 218 |
+
def main():
|
| 219 |
+
parser = argparse.ArgumentParser(description="GAIA Test Bench")
|
| 220 |
+
parser.add_argument("--n", type=int, default=5, help="Number of questions to test")
|
| 221 |
+
parser.add_argument("--level", type=int, choices=[1, 2, 3], help="Filter by level")
|
| 222 |
+
parser.add_argument("--all", action="store_true", help="Run all questions")
|
| 223 |
+
parser.add_argument("--no-save", action="store_true", help="Don't save results")
|
| 224 |
+
args = parser.parse_args()
|
| 225 |
+
|
| 226 |
+
from agent import BasicAgent
|
| 227 |
+
|
| 228 |
+
if callable(BasicAgent) and not hasattr(BasicAgent, "__call__"):
|
| 229 |
+
agent = BasicAgent(question="")
|
| 230 |
+
else:
|
| 231 |
+
agent = BasicAgent
|
| 232 |
+
|
| 233 |
+
run_test_bench(
|
| 234 |
+
agent=agent,
|
| 235 |
+
n_questions=args.n,
|
| 236 |
+
level=args.level,
|
| 237 |
+
run_all=args.all,
|
| 238 |
+
save_results=not args.no_save,
|
| 239 |
+
)
|
| 240 |
+
|
| 241 |
+
|
| 242 |
+
if __name__ == "__main__":
|
| 243 |
+
main()
|
uv.lock
CHANGED
|
@@ -455,6 +455,41 @@ wheels = [
|
|
| 455 |
{ url = "https://files.pythonhosted.org/packages/c3/be/d0d44e092656fe7a06b55e6103cbce807cdbdee17884a5367c68c9860853/dataclasses_json-0.6.7-py3-none-any.whl", hash = "sha256:0dbf33f26c8d5305befd61b39d2b3414e8a407bedc2834dea9b8d642666fb40a", size = 28686, upload-time = "2024-06-09T16:20:16.715Z" },
|
| 456 |
]
|
| 457 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 458 |
[[package]]
|
| 459 |
name = "distro"
|
| 460 |
version = "1.9.0"
|
|
@@ -496,6 +531,7 @@ dependencies = [
|
|
| 496 |
|
| 497 |
[package.dev-dependencies]
|
| 498 |
dev = [
|
|
|
|
| 499 |
{ name = "ty" },
|
| 500 |
]
|
| 501 |
|
|
@@ -515,7 +551,10 @@ requires-dist = [
|
|
| 515 |
]
|
| 516 |
|
| 517 |
[package.metadata.requires-dev]
|
| 518 |
-
dev = [
|
|
|
|
|
|
|
|
|
|
| 519 |
|
| 520 |
[[package]]
|
| 521 |
name = "fastapi"
|
|
@@ -673,11 +712,16 @@ wheels = [
|
|
| 673 |
|
| 674 |
[[package]]
|
| 675 |
name = "fsspec"
|
| 676 |
-
version = "2025.
|
| 677 |
source = { registry = "https://pypi.org/simple" }
|
| 678 |
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
| 679 |
wheels = [
|
| 680 |
-
{ url = "https://files.pythonhosted.org/packages/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 681 |
]
|
| 682 |
|
| 683 |
[[package]]
|
|
@@ -1480,6 +1524,29 @@ wheels = [
|
|
| 1480 |
{ url = "https://files.pythonhosted.org/packages/b7/da/7d22601b625e241d4f23ef1ebff8acfc60da633c9e7e7922e24d10f592b3/multidict-6.7.0-py3-none-any.whl", hash = "sha256:394fc5c42a333c9ffc3e421a4c85e08580d990e08b99f6bf35b4132114c5dcb3", size = 12317, upload-time = "2025-10-06T14:52:29.272Z" },
|
| 1481 |
]
|
| 1482 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1483 |
[[package]]
|
| 1484 |
name = "mypy-extensions"
|
| 1485 |
version = "1.1.0"
|
|
@@ -2076,6 +2143,63 @@ wheels = [
|
|
| 2076 |
{ url = "https://files.pythonhosted.org/packages/5b/5a/bc7b4a4ef808fa59a816c17b20c4bef6884daebbdf627ff2a161da67da19/propcache-0.4.1-py3-none-any.whl", hash = "sha256:af2a6052aeb6cf17d3e46ee169099044fd8224cbaf75c76a2ef596e8163e2237", size = 13305, upload-time = "2025-10-08T19:49:00.792Z" },
|
| 2077 |
]
|
| 2078 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2079 |
[[package]]
|
| 2080 |
name = "pydantic"
|
| 2081 |
version = "2.12.5"
|
|
|
|
| 455 |
{ url = "https://files.pythonhosted.org/packages/c3/be/d0d44e092656fe7a06b55e6103cbce807cdbdee17884a5367c68c9860853/dataclasses_json-0.6.7-py3-none-any.whl", hash = "sha256:0dbf33f26c8d5305befd61b39d2b3414e8a407bedc2834dea9b8d642666fb40a", size = 28686, upload-time = "2024-06-09T16:20:16.715Z" },
|
| 456 |
]
|
| 457 |
|
| 458 |
+
[[package]]
|
| 459 |
+
name = "datasets"
|
| 460 |
+
version = "4.4.2"
|
| 461 |
+
source = { registry = "https://pypi.org/simple" }
|
| 462 |
+
dependencies = [
|
| 463 |
+
{ name = "dill" },
|
| 464 |
+
{ name = "filelock" },
|
| 465 |
+
{ name = "fsspec", extra = ["http"] },
|
| 466 |
+
{ name = "httpx" },
|
| 467 |
+
{ name = "huggingface-hub" },
|
| 468 |
+
{ name = "multiprocess" },
|
| 469 |
+
{ name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
|
| 470 |
+
{ name = "numpy", version = "2.4.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" },
|
| 471 |
+
{ name = "packaging" },
|
| 472 |
+
{ name = "pandas" },
|
| 473 |
+
{ name = "pyarrow" },
|
| 474 |
+
{ name = "pyyaml" },
|
| 475 |
+
{ name = "requests" },
|
| 476 |
+
{ name = "tqdm" },
|
| 477 |
+
{ name = "xxhash" },
|
| 478 |
+
]
|
| 479 |
+
sdist = { url = "https://files.pythonhosted.org/packages/c4/54/9359803da96bc65439a28fbb014dc2c90b7d4d8034a93b72362b0d40191f/datasets-4.4.2.tar.gz", hash = "sha256:9de16e415c4ba4713eac0493f7c7dc74f3aa21599297f00cc6ddab409cb7b24b", size = 586474, upload-time = "2025-12-19T15:03:09.129Z" }
|
| 480 |
+
wheels = [
|
| 481 |
+
{ url = "https://files.pythonhosted.org/packages/7b/b5/fefa518c809de7bced5cddb7c21c010da66fa2ae494bda96844a280cc6ce/datasets-4.4.2-py3-none-any.whl", hash = "sha256:6f5ef3417504d9cd663c71c1b90b9a494ff4c2076a2cd6a6e40ceee6ad95befc", size = 512268, upload-time = "2025-12-19T15:03:07.087Z" },
|
| 482 |
+
]
|
| 483 |
+
|
| 484 |
+
[[package]]
|
| 485 |
+
name = "dill"
|
| 486 |
+
version = "0.4.0"
|
| 487 |
+
source = { registry = "https://pypi.org/simple" }
|
| 488 |
+
sdist = { url = "https://files.pythonhosted.org/packages/12/80/630b4b88364e9a8c8c5797f4602d0f76ef820909ee32f0bacb9f90654042/dill-0.4.0.tar.gz", hash = "sha256:0633f1d2df477324f53a895b02c901fb961bdbf65a17122586ea7019292cbcf0", size = 186976, upload-time = "2025-04-16T00:41:48.867Z" }
|
| 489 |
+
wheels = [
|
| 490 |
+
{ url = "https://files.pythonhosted.org/packages/50/3d/9373ad9c56321fdab5b41197068e1d8c25883b3fea29dd361f9b55116869/dill-0.4.0-py3-none-any.whl", hash = "sha256:44f54bf6412c2c8464c14e8243eb163690a9800dbe2c367330883b19c7561049", size = 119668, upload-time = "2025-04-16T00:41:47.671Z" },
|
| 491 |
+
]
|
| 492 |
+
|
| 493 |
[[package]]
|
| 494 |
name = "distro"
|
| 495 |
version = "1.9.0"
|
|
|
|
| 531 |
|
| 532 |
[package.dev-dependencies]
|
| 533 |
dev = [
|
| 534 |
+
{ name = "datasets" },
|
| 535 |
{ name = "ty" },
|
| 536 |
]
|
| 537 |
|
|
|
|
| 551 |
]
|
| 552 |
|
| 553 |
[package.metadata.requires-dev]
|
| 554 |
+
dev = [
|
| 555 |
+
{ name = "datasets" },
|
| 556 |
+
{ name = "ty" },
|
| 557 |
+
]
|
| 558 |
|
| 559 |
[[package]]
|
| 560 |
name = "fastapi"
|
|
|
|
| 712 |
|
| 713 |
[[package]]
|
| 714 |
name = "fsspec"
|
| 715 |
+
version = "2025.10.0"
|
| 716 |
source = { registry = "https://pypi.org/simple" }
|
| 717 |
+
sdist = { url = "https://files.pythonhosted.org/packages/24/7f/2747c0d332b9acfa75dc84447a066fdf812b5a6b8d30472b74d309bfe8cb/fsspec-2025.10.0.tar.gz", hash = "sha256:b6789427626f068f9a83ca4e8a3cc050850b6c0f71f99ddb4f542b8266a26a59", size = 309285, upload-time = "2025-10-30T14:58:44.036Z" }
|
| 718 |
wheels = [
|
| 719 |
+
{ url = "https://files.pythonhosted.org/packages/eb/02/a6b21098b1d5d6249b7c5ab69dde30108a71e4e819d4a9778f1de1d5b70d/fsspec-2025.10.0-py3-none-any.whl", hash = "sha256:7c7712353ae7d875407f97715f0e1ffcc21e33d5b24556cb1e090ae9409ec61d", size = 200966, upload-time = "2025-10-30T14:58:42.53Z" },
|
| 720 |
+
]
|
| 721 |
+
|
| 722 |
+
[package.optional-dependencies]
|
| 723 |
+
http = [
|
| 724 |
+
{ name = "aiohttp" },
|
| 725 |
]
|
| 726 |
|
| 727 |
[[package]]
|
|
|
|
| 1524 |
{ url = "https://files.pythonhosted.org/packages/b7/da/7d22601b625e241d4f23ef1ebff8acfc60da633c9e7e7922e24d10f592b3/multidict-6.7.0-py3-none-any.whl", hash = "sha256:394fc5c42a333c9ffc3e421a4c85e08580d990e08b99f6bf35b4132114c5dcb3", size = 12317, upload-time = "2025-10-06T14:52:29.272Z" },
|
| 1525 |
]
|
| 1526 |
|
| 1527 |
+
[[package]]
|
| 1528 |
+
name = "multiprocess"
|
| 1529 |
+
version = "0.70.18"
|
| 1530 |
+
source = { registry = "https://pypi.org/simple" }
|
| 1531 |
+
dependencies = [
|
| 1532 |
+
{ name = "dill" },
|
| 1533 |
+
]
|
| 1534 |
+
sdist = { url = "https://files.pythonhosted.org/packages/72/fd/2ae3826f5be24c6ed87266bc4e59c46ea5b059a103f3d7e7eb76a52aeecb/multiprocess-0.70.18.tar.gz", hash = "sha256:f9597128e6b3e67b23956da07cf3d2e5cba79e2f4e0fba8d7903636663ec6d0d", size = 1798503, upload-time = "2025-04-17T03:11:27.742Z" }
|
| 1535 |
+
wheels = [
|
| 1536 |
+
{ url = "https://files.pythonhosted.org/packages/c8/f8/7f9a8f08bf98cea1dfaa181e05cc8bbcb59cecf044b5a9ac3cce39f9c449/multiprocess-0.70.18-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:25d4012dcaaf66b9e8e955f58482b42910c2ee526d532844d8bcf661bbc604df", size = 135083, upload-time = "2025-04-17T03:11:04.223Z" },
|
| 1537 |
+
{ url = "https://files.pythonhosted.org/packages/e5/03/b7b10dbfc17b2b3ce07d4d30b3ba8367d0ed32d6d46cd166e298f161dd46/multiprocess-0.70.18-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:06b19433de0d02afe5869aec8931dd5c01d99074664f806c73896b0d9e527213", size = 135128, upload-time = "2025-04-17T03:11:06.045Z" },
|
| 1538 |
+
{ url = "https://files.pythonhosted.org/packages/c1/a3/5f8d3b9690ea5580bee5868ab7d7e2cfca74b7e826b28192b40aa3881cdc/multiprocess-0.70.18-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6fa1366f994373aaf2d4738b0f56e707caeaa05486e97a7f71ee0853823180c2", size = 135132, upload-time = "2025-04-17T03:11:07.533Z" },
|
| 1539 |
+
{ url = "https://files.pythonhosted.org/packages/55/4d/9af0d1279c84618bcd35bf5fd7e371657358c7b0a523e54a9cffb87461f8/multiprocess-0.70.18-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8b8940ae30139e04b076da6c5b83e9398585ebdf0f2ad3250673fef5b2ff06d6", size = 144695, upload-time = "2025-04-17T03:11:09.161Z" },
|
| 1540 |
+
{ url = "https://files.pythonhosted.org/packages/17/bf/87323e79dd0562474fad3373c21c66bc6c3c9963b68eb2a209deb4c8575e/multiprocess-0.70.18-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:0929ba95831adb938edbd5fb801ac45e705ecad9d100b3e653946b7716cb6bd3", size = 144742, upload-time = "2025-04-17T03:11:10.072Z" },
|
| 1541 |
+
{ url = "https://files.pythonhosted.org/packages/dd/74/cb8c831e58dc6d5cf450b17c7db87f14294a1df52eb391da948b5e0a0b94/multiprocess-0.70.18-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:4d77f8e4bfe6c6e2e661925bbf9aed4d5ade9a1c6502d5dfc10129b9d1141797", size = 144745, upload-time = "2025-04-17T03:11:11.453Z" },
|
| 1542 |
+
{ url = "https://files.pythonhosted.org/packages/ba/d8/0cba6cf51a1a31f20471fbc823a716170c73012ddc4fb85d706630ed6e8f/multiprocess-0.70.18-py310-none-any.whl", hash = "sha256:60c194974c31784019c1f459d984e8f33ee48f10fcf42c309ba97b30d9bd53ea", size = 134948, upload-time = "2025-04-17T03:11:20.223Z" },
|
| 1543 |
+
{ url = "https://files.pythonhosted.org/packages/4b/88/9039f2fed1012ef584751d4ceff9ab4a51e5ae264898f0b7cbf44340a859/multiprocess-0.70.18-py311-none-any.whl", hash = "sha256:5aa6eef98e691281b3ad923be2832bf1c55dd2c859acd73e5ec53a66aae06a1d", size = 144462, upload-time = "2025-04-17T03:11:21.657Z" },
|
| 1544 |
+
{ url = "https://files.pythonhosted.org/packages/bf/b6/5f922792be93b82ec6b5f270bbb1ef031fd0622847070bbcf9da816502cc/multiprocess-0.70.18-py312-none-any.whl", hash = "sha256:9b78f8e5024b573730bfb654783a13800c2c0f2dfc0c25e70b40d184d64adaa2", size = 150287, upload-time = "2025-04-17T03:11:22.69Z" },
|
| 1545 |
+
{ url = "https://files.pythonhosted.org/packages/ee/25/7d7e78e750bc1aecfaf0efbf826c69a791d2eeaf29cf20cba93ff4cced78/multiprocess-0.70.18-py313-none-any.whl", hash = "sha256:871743755f43ef57d7910a38433cfe41319e72be1bbd90b79c7a5ac523eb9334", size = 151917, upload-time = "2025-04-17T03:11:24.044Z" },
|
| 1546 |
+
{ url = "https://files.pythonhosted.org/packages/3b/c3/ca84c19bd14cdfc21c388fdcebf08b86a7a470ebc9f5c3c084fc2dbc50f7/multiprocess-0.70.18-py38-none-any.whl", hash = "sha256:dbf705e52a154fe5e90fb17b38f02556169557c2dd8bb084f2e06c2784d8279b", size = 132636, upload-time = "2025-04-17T03:11:24.936Z" },
|
| 1547 |
+
{ url = "https://files.pythonhosted.org/packages/6c/28/dd72947e59a6a8c856448a5e74da6201cb5502ddff644fbc790e4bd40b9a/multiprocess-0.70.18-py39-none-any.whl", hash = "sha256:e78ca805a72b1b810c690b6b4cc32579eba34f403094bbbae962b7b5bf9dfcb8", size = 133478, upload-time = "2025-04-17T03:11:26.253Z" },
|
| 1548 |
+
]
|
| 1549 |
+
|
| 1550 |
[[package]]
|
| 1551 |
name = "mypy-extensions"
|
| 1552 |
version = "1.1.0"
|
|
|
|
| 2143 |
{ url = "https://files.pythonhosted.org/packages/5b/5a/bc7b4a4ef808fa59a816c17b20c4bef6884daebbdf627ff2a161da67da19/propcache-0.4.1-py3-none-any.whl", hash = "sha256:af2a6052aeb6cf17d3e46ee169099044fd8224cbaf75c76a2ef596e8163e2237", size = 13305, upload-time = "2025-10-08T19:49:00.792Z" },
|
| 2144 |
]
|
| 2145 |
|
| 2146 |
+
[[package]]
|
| 2147 |
+
name = "pyarrow"
|
| 2148 |
+
version = "22.0.0"
|
| 2149 |
+
source = { registry = "https://pypi.org/simple" }
|
| 2150 |
+
sdist = { url = "https://files.pythonhosted.org/packages/30/53/04a7fdc63e6056116c9ddc8b43bc28c12cdd181b85cbeadb79278475f3ae/pyarrow-22.0.0.tar.gz", hash = "sha256:3d600dc583260d845c7d8a6db540339dd883081925da2bd1c5cb808f720b3cd9", size = 1151151, upload-time = "2025-10-24T12:30:00.762Z" }
|
| 2151 |
+
wheels = [
|
| 2152 |
+
{ url = "https://files.pythonhosted.org/packages/d9/9b/cb3f7e0a345353def531ca879053e9ef6b9f38ed91aebcf68b09ba54dec0/pyarrow-22.0.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:77718810bd3066158db1e95a63c160ad7ce08c6b0710bc656055033e39cdad88", size = 34223968, upload-time = "2025-10-24T10:03:31.21Z" },
|
| 2153 |
+
{ url = "https://files.pythonhosted.org/packages/6c/41/3184b8192a120306270c5307f105b70320fdaa592c99843c5ef78aaefdcf/pyarrow-22.0.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:44d2d26cda26d18f7af7db71453b7b783788322d756e81730acb98f24eb90ace", size = 35942085, upload-time = "2025-10-24T10:03:38.146Z" },
|
| 2154 |
+
{ url = "https://files.pythonhosted.org/packages/d9/3d/a1eab2f6f08001f9fb714b8ed5cfb045e2fe3e3e3c0c221f2c9ed1e6d67d/pyarrow-22.0.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:b9d71701ce97c95480fecb0039ec5bb889e75f110da72005743451339262f4ce", size = 44964613, upload-time = "2025-10-24T10:03:46.516Z" },
|
| 2155 |
+
{ url = "https://files.pythonhosted.org/packages/46/46/a1d9c24baf21cfd9ce994ac820a24608decf2710521b29223d4334985127/pyarrow-22.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:710624ab925dc2b05a6229d47f6f0dac1c1155e6ed559be7109f684eba048a48", size = 47627059, upload-time = "2025-10-24T10:03:55.353Z" },
|
| 2156 |
+
{ url = "https://files.pythonhosted.org/packages/3a/4c/f711acb13075c1391fd54bc17e078587672c575f8de2a6e62509af026dcf/pyarrow-22.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f963ba8c3b0199f9d6b794c90ec77545e05eadc83973897a4523c9e8d84e9340", size = 47947043, upload-time = "2025-10-24T10:04:05.408Z" },
|
| 2157 |
+
{ url = "https://files.pythonhosted.org/packages/4e/70/1f3180dd7c2eab35c2aca2b29ace6c519f827dcd4cfeb8e0dca41612cf7a/pyarrow-22.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:bd0d42297ace400d8febe55f13fdf46e86754842b860c978dfec16f081e5c653", size = 50206505, upload-time = "2025-10-24T10:04:15.786Z" },
|
| 2158 |
+
{ url = "https://files.pythonhosted.org/packages/80/07/fea6578112c8c60ffde55883a571e4c4c6bc7049f119d6b09333b5cc6f73/pyarrow-22.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:00626d9dc0f5ef3a75fe63fd68b9c7c8302d2b5bbc7f74ecaedba83447a24f84", size = 28101641, upload-time = "2025-10-24T10:04:22.57Z" },
|
| 2159 |
+
{ url = "https://files.pythonhosted.org/packages/2e/b7/18f611a8cdc43417f9394a3ccd3eace2f32183c08b9eddc3d17681819f37/pyarrow-22.0.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:3e294c5eadfb93d78b0763e859a0c16d4051fc1c5231ae8956d61cb0b5666f5a", size = 34272022, upload-time = "2025-10-24T10:04:28.973Z" },
|
| 2160 |
+
{ url = "https://files.pythonhosted.org/packages/26/5c/f259e2526c67eb4b9e511741b19870a02363a47a35edbebc55c3178db22d/pyarrow-22.0.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:69763ab2445f632d90b504a815a2a033f74332997052b721002298ed6de40f2e", size = 35995834, upload-time = "2025-10-24T10:04:35.467Z" },
|
| 2161 |
+
{ url = "https://files.pythonhosted.org/packages/50/8d/281f0f9b9376d4b7f146913b26fac0aa2829cd1ee7e997f53a27411bbb92/pyarrow-22.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:b41f37cabfe2463232684de44bad753d6be08a7a072f6a83447eeaf0e4d2a215", size = 45030348, upload-time = "2025-10-24T10:04:43.366Z" },
|
| 2162 |
+
{ url = "https://files.pythonhosted.org/packages/f5/e5/53c0a1c428f0976bf22f513d79c73000926cb00b9c138d8e02daf2102e18/pyarrow-22.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:35ad0f0378c9359b3f297299c3309778bb03b8612f987399a0333a560b43862d", size = 47699480, upload-time = "2025-10-24T10:04:51.486Z" },
|
| 2163 |
+
{ url = "https://files.pythonhosted.org/packages/95/e1/9dbe4c465c3365959d183e6345d0a8d1dc5b02ca3f8db4760b3bc834cf25/pyarrow-22.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8382ad21458075c2e66a82a29d650f963ce51c7708c7c0ff313a8c206c4fd5e8", size = 48011148, upload-time = "2025-10-24T10:04:59.585Z" },
|
| 2164 |
+
{ url = "https://files.pythonhosted.org/packages/c5/b4/7caf5d21930061444c3cf4fa7535c82faf5263e22ce43af7c2759ceb5b8b/pyarrow-22.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1a812a5b727bc09c3d7ea072c4eebf657c2f7066155506ba31ebf4792f88f016", size = 50276964, upload-time = "2025-10-24T10:05:08.175Z" },
|
| 2165 |
+
{ url = "https://files.pythonhosted.org/packages/ae/f3/cec89bd99fa3abf826f14d4e53d3d11340ce6f6af4d14bdcd54cd83b6576/pyarrow-22.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:ec5d40dd494882704fb876c16fa7261a69791e784ae34e6b5992e977bd2e238c", size = 28106517, upload-time = "2025-10-24T10:05:14.314Z" },
|
| 2166 |
+
{ url = "https://files.pythonhosted.org/packages/af/63/ba23862d69652f85b615ca14ad14f3bcfc5bf1b99ef3f0cd04ff93fdad5a/pyarrow-22.0.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:bea79263d55c24a32b0d79c00a1c58bb2ee5f0757ed95656b01c0fb310c5af3d", size = 34211578, upload-time = "2025-10-24T10:05:21.583Z" },
|
| 2167 |
+
{ url = "https://files.pythonhosted.org/packages/b1/d0/f9ad86fe809efd2bcc8be32032fa72e8b0d112b01ae56a053006376c5930/pyarrow-22.0.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:12fe549c9b10ac98c91cf791d2945e878875d95508e1a5d14091a7aaa66d9cf8", size = 35989906, upload-time = "2025-10-24T10:05:29.485Z" },
|
| 2168 |
+
{ url = "https://files.pythonhosted.org/packages/b4/a8/f910afcb14630e64d673f15904ec27dd31f1e009b77033c365c84e8c1e1d/pyarrow-22.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:334f900ff08ce0423407af97e6c26ad5d4e3b0763645559ece6fbf3747d6a8f5", size = 45021677, upload-time = "2025-10-24T10:05:38.274Z" },
|
| 2169 |
+
{ url = "https://files.pythonhosted.org/packages/13/95/aec81f781c75cd10554dc17a25849c720d54feafb6f7847690478dcf5ef8/pyarrow-22.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:c6c791b09c57ed76a18b03f2631753a4960eefbbca80f846da8baefc6491fcfe", size = 47726315, upload-time = "2025-10-24T10:05:47.314Z" },
|
| 2170 |
+
{ url = "https://files.pythonhosted.org/packages/bb/d4/74ac9f7a54cfde12ee42734ea25d5a3c9a45db78f9def949307a92720d37/pyarrow-22.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c3200cb41cdbc65156e5f8c908d739b0dfed57e890329413da2748d1a2cd1a4e", size = 47990906, upload-time = "2025-10-24T10:05:58.254Z" },
|
| 2171 |
+
{ url = "https://files.pythonhosted.org/packages/2e/71/fedf2499bf7a95062eafc989ace56572f3343432570e1c54e6599d5b88da/pyarrow-22.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ac93252226cf288753d8b46280f4edf3433bf9508b6977f8dd8526b521a1bbb9", size = 50306783, upload-time = "2025-10-24T10:06:08.08Z" },
|
| 2172 |
+
{ url = "https://files.pythonhosted.org/packages/68/ed/b202abd5a5b78f519722f3d29063dda03c114711093c1995a33b8e2e0f4b/pyarrow-22.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:44729980b6c50a5f2bfcc2668d36c569ce17f8b17bccaf470c4313dcbbf13c9d", size = 27972883, upload-time = "2025-10-24T10:06:14.204Z" },
|
| 2173 |
+
{ url = "https://files.pythonhosted.org/packages/a6/d6/d0fac16a2963002fc22c8fa75180a838737203d558f0ed3b564c4a54eef5/pyarrow-22.0.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:e6e95176209257803a8b3d0394f21604e796dadb643d2f7ca21b66c9c0b30c9a", size = 34204629, upload-time = "2025-10-24T10:06:20.274Z" },
|
| 2174 |
+
{ url = "https://files.pythonhosted.org/packages/c6/9c/1d6357347fbae062ad3f17082f9ebc29cc733321e892c0d2085f42a2212b/pyarrow-22.0.0-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:001ea83a58024818826a9e3f89bf9310a114f7e26dfe404a4c32686f97bd7901", size = 35985783, upload-time = "2025-10-24T10:06:27.301Z" },
|
| 2175 |
+
{ url = "https://files.pythonhosted.org/packages/ff/c0/782344c2ce58afbea010150df07e3a2f5fdad299cd631697ae7bd3bac6e3/pyarrow-22.0.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:ce20fe000754f477c8a9125543f1936ea5b8867c5406757c224d745ed033e691", size = 45020999, upload-time = "2025-10-24T10:06:35.387Z" },
|
| 2176 |
+
{ url = "https://files.pythonhosted.org/packages/1b/8b/5362443737a5307a7b67c1017c42cd104213189b4970bf607e05faf9c525/pyarrow-22.0.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:e0a15757fccb38c410947df156f9749ae4a3c89b2393741a50521f39a8cf202a", size = 47724601, upload-time = "2025-10-24T10:06:43.551Z" },
|
| 2177 |
+
{ url = "https://files.pythonhosted.org/packages/69/4d/76e567a4fc2e190ee6072967cb4672b7d9249ac59ae65af2d7e3047afa3b/pyarrow-22.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cedb9dd9358e4ea1d9bce3665ce0797f6adf97ff142c8e25b46ba9cdd508e9b6", size = 48001050, upload-time = "2025-10-24T10:06:52.284Z" },
|
| 2178 |
+
{ url = "https://files.pythonhosted.org/packages/01/5e/5653f0535d2a1aef8223cee9d92944cb6bccfee5cf1cd3f462d7cb022790/pyarrow-22.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:252be4a05f9d9185bb8c18e83764ebcfea7185076c07a7a662253af3a8c07941", size = 50307877, upload-time = "2025-10-24T10:07:02.405Z" },
|
| 2179 |
+
{ url = "https://files.pythonhosted.org/packages/2d/f8/1d0bd75bf9328a3b826e24a16e5517cd7f9fbf8d34a3184a4566ef5a7f29/pyarrow-22.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:a4893d31e5ef780b6edcaf63122df0f8d321088bb0dee4c8c06eccb1ca28d145", size = 27977099, upload-time = "2025-10-24T10:08:07.259Z" },
|
| 2180 |
+
{ url = "https://files.pythonhosted.org/packages/90/81/db56870c997805bf2b0f6eeeb2d68458bf4654652dccdcf1bf7a42d80903/pyarrow-22.0.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:f7fe3dbe871294ba70d789be16b6e7e52b418311e166e0e3cba9522f0f437fb1", size = 34336685, upload-time = "2025-10-24T10:07:11.47Z" },
|
| 2181 |
+
{ url = "https://files.pythonhosted.org/packages/1c/98/0727947f199aba8a120f47dfc229eeb05df15bcd7a6f1b669e9f882afc58/pyarrow-22.0.0-cp313-cp313t-macosx_12_0_x86_64.whl", hash = "sha256:ba95112d15fd4f1105fb2402c4eab9068f0554435e9b7085924bcfaac2cc306f", size = 36032158, upload-time = "2025-10-24T10:07:18.626Z" },
|
| 2182 |
+
{ url = "https://files.pythonhosted.org/packages/96/b4/9babdef9c01720a0785945c7cf550e4acd0ebcd7bdd2e6f0aa7981fa85e2/pyarrow-22.0.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:c064e28361c05d72eed8e744c9605cbd6d2bb7481a511c74071fd9b24bc65d7d", size = 44892060, upload-time = "2025-10-24T10:07:26.002Z" },
|
| 2183 |
+
{ url = "https://files.pythonhosted.org/packages/f8/ca/2f8804edd6279f78a37062d813de3f16f29183874447ef6d1aadbb4efa0f/pyarrow-22.0.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:6f9762274496c244d951c819348afbcf212714902742225f649cf02823a6a10f", size = 47504395, upload-time = "2025-10-24T10:07:34.09Z" },
|
| 2184 |
+
{ url = "https://files.pythonhosted.org/packages/b9/f0/77aa5198fd3943682b2e4faaf179a674f0edea0d55d326d83cb2277d9363/pyarrow-22.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a9d9ffdc2ab696f6b15b4d1f7cec6658e1d788124418cb30030afbae31c64746", size = 48066216, upload-time = "2025-10-24T10:07:43.528Z" },
|
| 2185 |
+
{ url = "https://files.pythonhosted.org/packages/79/87/a1937b6e78b2aff18b706d738c9e46ade5bfcf11b294e39c87706a0089ac/pyarrow-22.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ec1a15968a9d80da01e1d30349b2b0d7cc91e96588ee324ce1b5228175043e95", size = 50288552, upload-time = "2025-10-24T10:07:53.519Z" },
|
| 2186 |
+
{ url = "https://files.pythonhosted.org/packages/60/ae/b5a5811e11f25788ccfdaa8f26b6791c9807119dffcf80514505527c384c/pyarrow-22.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:bba208d9c7decf9961998edf5c65e3ea4355d5818dd6cd0f6809bec1afb951cc", size = 28262504, upload-time = "2025-10-24T10:08:00.932Z" },
|
| 2187 |
+
{ url = "https://files.pythonhosted.org/packages/bd/b0/0fa4d28a8edb42b0a7144edd20befd04173ac79819547216f8a9f36f9e50/pyarrow-22.0.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:9bddc2cade6561f6820d4cd73f99a0243532ad506bc510a75a5a65a522b2d74d", size = 34224062, upload-time = "2025-10-24T10:08:14.101Z" },
|
| 2188 |
+
{ url = "https://files.pythonhosted.org/packages/0f/a8/7a719076b3c1be0acef56a07220c586f25cd24de0e3f3102b438d18ae5df/pyarrow-22.0.0-cp314-cp314-macosx_12_0_x86_64.whl", hash = "sha256:e70ff90c64419709d38c8932ea9fe1cc98415c4f87ea8da81719e43f02534bc9", size = 35990057, upload-time = "2025-10-24T10:08:21.842Z" },
|
| 2189 |
+
{ url = "https://files.pythonhosted.org/packages/89/3c/359ed54c93b47fb6fe30ed16cdf50e3f0e8b9ccfb11b86218c3619ae50a8/pyarrow-22.0.0-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:92843c305330aa94a36e706c16209cd4df274693e777ca47112617db7d0ef3d7", size = 45068002, upload-time = "2025-10-24T10:08:29.034Z" },
|
| 2190 |
+
{ url = "https://files.pythonhosted.org/packages/55/fc/4945896cc8638536ee787a3bd6ce7cec8ec9acf452d78ec39ab328efa0a1/pyarrow-22.0.0-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:6dda1ddac033d27421c20d7a7943eec60be44e0db4e079f33cc5af3b8280ccde", size = 47737765, upload-time = "2025-10-24T10:08:38.559Z" },
|
| 2191 |
+
{ url = "https://files.pythonhosted.org/packages/cd/5e/7cb7edeb2abfaa1f79b5d5eb89432356155c8426f75d3753cbcb9592c0fd/pyarrow-22.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:84378110dd9a6c06323b41b56e129c504d157d1a983ce8f5443761eb5256bafc", size = 48048139, upload-time = "2025-10-24T10:08:46.784Z" },
|
| 2192 |
+
{ url = "https://files.pythonhosted.org/packages/88/c6/546baa7c48185f5e9d6e59277c4b19f30f48c94d9dd938c2a80d4d6b067c/pyarrow-22.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:854794239111d2b88b40b6ef92aa478024d1e5074f364033e73e21e3f76b25e0", size = 50314244, upload-time = "2025-10-24T10:08:55.771Z" },
|
| 2193 |
+
{ url = "https://files.pythonhosted.org/packages/3c/79/755ff2d145aafec8d347bf18f95e4e81c00127f06d080135dfc86aea417c/pyarrow-22.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:b883fe6fd85adad7932b3271c38ac289c65b7337c2c132e9569f9d3940620730", size = 28757501, upload-time = "2025-10-24T10:09:59.891Z" },
|
| 2194 |
+
{ url = "https://files.pythonhosted.org/packages/0e/d2/237d75ac28ced3147912954e3c1a174df43a95f4f88e467809118a8165e0/pyarrow-22.0.0-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:7a820d8ae11facf32585507c11f04e3f38343c1e784c9b5a8b1da5c930547fe2", size = 34355506, upload-time = "2025-10-24T10:09:02.953Z" },
|
| 2195 |
+
{ url = "https://files.pythonhosted.org/packages/1e/2c/733dfffe6d3069740f98e57ff81007809067d68626c5faef293434d11bd6/pyarrow-22.0.0-cp314-cp314t-macosx_12_0_x86_64.whl", hash = "sha256:c6ec3675d98915bf1ec8b3c7986422682f7232ea76cad276f4c8abd5b7319b70", size = 36047312, upload-time = "2025-10-24T10:09:10.334Z" },
|
| 2196 |
+
{ url = "https://files.pythonhosted.org/packages/7c/2b/29d6e3782dc1f299727462c1543af357a0f2c1d3c160ce199950d9ca51eb/pyarrow-22.0.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:3e739edd001b04f654b166204fc7a9de896cf6007eaff33409ee9e50ceaff754", size = 45081609, upload-time = "2025-10-24T10:09:18.61Z" },
|
| 2197 |
+
{ url = "https://files.pythonhosted.org/packages/8d/42/aa9355ecc05997915af1b7b947a7f66c02dcaa927f3203b87871c114ba10/pyarrow-22.0.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:7388ac685cab5b279a41dfe0a6ccd99e4dbf322edfb63e02fc0443bf24134e91", size = 47703663, upload-time = "2025-10-24T10:09:27.369Z" },
|
| 2198 |
+
{ url = "https://files.pythonhosted.org/packages/ee/62/45abedde480168e83a1de005b7b7043fd553321c1e8c5a9a114425f64842/pyarrow-22.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:f633074f36dbc33d5c05b5dc75371e5660f1dbf9c8b1d95669def05e5425989c", size = 48066543, upload-time = "2025-10-24T10:09:34.908Z" },
|
| 2199 |
+
{ url = "https://files.pythonhosted.org/packages/84/e9/7878940a5b072e4f3bf998770acafeae13b267f9893af5f6d4ab3904b67e/pyarrow-22.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:4c19236ae2402a8663a2c8f21f1870a03cc57f0bef7e4b6eb3238cc82944de80", size = 50288838, upload-time = "2025-10-24T10:09:44.394Z" },
|
| 2200 |
+
{ url = "https://files.pythonhosted.org/packages/7b/03/f335d6c52b4a4761bcc83499789a1e2e16d9d201a58c327a9b5cc9a41bd9/pyarrow-22.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:0c34fe18094686194f204a3b1787a27456897d8a2d62caf84b61e8dfbc0252ae", size = 29185594, upload-time = "2025-10-24T10:09:53.111Z" },
|
| 2201 |
+
]
|
| 2202 |
+
|
| 2203 |
[[package]]
|
| 2204 |
name = "pydantic"
|
| 2205 |
version = "2.12.5"
|