Devotd Github
新着開発ツール

cdcailf/cjkfold v0.4.0 — normalize モジュールの名前衝突を解消

PDF から抽出したテキストに混じる、実際の漢字にほぼ酷似した偏旁類のグリフを折り畳んで正規化する cjkfold が、v0.4.0 でモジュールパスを変更して名前衝突を解消した。

リポジトリ情報cdcailf/cjkfold ↗

PDF から抽出したテキストに混じる、実際の漢字にほぼ酷似した偏旁類のグリフを折り畳んで正規化する cjkfold が、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 は、PDF から抽出したテキストに混ざった、実際の漢字とほぼ同じ姿をしたグリフ(康熙部首、CJK 部首追加文字)を折り畳み(fold)正規化し、テキストが再び一致するようにする Python ライブラリである。v0.4.0 は 2026-10-15 のコミット 671ab91 で公開され、新機能を含まず名前の整理だけを収録している。折り畳み系の関数は cjkfold.normalize モジュールから cjkfold.folding へ、書き込み系の 2 つの関数は 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 だけを使うコードには影響がなく、モジュールパスを直接指定していたコードだけを確認すればよい。