| from __future__ import annotations | |
| import shutil | |
| import uuid | |
| from contextlib import contextmanager | |
| from pathlib import Path | |
| from typing import Iterator | |
| def workspace_tempdir(prefix: str) -> Iterator[Path]: | |
| base_dir = Path(__file__).resolve().parent.parent / "data" / "test-artifacts" | |
| base_dir.mkdir(parents=True, exist_ok=True) | |
| temp_dir = base_dir / f"{prefix}{uuid.uuid4().hex}" | |
| temp_dir.mkdir(parents=True, exist_ok=True) | |
| try: | |
| yield temp_dir | |
| finally: | |
| shutil.rmtree(temp_dir, ignore_errors=True) | |