Spaces:
Runtime error
Runtime error
| from __future__ import annotations | |
| from functools import lru_cache | |
| from pathlib import Path | |
| from .config import EXAMPLES_ROOT, IMAGE_EXTS, IMAGE_ROOT, VISLOC_DIR | |
| def list_visloc_images() -> list[Path]: | |
| if not VISLOC_DIR.exists(): | |
| return [] | |
| files = [p for p in VISLOC_DIR.iterdir() if p.suffix in IMAGE_EXTS] | |
| return sorted(files) | |
| def list_example_images() -> list[Path]: | |
| examples_dir = EXAMPLES_ROOT / "visloc" | |
| files: list[Path] = [] | |
| if examples_dir.exists(): | |
| files = [p for p in examples_dir.rglob("*") if p.is_file() and p.suffix in IMAGE_EXTS] | |
| return sorted(files) | |
| def list_all_data_inputs() -> list[str]: | |
| paths: list[Path] = [] | |
| def _add(paths_in: list[Path]): | |
| for p in paths_in: | |
| if p not in paths: | |
| paths.append(p) | |
| # Prefer structured datasets first | |
| _add(list_example_images()) | |
| _add(list_visloc_images()) | |
| # Allow arbitrary images anywhere under data/Image/ | |
| if IMAGE_ROOT.exists(): | |
| for p in IMAGE_ROOT.rglob("*"): | |
| if p.is_file() and p.suffix in IMAGE_EXTS: | |
| if p not in paths: | |
| paths.append(p) | |
| return [str(p) for p in sorted(paths)] | |
| def clear_caches() -> None: | |
| list_visloc_images.cache_clear() | |
| list_example_images.cache_clear() | |
| list_all_data_inputs.cache_clear() | |
| __all__ = [ | |
| "list_visloc_images", | |
| "list_example_images", | |
| "list_all_data_inputs", | |
| "clear_caches", | |
| ] | |