| fix: 截断重复生成的二进制 JSON 配置 Co-authored-by: Ethan_Zou<tianjun.zou@foxmail.com> # message auto-generated for no-merge-commit merge: !11471 merge fix/truncate-rewritten-binary-json-20261006 into master fix: 截断重复生成的二进制 JSON 配置 Created-by: Ethan_Zou Commit-by: Ethan_Zou Merged-by: cann-robot Description: ## 当前版权规范修正 按仓库贡献规范及上游同类文件模板修正新增文件版权声明;当前唯一源提交 2a717e506df3d6e1f106c0ab0d02d03a66d448d3。相对上一提交,本次只改版权声明行,所有其他代码及许可证文字逐字一致。原提交的 CI 结果保留为历史记录;当前 SHA 的新流水线需重新核对,不能用旧结果代替。 ## 描述 wr_json 对已有文件描述符执行 fdopen(..., "w") 不会截断原文件,较短的新 JSON 后残留旧尾部。加入 O_TRUNC,使成功重写只保留当前文档,避免增量生成配置后真实 JSON 消费者报 Extra data。 唯一提交:2a717e506df3d6e1f106c0ab0d02d03a66d448d3。当前 Ruff 格式整理涉及的其他函数/常量经 AST 对照完全相同。 ## 关联的Issue Fixes #6370 https://gitcode.com/cann/ops-nn/issues/6370 ## 测试 python scripts/kernel/binary_script/test_binary_json_rewrite.py -v 3 项 Host 回归全部通过、无跳过。修复前较短 dict/空 dict/UTF-8 内容三个子场景均保留旧文件长度;实际 gen_opc_json_with_impl_mode.py 连续生成长/短模式后,真实 gen_opc_json_with_threadnum.py 报 JSONDecodeError: Extra data。修复后该 CLI 链可正常生成并解析当前 Fixture_0_hp 的分片。 新文件 0600 与已有文件 0640 权限控制均通过。两文件全部适用 pre-commit/Ruff/OAT、diff 检查通过。仅 Python 3.12.14/macOS Host 文件 I/O 和辅助 CLI,未执行全仓 CANN/NPU 编译或 UT;远端 CI 将评论 /compile 触发并跟进。 ## 文档更新 辅助 writer 的重复写出 bug 修复,无新增配置/接口,无文档更新。 ## 类型标签 - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:二进制配置生成辅助工具 ## AI/Agent生成声明 - [x] AI辅助编写 已阅读贡献指南和模板;最新 master 95b0d8c04245d7136125b7b4e9b2c1dc83c5b0e0。 完整远端 CI 已通过:当前唯一提交 2a717e506df3d6e1f106c0ab0d02d03a66d448d3 未变化,流水线 https://gitcode.com/cann/ops-nn/actions/runs/0bfd27258fd84d1094533df8150ec3fe 和全部 64 个任务已完成。 See merge request: cann/ops-nn!11471 | 3 天前 |