| """資料檔的位置解析——讓套件可以在 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 | |