| | |
| | from pathlib import Path |
| | import os, re, uuid, shutil |
| |
|
| | APP_ROOT = Path(__file__).resolve().parents[1] |
| | DATA_ROOT = APP_ROOT / "data" |
| | TMP_ROOT = APP_ROOT / "tmp" |
| | for p in (DATA_ROOT, TMP_ROOT, APP_ROOT / ".hf", APP_ROOT / ".torch"): |
| | p.mkdir(parents=True, exist_ok=True) |
| |
|
| | os.environ.setdefault("HF_HOME", str(APP_ROOT / ".hf")) |
| | os.environ.setdefault("TORCH_HOME", str(APP_ROOT / ".torch")) |
| |
|
| | def safe_name(name: str, default="file"): |
| | base = re.sub(r"[^A-Za-z0-9._-]+", "_", (name or default)) |
| | return (base or default)[:120] |
| |
|
| | def job_dir(prefix="job"): |
| | d = DATA_ROOT / f"{prefix}-{uuid.uuid4().hex[:8]}" |
| | d.mkdir(parents=True, exist_ok=True) |
| | return d |
| |
|
| | def disk_stats(p: Path = APP_ROOT) -> str: |
| | try: |
| | total, used, free = shutil.disk_usage(str(p)) |
| | mb = lambda x: x // (1024 * 1024) |
| | return f"disk(total={mb(total)}MB, used={mb(used)}MB, free={mb(free)}MB)" |
| | except Exception: |
| | return "disk(n/a)" |
| |
|