v0.2.61 リリースノート¶
独自の例外階層を追加してエラー応答を整理し、出力やレンダリングまわりの失敗を識別しやすくしました。また、テスト要件仕様書を再構成し、エラー処理や CLI などのカバレッジを明文化しています。
ハイライト¶
- 独自例外の整備: 共通基底の
ExstructErrorと用途別のConfigError/ExtractionError/SerializationError/MissingDependencyError/RenderError/OutputError/PrintAreaErrorを追加し、各処理系で一貫した例外型を返すようにしました。【F:src/exstruct/errors.py†L3-L35】 - エラー時のガイダンス強化: 未対応フォーマットは
SerializationErrorを送出し、YAML/TOON/pypdfium2 未導入時には導入方法付きのMissingDependencyErrorを返すよう統一しました。自動改ページ情報が存在しない場合はexport_auto_page_breaksがPrintAreaErrorを明示的に返し、出力書き込みや PDF/画像生成の失敗はOutputError/RenderErrorにラップされます。【F:src/exstruct/init.py†L189-L219】【F:src/exstruct/io/init.py†L284-L437】【F:src/exstruct/io/init.py†L524-L540】【F:src/exstruct/render/init.py†L17-L100】 - テスト要件の整理: テスト要件仕様書を v0.2 として更新し、抽出・出力・CLI・エラー処理などのカバレッジカテゴリと具体的な期待値を列挙しました。MissingDependencyError の扱いや print area/export_auto_page_breaks などの要件を含め、リリース前に担保すべき項目を明確化しています。【F:docs/agents/TEST_REQUIREMENTS.md†L1-L116】
互換性と移行¶
PrintAreaErrorはValueErrorも継承するため、既存のValueErrorハンドリングでも受け止められますが、新設の例外型でハンドリングすると意図を区別しやすくなります。【F:src/exstruct/errors.py†L30-L35】export_auto_page_breaksが自動改ページ情報なしで例外を返すようになったため、この出力を利用するコードは try/except で捕捉するか、事前にauto_print_areasを取得できていることを確認してください。【F:src/exstruct/init.py†L189-L219】