File size: 931 Bytes
6cc3500 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | """資料檔的位置解析——讓套件可以在 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
|