Devotd Github
新发现开发工具

cdcailf/cjkfold v0.4.0 — 整理 normalize 模块的名称冲突

cjkfold 会折叠并规范化从 PDF 中提取的文本里混杂的、看起来与真实汉字几乎相同的偏旁类字形;在 v0.4.0 中它改动了模块路径,消除了名称冲突。

仓库信息cdcailf/cjkfold ↗

cjkfold 会折叠并规范化从 PDF 中提取的文本里混杂的、看起来与真实汉字几乎相同的偏旁类字形;在 v0.4.0 中它改动了模块路径,消除了名称冲突。

GitHub 项目说明: Fold look-alike CJK glyphs (Kangxi radicals, CJK radical supplements) so text extracted from PDFs matches again.

星标
★ 195
复刻
9
语言
Python
许可证
MIT
最新版本
v0.4.0
查看原始来源 ↗在 GitHub 查看 ↗

cdcailf/cjkfold 是一个 Python 库,它把从 PDF 中提取的文本里混杂的、几乎与真实汉字一模一样的字形(康熙部首、CJK 部首补充字符)折叠(fold)并规范化,让文本重新对得上。v0.4.0 于 2026-10-15 以提交 671ab91 公开,不含新功能,只做了名称整理这一件事。折叠系列函数从 cjkfold.normalize 模块移到了 cjkfold.folding,两个写入函数移到了 cjkfold.rewrite。

原因是名称冲突。在 Python 中,import a.b as c 会把模块 a.b 放进 c 里。normalize 模块和 normalize 函数用了同一个名字,于是两者中有一个失去了位置,实际上 import cjkfold.normalize as m 交过来的是函数而不是模块。所以调用 m.fold 就会抛出 AttributeError。现在 cjkfold.normalize 是函数,cjkfold.folding 是模块,名称分开了。

函数的行为保持不变。有文档说明的 from cjkfold import fold, normalize, strip_invisible 与之前完全一样地工作,变更记录说明 tests/ 里的测试就是契约,等价表(equivalence table)由生成方式产出而不是手工修改。scripts/acceptance.py 中新增了 import 路径检查。

取而代之的是,像 from cjkfold.normalize import fold 这样直接从模块里取出函数的路径被切断了。那条路径本来就没在文档里,而且会从以往的 AttributeError 变成 ModuleNotFoundError。本次提交只给 CHANGELOG.md 增加了 26 行,实际的代码移动在变更记录所引用的提交 af57ad7 里。既没有新功能,也没有折叠准确率的数值,所以这个版本更接近于把名字纠正过来的结构性修改。只使用文档所写 import 的代码不受影响,只需检查那些直接指定模块路径的代码。