evalstate/diffusers-pr-api
0
1from __future__ import annotations2 3from pathlib import Path4 5from slop_farmer.data.snapshot_materialize import materialize_hf_dataset_snapshot6from slop_farmer.data.snapshot_paths import (7 default_hf_materialize_dir,8 resolve_snapshot_dir_from_snapshots_root,9)10 11 12def resolve_snapshot_source_dir(13 *,14 snapshot_dir: Path | None,15 local_snapshots_root: Path,16 hf_repo_id: str | None,17 hf_revision: str | None,18 hf_materialize_dir: Path | None,19 hf_output_dir: Path | None = None,20) -> Path:21 if snapshot_dir is not None:22 return snapshot_dir.resolve()23 if hf_repo_id:24 output_dir = (hf_output_dir or local_snapshots_root.parent).resolve()25 return materialize_hf_dataset_snapshot(26 repo_id=hf_repo_id,27 local_dir=hf_materialize_dir28 or default_hf_materialize_dir(output_dir, hf_repo_id, hf_revision),29 revision=hf_revision,30 ).resolve()31 return resolve_snapshot_dir_from_snapshots_root(local_snapshots_root.resolve(), None)32 