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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

process_none_page_numbers raises KeyError when 'page' is missing fix: use pop() instead of del in process_none_page_numbers

1 participant