Opened 2 years ago

Closed 2 years ago

#33701 closed New feature (fixed)

Highlight error location in the technical 500 debug page on Python 3.11+.

Reported by: Adam Johnson Owned by: Giebisch
Component: Error reporting Version: dev
Severity: Normal Keywords:
Cc: Hrushikesh Vaidya, Keryn Knight Triage Stage: Ready for checkin
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by Adam Johnson)

Similar to these tickets for extending the debug page for Python 3.11 exception changes: #33747, #33752.

Python 3.11 adds "where in the line" highlighting to tracebacks:

$ python3.11 t.py
Traceback (most recent call last):
  File "/.../example.py", line 5, in <module>
    formula(1, 0)
    ^^^^^^^^^^^^^
  File "/.../example.py", line 2, in formula
    return a / b + b / a
           ~~^~~
ZeroDivisionError: division by zero

Release note: https://docs.python.org/3.11/whatsnew/3.11.html#enhanced-error-locations-in-tracebacks

It would be good if we could use this on Django's error pages as well.

The new code column information API may be required: https://docs.python.org/3.11/whatsnew/3.11.html#column-information-for-code-objects . Note it can be disabled.

Change History (15)

comment:1 by Mariusz Felisiak, 2 years ago

Summary: Python 3.11 error location traceback highlightingHighlight error location in the technical 500 debug page on Python 3.11+.
Triage Stage: UnreviewedSomeday/Maybe

Thanks for the ticket. Let's wait for the final release first.

comment:2 by Hrushikesh Vaidya, 2 years ago

Cc: Hrushikesh Vaidya added

comment:3 by Adam Johnson, 2 years ago

Relatedly I also opened #33747 to show exception notes, another feature in Python 3.11

comment:4 by Keryn Knight, 2 years ago

Cc: Keryn Knight added

comment:5 by Adam Johnson, 2 years ago

Description: modified (diff)

comment:6 by Mariusz Felisiak, 2 years ago

Triage Stage: Someday/MaybeAccepted

comment:7 by Giebisch, 2 years ago

Owner: set to Giebisch
Status: newassigned

comment:8 by Giebisch, 2 years ago

Has patch: set

I've created a PR (https://github.com/django/django/pull/16250).
Somehow I am not completely satisfied with the code, so I appreciate feedback.
Still passes all tests and works also with older Python versions.

comment:9 by Mariusz Felisiak, 2 years ago

Needs tests: set
Patch needs improvement: set

comment:10 by Giebisch, 2 years ago

Needs tests: unset
Patch needs improvement: unset

comment:11 by Adam Johnson, 2 years ago

Patch needs improvement: set

comment:12 by Giebisch, 2 years ago

Patch needs improvement: unset

comment:13 by Mariusz Felisiak, 2 years ago

Patch needs improvement: set

comment:14 by Mariusz Felisiak, 2 years ago

Patch needs improvement: unset
Triage Stage: AcceptedReady for checkin

comment:15 by Mariusz Felisiak <felisiak.mariusz@…>, 2 years ago

Resolution: fixed
Status: assignedclosed

In 85b52d22:

Fixed #33701 -- Added fine-grained error locations to the technical 500 debug page.

Note: See TracTickets for help on using tickets.
Back to Top