diff --git a/pyproject.toml b/pyproject.toml index be4f3ad..3dd25f9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,6 +8,21 @@ version = "1.0.0" requires-python = ">=3.8" dependencies = ["sqlor", "bricks_for_python"] +# 打包面显式收紧(M11b-2a-1 rev2,响应 QC #14 改法 (b) 的合规部分) +# --------------------------------------------------------------------------- +# 事实基线(实测,见 projects/pbls/docs/02-develop/m11b2a-1-root-package-disposition.md §4.3): +# find_packages(where=".", include=["world_sync*"]) == ['world_sync'] +# 即 setuptools 只发现内层包 ./world_sync/(仓库根 "." 本身从不被当作包, +# 删除前根级 __init__.py 也从未进入 wheel/egg-link 打包面)。 +# 这里显式写死 namespaces=false,目的是把该事实固化为配置约束而非巧合: +# ① 防止未来有人往仓库根/`init/`/`json/`/`models/` 等数据目录放 __init__.py +# 或开启 namespace 发现,使 `world_sync` 出现两个候选落点(双路径歧义); +# ② 保证 `pip install -e` 生成的 __editable___world_sync_*_finder.MAPPING +# 恒指向 /world_sync(内层包目录),与宿主 apps/scense 实测一致。 +# 唯一受支持的导入根 = 仓库根目录(或 editable finder 映射), +# 不支持把 modules/(模块父目录)放进 sys.path —— 该场景实测 ImportError, +# 且删除根包前后同样失败(详见处置文档 §4.2/§4.3)。 [tool.setuptools.packages.find] where = ["."] include = ["world_sync*"] +namespaces = false