33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
from __future__ import annotations
|
|
|
|
import logging
|
|
from pathlib import Path
|
|
|
|
from ...logging import get_logger
|
|
|
|
|
|
logger = get_logger(__name__)
|
|
|
|
|
|
def prepare_remote_jsonl_dir(remote_dir: Path, *, project_root: Path) -> Path:
|
|
project_root_path = project_root.resolve()
|
|
resolved_remote_dir = remote_dir.resolve(strict=False)
|
|
|
|
if resolved_remote_dir.exists():
|
|
if not resolved_remote_dir.is_dir():
|
|
raise FileNotFoundError(
|
|
f"remote_datasource.jsonl_dir exists but is not a directory: {resolved_remote_dir}"
|
|
)
|
|
return resolved_remote_dir
|
|
|
|
try:
|
|
resolved_remote_dir.relative_to(project_root_path)
|
|
except ValueError as exc:
|
|
raise FileNotFoundError(
|
|
"remote_datasource.jsonl_dir does not exist and auto-create is only allowed "
|
|
f"under project root: {resolved_remote_dir} (project_root={project_root_path})"
|
|
) from exc
|
|
|
|
resolved_remote_dir.mkdir(parents=True, exist_ok=True)
|
|
logger.info("Created missing remote JSONL directory: %s", resolved_remote_dir)
|
|
return resolved_remote_dir |