Skip to content

fix: tolerate missing 'page' key in process_none_page_numbers - #425

Open
Yi-111-a wants to merge 1 commit into
VectifyAI:mainfrom
Yi-111-a:fix/toc-missing-page-key
Open

fix: tolerate missing 'page' key in process_none_page_numbers#425
Yi-111-a wants to merge 1 commit into
VectifyAI:mainfrom
Yi-111-a:fix/toc-missing-page-key

Conversation

@Yi-111-a

Copy link
Copy Markdown

Closes #69, closes #97

Problem

process_none_page_numbers in \pageindex/page_index_classic.py\ assumed every TOC item carries a \page\ key and used hard \del:

\\python
item_copy = copy.deepcopy(item)
del item_copy['page'] # KeyError when the LLM-returned TOC entry has no 'page'
...
del item['page']
\\

TOC entries produced/cleaned upstream may lack \page\ entirely, so index builds crash with \KeyError: 'page'\ (reported in #69 and #97).

Fix

Replace both hard \del\s with \dict.pop(key, None). Behavior is unchanged for items that do have \page; items without it no longer crash.

Tests

Added two regression tests to \ ests/test_page_index.py:

  • TOC item without \page\ + LLM resolves a physical index -> no crash, index assigned
  • TOC item without \page\ + LLM finds no start -> no crash, item left as-is

Both fail on \main\ with exactly \KeyError: 'page'\ at page_index_classic.py:842 and pass with this change:

\
tests/test_page_index.py 5 passed
\\

Tested with Python 3.11 on Windows (\pytest tests/test_page_index.py -v). No other behavior touched.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant