|
|
@@ -104,7 +104,11 @@ INCLUDE_FILES = ['guanlan.py', 'install.bat', 'install.ps1', 'install.sh', 'chec
|
|
|
'pack.bat', 'pack.sh',
|
|
|
# 卸载入口 (用户令 2026-09-17: 增加卸载脚本; 它引用的 scripts\guanlan_uninstall.py
|
|
|
# 由 INCLUDE_DIRS 的 scripts/ 覆盖, 入口本身必须在这里点名)
|
|
|
- 'uninstall.bat', 'uninstall.sh']
|
|
|
+ 'uninstall.bat', 'uninstall.sh',
|
|
|
+ # ★2026-09-19: 输入数据目录里的**说明文件**随包 —— 它是仓库里的说明(git 已跟踪), 不是现场数据。
|
|
|
+ # 作用: 目标机解压后每个抽屉放什么一目了然(含"机理层资料在 data/raw/西门子4.0技术资料/")。
|
|
|
+ # 注意 data/ 的**数据文件**照旧不进包。
|
|
|
+ 'data/raw/README_把原始数据放这里.txt']
|
|
|
# 目录排除: 版本库/虚拟环境/日志/运行态/缓存 (名字出现在路径的任何一层都算)
|
|
|
EXCLUDE_DIRS = {'.git', '.venv', '.github', '.git-*', 'logs', 'run', '__pycache__',
|
|
|
'.pytest_cache', '.mypy_cache', '.ruff_cache', '.ipynb_checkpoints',
|
|
|
@@ -160,6 +164,17 @@ def data_skeleton() -> list[str]:
|
|
|
out.append(f'data/raw/{station.name}/{sub}')
|
|
|
except Exception as e: # 配不出骨架时如实说, 不静默少发
|
|
|
print(f' [!] 输入数据目录骨架没配出来 ({type(e).__name__}: {e}) —— 包里不会有 data/ 结构')
|
|
|
+ # ★2026-09-19 补 (用户逮: 「data\raw\西门子4.0技术资料 目录没有打包进去」):
|
|
|
+ # 机理层厂商资料按 A2 约定**不在场站目录下**, 而在 `data/raw/` 根下
|
|
|
+ # (`src/windscada/config.py` 的说明 + `scripts/raw_data_check.py::TOP_OK_DIRS`),
|
|
|
+ # 它是本体链的输入 (`src/ontology/kb_ingest.py`: TECH = RAW_ROOT/'西门子4.0技术资料')。
|
|
|
+ # 骨架只发**空目录**(文件仍不随包, 由现场收资包经 place_raw_data.py 落位);
|
|
|
+ # 本机若有该目录, 连它的一级子目录一起镜像出来(让人看见该往哪一层放哪类资料)。
|
|
|
+ tech = ROOT / 'data' / 'raw' / '西门子4.0技术资料'
|
|
|
+ out.append('data/raw/西门子4.0技术资料')
|
|
|
+ if tech.is_dir():
|
|
|
+ for sub in sorted(p for p in tech.iterdir() if p.is_dir()):
|
|
|
+ out.append(f'data/raw/西门子4.0技术资料/{sub.name}')
|
|
|
return out
|
|
|
|
|
|
|