Spaces:
Sleeping
Sleeping
File size: 937 Bytes
3af908f f1eae1f 3af908f f1eae1f 3af908f f1eae1f 3af908f f1eae1f 3af908f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | """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)
|