Final_Assignment_Template / file_resolver.py
ken2ki's picture
Ship the full GAIA agent for course submission.
3af908f
Raw
History Blame Contribute Delete
937 Bytes
"""Resolve GAIA task attachments from the course scoring API."""
from __future__ import annotations
from pathlib import Path
import requests
def resolve_task_attachment(
api_url: str,
task_id: str,
file_name: str,
download_dir: Path,
) -> tuple[str | None, str | None]:
if not file_name:
return None, None
file_url = f"{api_url.rstrip('/')}/files/{task_id}"
destination = download_dir / file_name
print(f"Downloading attachment from course API: {file_url}")
try:
response = requests.get(file_url, timeout=60)
response.raise_for_status()
destination.write_bytes(response.content)
return str(destination.resolve()), None
except requests.exceptions.HTTPError as error:
message = f"{error.response.status_code} for {file_url}"
return None, message
except requests.exceptions.RequestException as error:
return None, str(error)