Преглед изворни кода

打包: 输入数据骨架补上 data/raw/西门子4.0技术资料(含一级子目录) + 随包发放置说明文件

zhouyang.xie пре 3 недеља
родитељ
комит
d0daf1fb32
1 измењених фајлова са 16 додато и 1 уклоњено
  1. 16 1
      scripts/pack_dist.py

+ 16 - 1
scripts/pack_dist.py

@@ -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