"""資料檔的位置解析——讓套件可以在 repo 之外執行(Hugging Face、pip 安裝)。 解析順序: 1. 環境變數 `TWLAT_HOME`(指向含 `dict/`、`model/` 的目錄) 2. 套件旁的 `_data/`(wheel 打包或 HF snapshot 會放這裡) 3. 開發用的 repo 根目錄 模型權重不在此解析範圍:由 `Converter(ckpt=...)` 明確指定, 或由 `twlat.hub.load()` 從 Hugging Face 下載。 """ from __future__ import annotations import os import pathlib _PKG = pathlib.Path(__file__).resolve().parent _REPO = _PKG.parents[1] def data_root() -> pathlib.Path: env = os.environ.get("TWLAT_HOME") if env: return pathlib.Path(env).expanduser() bundled = _PKG / "_data" if (bundled / "dict").exists(): return bundled return _REPO def data_file(rel: str) -> pathlib.Path: """rel 例:'dict/lattice_lexicon.json'。""" return data_root() / rel