gh-106922: Support multi-line error locations in traceback#109589
Closed
Uh oh!
There was an error while loading. Please reload this page.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Complete implementation for #106922. Implementing (1) requires substantial changes for an implementation of (2) or (3), so I just did it all in one go.
Some changes compared to the initial issue:
We do not always output all lines that correspond to an error:
test_many_lines_binary_op).Order of looking things in the PR:
FrameSummaryfieldsformat_frame_summaryand_extract_caret_anchors_from_line_segment- comments should sufficiently explain the algorithmtraceback.py- comments should sufficiently explain the algorithmdedentand for tracking significant lines (struct SignificantLinesi.e. a set). If there are existing implementations, then I would be happy to use those instead.cc @pablogsal@isidentical@ammaraskar@iritkatriel@ezyang