[build-system] requires = ["setuptools>=45", "wheel"] build-backend = "setuptools.build_meta" [project] name = "world_sync" 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