nl-sql / src /nl_sql /paths.py
liovina's picture
Deploy NL_SQL HEAD to HF Space (tracked files only)
4e1037f verified
Raw
History Blame Contribute Delete
818 Bytes
"""Repo-root-anchored filesystem paths.
Code that opens files with paths relative to the current working directory
(e.g. ``Path("chroma_data")``) breaks silently when the process is launched
from anywhere other than the repo root — Streamlit, uvicorn, pytest, and
deployment entrypoints (Docker CMD, HF Spaces) don't all guarantee that CWD.
This module resolves the repo root once, from this file's own location, so
downstream code stays correct regardless of CWD.
"""
from __future__ import annotations
from pathlib import Path
# src/nl_sql/paths.py -> parents[0]=src/nl_sql, [1]=src, [2]=repo root.
PROJECT_ROOT: Path = Path(__file__).resolve().parents[2]
def under_root(*parts: str) -> Path:
"""Return ``PROJECT_ROOT`` joined with ``parts``, CWD-independent."""
return PROJECT_ROOT.joinpath(*parts)