Repository navigation
Conversation
python-pptx registers both an element class and a plot class for `c:area3DChart`, but no series class, so reading its series raises `NotImplementedError`. The other 3-D plots raise `ValueError` or `AttributeError` from `chart.chart_type`, which the guard above already catches, so `c:area3DChart` was the one chart type whose failure escaped `_handle_chart` and aborted the conversion of the whole presentation. Catch it where the other failures are caught, so the chart degrades to a classified picture without tabular data, exactly as `c:bar3DChart` does. Signed-off-by: chrikrah <48338417+chrikrah@users.noreply.github.com>
|
✅ DCO Check Passed Thanks @chrikrah, all your commits are properly signed off. 🎉 |
Merge Protections🟢 Merge protection satisfied — ready to merge. Show 1 satisfied protection🟢 Enforce conventional commitMake sure that we follow https://www.conventionalcommits.org/en/v1.0.0/
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
Thanks a lot @chrikrah. This was the first PR to identify and fix the We will continue with #4811 for this fix. It handles the same The credit for finding this issue is yours, and it is recorded in #4811 too. Closing this PR as superseded by #4811. Thank you for the contribution, and we hope to see more PRs from you. |
docling/backend/mspowerpoint_backend.py:1156catches(AttributeError, ValueError, KeyError)around_chart_to_table_data. python-pptx raisesNotImplementedErrorforc:area3DChart. That is the one plot element with both an element class and a plot class registered and no series class. One such chart loses the whole deck.Input: a python-pptx two-dimensional area chart whose
c:areaChartis retaggedc:area3DChartin the zip.Before:
The text on the other slide goes with it.
After: one
PictureItem,tabular_chart is None, and the sibling text intact.c:bar3DChartalready degrades that way, from #3972.Issue #3970 is closed, and its own text predicts this residue.
Verification
Revert
mspowerpoint_backend.pyalone and keep the test:ruff checkandruff format --checkare clean. No file undertests/data/changes.