File size: 818 Bytes
4e1037f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
"""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)