diff --git a/scripts/load_path.py b/scripts/load_path.py index 01c11a6..58137f0 100644 --- a/scripts/load_path.py +++ b/scripts/load_path.py @@ -211,6 +211,17 @@ def _load_module_paths(mod): finally: globals()['DEFAULT_ROLE'] = DEFAULT_ROLE + # 去重:模块同时提供扁平 PATHS 与分层常量时(如 pbl_common)会重复采集, + # 同一 path 保留更严格的 role,避免计数虚高。 + seen, deduped = {}, [] + for p, r in out: + if p in seen: + deduped[seen[p]] = (p, _stricter(deduped[seen[p]][1], r)) + continue + seen[p] = len(deduped) + deduped.append((p, r)) + out = deduped + if not out: if bad: return [], 'all entries malformed -> ' + '; '.join(bad), True