Files
pinmap-to-pinlist/CHANGELOG.md
Agent 88a231424c v1.5.5 Bug 修复:模板路径修正 + 上边 Name 独立行
BUG-005: 模板搜索路径优先查找 Code/src/Template/ 目录
BUG-006: 上边 Name 移至 row 0,完全独立于其他边

- 37/37 测试全部通过
- docs: 更新 bugs.md(BUG-005/BUG-006 状态)
- docs: 更新 tasks.md(T028 打包进行中→已完成)
- docs: 添加 modification-assessment-v1.5.5.md
- CHANGELOG.md: 追加 v1.5.5 版本日志
2026-06-12 02:55:13 +08:00

6.8 KiB
Raw Blame History

Changelog

[v1.5.5] - 2026-06-12

🐛 Bug 修复(深度修复)

BUG-005 【高】模板文件名/路径错误

  • 根因v1.5.4 只改了模板文件名(BallList-Template.xlsxPinList-Template.xlsx),但未修正搜索路径
  • 修复:模板搜索路径优先查找 Code/src/Template/ 目录,再回退项目根目录和当前工作目录
  • 模板样式现在可正确应用到输出文件

BUG-006 【高】PinList→PinMAP 上边 Name 与左边 Name 同行

  • 根因v1.5.4 将上边 Name 放在 row 2Excel 第 3 行),与左边 Name/Number 起始行相同,导致 3 条边数据混在同一行
  • 修复:将上边 Name 移至 row 0Excel 第 1 行),上边 Number 保持在 row 1第 2 行),使上边完全独立于其他边
  • 不再需要角点例外逻辑,代码更简洁
  • 每条边数据独立分隔,肉眼可读性大幅提升

🔧 修改文件

  • Code/src/main.py — BUG-005: 模板搜索路径修正(优先 Code/src/Template/
  • Code/src/pinmap_layout.py — BUG-006: 上边 Name 坐标改为 (0, c),移除角点例外
  • Code/src/pinmap_parser.py — BUG-006: 上边 Name 从 row 0 读取Number 从 row 1 读取
  • Test/fixtures/sample_4x4.xlsx — BUG-006: 更新为 v1.5.5 新布局
  • Code/src/test_pinmap.py — BUG-006: 测试数据适配新布局

测试

  • 全部 37 个测试通过

[v1.5.4] - 2026-06-09

🐛 Bug 修复

BUG-005 【高】模板文件名错误

  • 模板文件重命名:BallList-Template.xlsxPinList-Template.xlsxBallMAP-Template.xlsxPinMAP-Template.xlsx
  • 同步更新 main.py 中的函数名和模板引用路径

BUG-006 【高】布局重设计Number 外侧 + Name 里侧)

  • 重新设计 PinMAP 布局:从网格边界往中心走,第 1 圈 = Number数字第 2 圈 = Name引脚名
  • 上边Number row 1最顶行Name row 2第二行角点例外最左/右上边 Name 在 (1,0)/(1,cols+1)
  • 左边Number col 0最左列Name col 1第二列
  • 下边Number row rows+3最底行Name row rows+2倒数第二行
  • 右边Number col cols+1最右列Name col cols右二列
  • Pin1 保持在左上角A3=1, B3=Pin1
  • 不再需要角点 "//" 合并,每条边不共享任何单元格
  • 全部 15 种网格大小验证无冲突
  • 18/18 单元测试 + 37/37 集成测试全部通过

🔧 修改文件

  • Code/src/main.py — BUG-005: 模板函数和引用改名BUG-006: 传递 cols 参数
  • Code/src/pinmap_layout.py — BUG-006: 重写坐标公式 + get_name_cell() 支持 cols 参数 + 角点例外
  • Code/src/pinmap_generator.py — BUG-006: 传递 cols 参数 + 更新注释
  • Code/src/pinmap_parser.py — BUG-006: 重写边界检测、Name 读取(角点例外检测)
  • Code/src/test_pinmap.py — BUG-006: 更新测试数据适配新布局
  • Test/fixtures/PinList-Template.xlsx + PinMAP-Template.xlsx — BUG-005: 模板文件重命名

📝 文档

  • 更新 CHANGELOG.md 追加 v1.5.4 版本日志
  • 更新 README.md 追加 v1.5.4 版本说明
  • 生成 Releases/v1.5.4/CHANGELOG.md

[v1.5.0] - 2026-06-06

功能新增

  • F009 MAP→List 使用 balllist 模板run_map_to_list() 改查 BallList-Template.xlsx,不再共用旧模板
  • F010 List→MAP 使用 ballmap 模板run_list_to_map() 改查 BallMAP-Template.xlsx,模板完全分离
  • F011 模板格式提取式应用:从模板的 cellXfs/fonts/borders/fills 提取实际样式定义,替换硬编码边框和对齐;无模板时完全回退到默认样式
  • F012 验证+回归测试:新增 test_f012_pinname_position() 验证下边 Name 在 max_row-1、上边 Name 在 min_row+1添加 5×5 往返一致性测试

🗑️ 废弃

  • _find_template_path() (PinMAP-Template.xlsx) — 不再自动查找,由 _find_balllist_template_path()_find_ballmap_template_path() 替代

📝 文档

  • 更新 docs/tasks.md T015 状态为已完成
  • 更新 docs/features.md F009-F012 状态

🔧 修改文件

  • Code/src/main.py — 新增两个模板查找函数,修改两个方向的模板调用
  • Code/src/xlsx_writer.py — 重写 _styles_xml() 支持模板样式提取
  • Code/src/template_reader.py — 增强 cellXfs 提取xfId、applyAlignment、wrapText
  • Code/src/test_pinmap.py — 新增 F012 回归测试

[v1.3.15] - 2026-06-01

🐛 Bug 修复

  • pinmap_layout.py: 周长公式从 2(rows+cols)4 改为 (rows+cols)×2 — 修复角点共享策略,每条边独立包含其端点
  • pinmap_generator.py: 角点单元格写入 "6/7" 格式 — 修复 v1.3 下角点引脚丢失问题
  • pinmap_parser.py: 读取时包含角点,按 "/" 拆分解析多引脚序号 — 修复 roundtrip 丢失引脚问题

[v1.2.0] - 2026-05-26

🐛 Bug 修复

  • run.bat: cd /d "%~dp0src"cd /d "%~dp0Code\src" — 修复 cd 路径报错
  • run.bat: chcp 65001 末尾添加 >nul — 修复 title 中文乱码
  • run.bat: mode con lines=20lines=50 — 修复 Log 窗口无法上滑
  • Code/src/file_selector.py: .strip() 后增加 .strip('"\'') — 修复拖拽文件路径带引号导致不存在

[v1.0.1] - 2026-05-25

📝 文档完善

  • 新增 Code/docs/README.md — 项目完整说明文档8.1KB
  • 新增 Code/docs/QUICKSTART.md — 快速入门指南6.6KB
  • 新增 Code/docs/RELEASE.md — 版本发布说明5.1KB
  • 完善项目文档体系,覆盖架构设计、快速上手、版本历史

[v1.0.0] - 2026-05-25

🎉 首次发布

功能

  • PinMAP 解析:支持方形/长方形封装,左上角为 1 脚,逆时针排序
  • 格式支持:兼容 .xlsBIFF8 引擎)和 .xlsx 两种 Excel 格式
  • 智能验证:自动检测重复引脚、间隙、空单元格等结构问题
  • PinList 生成:按顺时针顺序输出引脚序号列表
  • GUI 模式:支持 tkinter 文件选择器,零命令行使用
  • 命令行模式python main.py input.xlsx 快速转换

技术

  • Python 标准库,零第三方依赖
  • 自定义 BIFF8 引擎解析 .xls 文件(~19KB
  • openpyxl 读写 .xlsx 文件
  • 模块化架构:解析 → 验证 → 生成 → 输出

架构

  • main.py — 入口与流程编排
  • xls_reader.py — BIFF8 .xls 解析引擎
  • xlsx_reader.py.xlsx 解析器
  • pinmap_parser.py — PinMAP 结构解析
  • validator.py — 结构验证与错误检测
  • pinlist_generator.py — PinList 生成器
  • xlsx_writer.py.xlsx 输出
  • file_selector.py — tkinter 文件选择器
  • models.py — 数据模型
  • utils.py — 工具函数

测试

  • 6 个测试夹具覆盖正常/异常场景
  • 测试报告:Test/test_report.md